UK Identifier Checker (MPAN, VAT, NINO, NHS, LEI, EIC, IBAN)
Pricing
from $3.00 / 1,000 identifier results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
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
type | Identifier | Test |
|---|---|---|
mpan | Electricity supply number: the 13-digit core, or the full 21 digits | Check 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 |
vat | UK 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 |
eori | GB or XI EORI | GB or XI followed by 12 digits 6 |
nino | National Insurance number | HMRC'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 |
nhs | NHS number | Modulus 11, as the NHS Data Dictionary sets out 3 |
utr | Unique Taxpayer Reference | 10 digits 4. HMRC publishes no check-digit method, so it's a format check only |
company-number | Companies House number | 8 digits, or 2 letters and 6 digits; short numbers padded; the prefix explained (SC Scotland, OC LLP and so on) |
postcode | UK postcode | The GOV.UK published pattern 5; returns the tidy form (SW1A 1AA) and outward and inward codes |
iban | IBAN | ISO 7064 MOD 97-10 10. For GB IBANs: length 22, bank code, sort code and account number |
lei | Legal Entity Identifier | ISO 17442: MOD 97-10 9 |
eic | ENTSO-E Energy Identification Code | The mod-37 check character, and the object type (party, area, measurement point and so on) 8 |
gtin | GTIN-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": ...}.typedefaults toauto.redact(defaulttrue): 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
- Wikipedia: Meter Point Administration Number (MPAN core check digit). Accessed 3 October 2026.
- HMRC: NIM39110, what a National Insurance number looks like. Accessed 3 October 2026.
- NHS Data Dictionary: NHS Number (Modulus 11 check). Accessed 3 October 2026.
- OECD: UK tax identification numbers (UTR and NINO formats). Accessed 3 October 2026.
- GOV.UK: Bulk Data Transfer, additional validation (UK postcode regular expression). Accessed 3 October 2026.
- GOV.UK: Economic Operators Registration and Identification (EORI). Accessed 3 October 2026.
- GOV.UK: Check a UK VAT number. Accessed 3 October 2026.
- ENTSO-E: Energy Identification Codes (EIC) and the EIC Reference Manual. Accessed 3 October 2026.
- GLEIF: ISO 17442, the LEI code structure. Accessed 3 October 2026.
- SWIFT: IBAN Registry. Accessed 3 October 2026.
- Google Merchant Center: Product data specification (GTIN check digit rules). Accessed 3 October 2026.
- python-stdnum (independent reference implementation used to cross-check these algorithms). Accessed 3 October 2026.