Lithuania VAT number check: from company code to PVM code

A Lithuanian company has two identifiers that look alike and are issued by different bodies: a 9-digit company code from the register and a VAT number from the tax inspectorate. Here is how to check both.

Two codes, two issuers

The company code (juridinio asmens kodas, or įmonės kodas) is exactly 9 digits and is issued by the Register of Legal Entities (JAR), run by Registrų centras; for example 110053842 is Lietuvos geležinkeliai. Its ninth digit is a check digit, so a code that fails it is not a Lithuanian company code. The VAT number (PVM mokėtojo kodas) is LT followed by 9 or 12 digits, issued by the State Tax Inspectorate (VMI), for example LT100538411. It cannot be computed from the company code, and not every company has one, only those that are VAT payers.

That is why a Lithuanian VAT check is really two lookups: find the company by its code, then read the VAT number the tax inspectorate's list holds for it, or start from a VAT number and find the company it belongs to. The same two codes appear on the sales and purchase invoices that Lithuanian VAT payers report to VMI in their i.SAF files, and an invoice with a mistyped counterparty code is a common error. Prometiam does not file or validate i.SAF files; it checks the counterparty against the register.

The calls

# by company code (the check digit is enforced)
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=LT&company_number=301844044' \
  -H 'Authorization: Bearer rk_live_...'

# by VAT number, from the VMI list
curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=LT&vat=LT100004278519' \
  -H 'Authorization: Bearer rk_live_...'

# is the VAT number valid in the EU right now (VIES)
curl 'https://api.prometiam.com/functions/v1/risk-api/vat/LT100004278519' \
  -H 'Authorization: Bearer rk_live_...'

The first two return the same company: AB "Ignitis grupė", with vat_number set to LT100004278519 and vat_number_source set to register, because the number comes from the VMI list. For a company that is not on the list vat_number is null. GET /vat/{number} is a separate check against the EU VIES service, which answers whether the number is currently valid for intra-EU trade; a number can be on the VMI list and still need the VIES answer for a specific cross-border sale.

import requests

BASE = "https://api.prometiam.com/functions/v1/risk-api"
H = {"Authorization": "Bearer rk_live_..."}

def lt_counterparty(company_code):
    r = requests.get(f"{BASE}/companies/search", headers=H,
                     params={"country": "LT", "company_number": company_code})
    data = r.json().get("data", [])
    if not data:
        return None
    c = data[0]
    return c["company_name"], c["status"], c.get("vat_number")

print(lt_counterparty("301844044"))
# ('AB "Ignitis grupė"', 'active', 'LT100004278519')

What a Lithuanian record gives you

FieldWhat it holds
company_name, company_numberLegal name and the 9-digit company code
legal_form, legal_form_fullThe legal form, such as UAB, AB or MB
status, local_statusStandard status and the register's own wording, including liquidation, bankruptcy and restructuring
address, city, regionRegistered address and county
nace_code, evrk_codeThe NACE Rev. 2.1 class (EVRK 2.1) and the 6-digit national code
capital_amountShare capital, for UAB and AB only
vat_number, vat_number_sourceVAT number from the VMI list, or null

What Lithuania does not carry

  • No officers or shareholders, no contacts, no financial statements and no registry-compliance signal.
  • No insolvency notices: Lithuania is not one of the twelve insolvency markets. Liquidation, bankruptcy and restructuring show in status.
  • Sole proprietorships (individuali įmonė), true and limited partnerships, branches, state enterprises and non-commercial bodies are never served.
  • The VAT number reflects the current VMI list, not the history of when a company was a VAT payer, so it cannot tell you whether a company was registered on the date of a past invoice.
  • Register-change events and monitoring are available, dated when the change first appears in the register data and not before October 2026. Data is updated daily.

Contains data from the Register of Legal Entities (JAR), Registrų centras, the State Data Agency (Statistics Lithuania) and the State Tax Inspectorate (VMI), CC BY 4.0. Adapted by Prometiam.

Which plan fits

Starter is EUR 9.99/month (1,000 credits), Professional EUR 29.99 (10,000 credits), Scale EUR 99.99 (50,000 credits) and Enterprise is priced to order. A company record costs 1 credit, about EUR 0.01 on Starter and from EUR 0.002 on Scale; error responses cost nothing. The 14-day free trial includes 500 credits, needs a card, charges nothing during the trial and then continues as Starter unless you cancel. Prices are public and there is no sales call. See pricing.

Related pages

Start your 14-day free trial · API documentation

The free trial lasts 14 days and includes 500 credits. A card is required and nothing is charged during the trial; it then continues as Starter (EUR 9.99/month) unless you cancel.

Frequently asked questions

Can I derive a Lithuanian VAT number from the company code?
No. The company code is issued by the Register of Legal Entities and the VAT number by the State Tax Inspectorate, and one cannot be computed from the other. Use the VMI list through vat= or the company lookup.
Why does a company have no VAT number in the record?
Because it is not a VAT payer or is not on the VMI list. vat_number is then null.
What is the difference between the register check and VIES?
The VAT number in the record comes from the Lithuanian VMI list. GET /vat/{number} asks the EU VIES service whether the number is valid for intra-EU trade. They are two separate checks.
Does Prometiam file or validate i.SAF?
No. i.SAF files are submitted to VMI through your accounting software or VMI's own service. Prometiam checks the counterparty's company code and VAT number against the register.