UK Identifier Checker (MPAN, VAT, NINO, NHS, LEI, EIC, IBAN) avatar

UK Identifier Checker (MPAN, VAT, NINO, NHS, LEI, EIC, IBAN)

Pricing

from $3.00 / 1,000 identifier results

Go to Apify Store
UK Identifier Checker (MPAN, VAT, NINO, NHS, LEI, EIC, IBAN)

UK Identifier Checker (MPAN, VAT, NINO, NHS, LEI, EIC, IBAN)

Check the format and check digits of UK and energy-market identifiers in bulk: MPAN, VAT, EORI, National Insurance, NHS, UTR, company numbers, postcodes, IBAN, LEI, EIC and GTIN. Auto-detects the type. No lookups, no data stored.

Pricing

from $3.00 / 1,000 identifier results

Rating

0.0

(0)

Developer

LandlordTools

LandlordTools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

UK Identifier Checker

Check UK and energy-market identifiers in bulk, before they go into a CRM, a billing system or a regulatory report: the format, and the check digit where the identifier has one. Leave type out and the Actor works out what each value is. No lookups, no paid APIs, nothing stored.

What it checks

typeIdentifierTest
mpanElectricity supply number: the 13-digit core, or the full 21 digitsCheck digit: digits times 3, 5, 7, 13 ... 43, sum mod 11 mod 10 1. Shows the distributor ID, and for full MPANs the profile class, meter time-switch code and line loss factor class
vatUK VAT number (GB or XI, 9 digits, or 12 for a branch; GD and HA numbers)Modulus 97 check: the original rule, plus the newer ranges for numbers from 100 000 000 (the same rules as python-stdnum 12). A pass doesn't mean the number is registered: use HMRC's checker 7
eoriGB or XI EORIGB or XI followed by 12 digits 6
ninoNational Insurance numberHMRC's prefix and suffix rules (no D, F, I, Q, U or V; no O second; never BG, GB, KN, NK, NT, TN, ZZ; suffix A to D) 2
nhsNHS numberModulus 11, as the NHS Data Dictionary sets out 3
utrUnique Taxpayer Reference10 digits 4. HMRC publishes no check-digit method, so it's a format check only
company-numberCompanies House number8 digits, or 2 letters and 6 digits; short numbers padded; the prefix explained (SC Scotland, OC LLP and so on)
postcodeUK postcodeThe GOV.UK published pattern 5; returns the tidy form (SW1A 1AA) and outward and inward codes
ibanIBANISO 7064 MOD 97-10 10. For GB IBANs: length 22, bank code, sort code and account number
leiLegal Entity IdentifierISO 17442: MOD 97-10 9
eicENTSO-E Energy Identification CodeThe mod-37 check character, and the object type (party, area, measurement point and so on) 8
gtinGTIN-8, 12, 13 or 14 (barcodes)GS1 check digit 11

Every algorithm is also cross-checked against python-stdnum 12, an independent open-source implementation (tests/crosscheck_stdnum.py: 5,600 generated cases, no disagreements).

Input

{
"items": [
{
"type": "mpan",
"value": "12 0000 0001 238"
},
{
"value": "GB 339 0727 47"
},
{
"value": "10YGB----------A"
},
{
"value": "506700GE1G29325QX363"
},
{
"value": "GB82 WEST 1234 5698 7654 32"
},
{
"value": "sw1a1aa"
},
{
"type": "company-number",
"value": "SC123456"
},
{
"type": "nhs",
"value": "999 000 0018"
},
{
"value": "QQ 12 34 56 C"
},
{
"type": "gtin",
"value": "5012345678901"
}
],
"redact": true
}
  • items: 1 to 10,000 objects, each {"value": ..., "type": ...}. type defaults to auto.
  • redact (default true): shows only the last 3 characters of National Insurance, NHS and UTR numbers in the results, so personal identifiers don't sit in your dataset.

Example output

The first item:

{
"index": 0,
"type": "mpan",
"normalised": "1200000001238",
"valid": true,
"formatValid": true,
"checkDigitValid": true,
"details": {
"core": "1200000001238",
"distributorId": "12"
},
"error": null
}

valid is true when the format is right and the check digit (if the identifier has one) is right. checkDigitValid is null for identifiers without a check digit. In auto mode, details.alsoMatches lists any other types the value would also pass as. A 13-digit number, for example, can be both an MPAN core and a GTIN-13, so set type when you know it. The OUTPUT record adds a summary and the sources.

What it doesn't do

It doesn't confirm that an identifier was issued, is active or belongs to a particular person or business. For that, use the issuer's own service: HMRC's VAT checker 7, the GOV.UK EORI checker, Companies House or GLEIF. It doesn't check MPRNs (gas), because no check method is published.

Integrations

Ready-made files in integrations/README.md: a Microsoft Power Platform custom connector (Power Automate, Power Apps, Logic Apps, Copilot Studio), OpenAPI 3 (Azure API Management, Postman, n8n, AI agents), an Excel / Power BI Power Query script, a Google Sheets function, and curl, Python and JavaScript examples. Apify's own Zapier, Make and n8n apps and its MCP server work too.

Pricing

Pay per event: $3 per 1,000 results, plus Apify's tiny per-run start fee ($0.00005). See the Pricing tab for the current price.

Sources

  1. Wikipedia: Meter Point Administration Number (MPAN core check digit). Accessed 3 October 2026.
  2. HMRC: NIM39110, what a National Insurance number looks like. Accessed 3 October 2026.
  3. NHS Data Dictionary: NHS Number (Modulus 11 check). Accessed 3 October 2026.
  4. OECD: UK tax identification numbers (UTR and NINO formats). Accessed 3 October 2026.
  5. GOV.UK: Bulk Data Transfer, additional validation (UK postcode regular expression). Accessed 3 October 2026.
  6. GOV.UK: Economic Operators Registration and Identification (EORI). Accessed 3 October 2026.
  7. GOV.UK: Check a UK VAT number. Accessed 3 October 2026.
  8. ENTSO-E: Energy Identification Codes (EIC) and the EIC Reference Manual. Accessed 3 October 2026.
  9. GLEIF: ISO 17442, the LEI code structure. Accessed 3 October 2026.
  10. SWIFT: IBAN Registry. Accessed 3 October 2026.
  11. Google Merchant Center: Product data specification (GTIN check digit rules). Accessed 3 October 2026.
  12. python-stdnum (independent reference implementation used to cross-check these algorithms). Accessed 3 October 2026.