← Back to home

Guides

Step-by-step tutorials covering real-world validation scenarios — from the theory behind the algorithms to production-ready code examples.

153guides
76+identifier types
2languages — Node.js & Python

What's covered

Each guide starts from first principles — explaining the structure and checksum rules behind the identifier — then moves to production-ready code. You'll find both the manual implementation (so you understand why it fails in edge cases) and the API-based solution that handles the full complexity for you.

🏦

Financial identifiers

IBAN, SWIFT/BIC, VAT numbers, ISIN, CUSIP, SEDOL, WKN, VALOR, LEI, ABA routing numbers, SORT codes, and more. Covers checksum algorithms (mod-97, Luhn, Damm), country-specific validation rules, and registry lookups.

🏢

Business registration numbers

CPF, CNPJ, GSTIN, ABN, NIF, KRS, REGON, CEIDG, EORI, DUNS, and other national identifiers. Includes country-specific check-digit algorithms and official register validation.

🔧

Technical & web identifiers

Email addresses, phone numbers, URLs, IP addresses, JWT tokens, UUIDs, semver versions, MIME types, MAC addresses, cron expressions, and regular expressions.

✈️

Logistics & trade

IATA airport and airline codes, IATA flight numbers, HS codes, LOCODE, ISO container codes, SSCC, EAN/UPC barcodes, and GS1 prefix validation.

Crypto & digital assets

Bitcoin address validation (P2PKH, P2SH, Bech32), Ethereum address checksums (EIP-55), and multi-chain wallet validation patterns.

📄

Academic & document IDs

ISBN-10 and ISBN-13 (Modulus-10 and Modulus-11), ISSN, DOI, ORCID. Includes check-digit algorithms and resolver integration for academic publishing workflows.

How each guide is structured

1

The algorithm

How the identifier is structured and how the check digit is calculated, with step-by-step examples.

2

Why regex fails

Common edge cases that defeat naive regex implementations — leading zeros, country variants, optional characters.

3

Code examples

Production-ready Node.js or Python code using the IsValid SDK and raw REST API calls with error handling.

4

Edge cases

Test numbers, special values, deprecated formats, and what the API response fields mean in practice.

All guides

🚀
Node.js

Getting Started with the IsValid SDK (Node.js)

Install the official TypeScript SDK, create a client, run your first validation, and handle errors — all in under five minutes.

SDKInstallationTypeScriptError handling
🐍
Python

Getting Started with the IsValid SDK (Python)

Install the official Python SDK, create a client, run your first validation, and handle errors — all in under five minutes.

SDKInstallationPythonError handling
🧾
Node.js

How to Validate EU VAT Numbers in Node.js

Why a single regex fails for EU countries, how checksum algorithms work per country, and how to handle VIES downtime gracefully.

VATVIESRegex pitfallsError handling
🧾
Python

How to Validate EU VAT Numbers in Python

Why a single regex fails for EU countries, how checksum algorithms work per country, and how to handle VIES downtime gracefully — with requests examples.

VATVIESRegex pitfallsError handling
💳
Node.js

Credit Card Validation — Luhn Algorithm Explained

A walkthrough of the Luhn mod-10 algorithm, BIN range detection for 7 networks, and why format validation alone is not enough in production.

Luhn algorithmBIN rangesPCI-DSSNetwork detection
💳
Python

Credit Card Validation in Python — Luhn Algorithm Explained

A walkthrough of the Luhn mod-10 algorithm in Python, BIN range detection for 7 networks, and why format validation alone is not enough in production.

Luhn algorithmBIN rangesPCI-DSSNetwork detection
🔀
Python

BIC / SWIFT Validation in Python

The anatomy of a BIC code decoded, institution lookup, passive participant detection, and caching patterns — with requests and urllib examples.

BIC structureInstitution lookupSWIFTCaching
🔀
Node.js

BIC / SWIFT Validation in Node.js

The anatomy of a BIC code decoded, institution lookup, passive participant detection, and caching patterns — with native fetch examples.

BIC structureInstitution lookupSWIFTCaching
🏦
Node.js

IBAN Validation in Node.js — mod-97 Algorithm Explained

The structure of an IBAN decoded, why mod-97 catches transposition errors, country-specific length rules for 76 countries, and SEPA routing logic.

IBAN structuremod-97BBANSEPA
🏦
Python

IBAN Validation in Python — mod-97 Algorithm Explained

The structure of an IBAN decoded, why mod-97 catches transposition errors, country-specific length rules for 76 countries, and SEPA routing logic — with requests examples.

IBAN structuremod-97BBANSEPA
🔑
Node.js

JWT Validation in Node.js — Structure, Claims, and Expiry Pitfalls

How JWT structure works, what every header and payload claim means, common expiry bugs in auth code, and how to parse and inspect tokens safely.

JWT anatomyClaimsExpiryBase64url
🔑
Python

JWT Validation in Python — Structure, Claims, and Expiry Pitfalls

How JWT structure works, what every header and payload claim means, common expiry bugs in Python auth code, and how to parse and inspect tokens safely.

JWT anatomyClaimsExpiryBase64url
📱
Node.js

IMEI Validation in Node.js — Luhn Algorithm for Device IDs

The anatomy of an IMEI number — TAC, SNR, and check digit — how the Luhn mod-10 algorithm applies, and why a 15-digit regex is not enough.

IMEI structureTACLuhn mod-10IoT
📱
Python

IMEI Validation in Python — Luhn Algorithm for Device IDs

The anatomy of an IMEI number — TAC, SNR, and check digit — how the Luhn mod-10 algorithm applies, and why a 15-digit regex is not enough — with Python examples.

IMEI structureTACLuhn mod-10IoT
✉️
Node.js

Email Validation in Node.js — Beyond Regex

Why regex alone is not enough, how MX record lookups work, what disposable domains are, and how to combine format and domain checks for reliable validation.

RFC 5322MX recordsDisposable domainsDeliverability
✉️
Python

Email Validation in Python — Beyond Regex

Why regex alone is not enough, how MX record lookups work, what disposable domains are, and how to combine format and domain checks — with requests and dnspython examples.

RFC 5322MX recordsDisposable domainsDeliverability
🚗
Node.js

VIN Validation in Node.js — Check Digit, WMI, and Model Year

The anatomy of a VIN decoded — WMI, VDS, VIS — the weighted check digit algorithm with transliteration table, and the 30-year model year cycle.

VIN structureWMICheck digitModel year
🚗
Python

VIN Validation in Python — Check Digit, WMI, and Model Year

The anatomy of a VIN decoded — WMI, VDS, VIS — the weighted check digit algorithm with transliteration table, and the 30-year model year cycle — with Python examples.

VIN structureWMICheck digitModel year
🏷️
Node.js

EAN Barcode Validation in Node.js — GS1 Checksum and Prefix Lookup

EAN-8 vs EAN-13, the GS1 alternating-weight checksum, what the prefix actually encodes (not country of origin), and special prefixes for ISBN and ISSN.

EAN-13GS1 checksumPrefix lookupISBN
🏷️
Python

EAN Barcode Validation in Python — GS1 Checksum and Prefix Lookup

EAN-8 vs EAN-13, the GS1 alternating-weight checksum, what the prefix actually encodes (not country of origin), and special prefixes for ISBN and ISSN — with Python examples.

EAN-13GS1 checksumPrefix lookupISBN
📊
Node.js

CFI Code Validation in Node.js — ISO 10962 Decoded

The 6-position ISO 10962 structure decoded — asset categories, instrument groups, and context-dependent attributes — with step-by-step walkthroughs of equity and bond CFI codes.

CFI structureISO 10962MiFID IIISIN enrichment
📊
Python

CFI Code Validation in Python — ISO 10962 Decoded

The 6-position ISO 10962 structure decoded — asset categories, instrument groups, and context-dependent attributes — with Python code examples.

CFI structureISO 10962MiFID IIISIN enrichment
📈
Python

ISIN Validation in Python — Luhn, FIRDS & OpenFIGI

The anatomy of an ISIN decoded, how the Luhn check digit works for alphanumeric codes, why format validation is not enough, and how to enrich ISINs with ESMA FIRDS and OpenFIGI data.

ISIN structureLuhn algorithmFIRDSFISN
📈
Node.js

ISIN Validation in Node.js — Luhn, FIRDS & OpenFIGI

The anatomy of an ISIN decoded, how the Luhn check digit works for alphanumeric codes, why format validation is not enough, and how to enrich ISINs with ESMA FIRDS and OpenFIGI data — with native fetch examples.

ISIN structureLuhn algorithmFIRDSFISN
🪙
Node.js

DTI Validation in Node.js — ISO 24165 Digital Token Identifiers

The structure of a DTI decoded — restricted 30-character alphabet, check character, and why it matters for EMIR and MiCA reporting. With Node.js code examples.

DTI structureISO 24165Check characterEMIR / MiCA
🪙
Python

DTI Validation in Python — ISO 24165 Digital Token Identifiers

The structure of a DTI decoded — restricted 30-character alphabet, check character, and why it matters for EMIR and MiCA reporting. With Python code examples.

DTI structureISO 24165Check characterEMIR / MiCA
📍
Node.js

GPS & GeoURI Validation in Node.js — DD, DMS, DDM Formats Explained

How to validate GPS coordinates in Node.js — Decimal Degrees, DMS, DDM, and GeoURI (RFC 5870) formats, coordinate range checks, Unicode normalization, and automatic DMS conversion in a single API call.

GeoURIDD / DMS / DDMCoordinatesRFC 5870
📍
Python

GPS & GeoURI Validation in Python — DD, DMS, DDM Formats Explained

How to validate GPS coordinates in Python — Decimal Degrees, DMS, DDM, and GeoURI (RFC 5870) formats, coordinate range checks, Unicode normalization, and automatic DMS conversion in a single API call.

GeoURIDD / DMS / DDMCoordinatesRFC 5870
🏪
Node.js

CEIDG Validation in Node.js — Polish Sole Proprietor Registry Lookup

How to validate Polish NIP numbers and look up sole proprietors in the CEIDG registry from Node.js — NIP MOD-11 checksum, live registry lookup, owner name, address, status, and PKD activity codes.

CEIDGNIPMOD-11PolandPKD
🏪
Python

CEIDG Validation in Python — Polish Sole Proprietor Registry Lookup

How to validate Polish NIP numbers and look up sole proprietors in the CEIDG registry from Python — NIP MOD-11 checksum, live registry lookup, owner name, address, status, and PKD activity codes.

CEIDGNIPMOD-11PolandPKD
🏢
Node.js

REGON Validation in Node.js — Polish Business Registry Numbers

How to validate Polish REGON numbers in Node.js — 9-digit and 14-digit structure, the weighted MOD-11 checksum algorithm, and optional GUS BIR lookup for company name, NIP, and address.

REGONMOD-11GUS BIRPoland
🏢
Python

REGON Validation in Python — Polish Business Registry Numbers

How to validate Polish REGON numbers in Python — 9-digit and 14-digit structure, the weighted MOD-11 checksum algorithm, and optional GUS BIR lookup — with requests examples.

REGONMOD-11GUS BIRPoland
🏛️
Node.js

LEI Validation in JavaScript — GLEIF Lookup Without Rate Limits

How to validate Legal Entity Identifiers, why mod-97 alone isn't enough, and how to enrich LEIs with entity data from a 2.3M record GLEIF database.

LEIGLEIFMOD-97Compliance
🏛️
Node.js

LEI Validation, Search & LOU Lookup in Node.js — ISO 17442

A complete guide to LEI validation, entity search, and LOU lookup in Node.js — the ISO 17442 MOD-97 checksum, searching 2.3M entities by name, and listing all Local Operating Units.

LEIISO 17442MOD-97GLEIF
🏛️
Python

LEI Validation, Search & LOU Lookup in Python — ISO 17442

A complete guide to LEI validation, entity search, and LOU lookup in Python — the ISO 17442 MOD-97 checksum, searching 2.3M entities by name, and listing all Local Operating Units.

LEIISO 17442MOD-97GLEIF
🛡️
Node.js

KYC Onboarding Validation Checklist — IBAN, LEI & VAT in One Flow

How to build a complete KYC validation flow in Node.js — validate IBAN (mod-97 + bank lookup), LEI (MOD-97 + GLEIF entity check), and VAT (checksum + VIES confirmation) in parallel.

KYCIBANLEIVAT
🛡️
Python

KYC Onboarding Validation Checklist — IBAN, LEI & VAT in One Flow

How to build a complete KYC validation flow in Python — validate IBAN (mod-97 + bank lookup), LEI (MOD-97 + GLEIF entity check), and VAT (checksum + VIES confirmation) in parallel.

KYCIBANLEIVAT
📋
Node.js

MiFID II Reporting — Validating ISIN, LEI and CFI Together

How to validate ISIN, LEI, and CFI codes for MiFID II transaction reporting in Node.js — Luhn checksum for ISIN, MOD-97 for LEI, ISO 10962 decode for CFI, with parallel validation.

MiFID IIISINLEICFI
📋
Python

MiFID II Reporting — Validating ISIN, LEI and CFI Together

How to validate ISIN, LEI, and CFI codes for MiFID II transaction reporting in Python — Luhn checksum for ISIN, MOD-97 for LEI, ISO 10962 decode for CFI, with parallel validation.

MiFID IIISINLEICFI
⚖️
Node.js

EMIR & MiCA Compliance — DTI and LEI Validation for Crypto

How to validate DTI and LEI codes for EMIR derivatives reporting and MiCA crypto-asset compliance — ISO 24165 DTI registry lookup, ISO 17442 MOD-97 checksum, and regulatory edge cases.

EMIRMiCADTILEI
⚖️
Python

EMIR & MiCA Compliance — DTI and LEI Validation for Crypto

How to validate DTI and LEI codes for EMIR derivatives reporting and MiCA crypto-asset compliance in Python — ISO 24165 DTI registry lookup, ISO 17442 MOD-97 checksum, and regulatory edge cases.

EMIRMiCADTILEI
🔢
Reference

Check Digit Algorithms Explained — Luhn, MOD-97, MOD-11 and More

A comprehensive guide to check digit algorithms used in real-world identifiers: Luhn (mod-10), MOD-97 (IBAN, LEI), weighted MOD-11 (ISBN, ISSN, VIN), CUSIP, PESEL, REGON, and more — with formulas, worked examples, and code.

LuhnMOD-97MOD-11Error detection
📞
Node.js

Phone Number Validation in Node.js — E.164, Line Type & Country Detection

Why regex fails for international phone numbers, how E.164 normalization works, line type detection (MOBILE, VOIP, FIXED_LINE), and how to validate any phone number in a single API call.

E.164Line typeCountry detection2FA
📞
Python

Phone Number Validation in Python — E.164, Line Type & Country Detection

Why regex fails for international phone numbers, how E.164 normalization works, line type detection, and how to validate any phone number — with requests examples.

E.164Line typeCountry detection2FA
🪪
Node.js

PESEL Validation in Node.js — Polish National ID Numbers

How to validate Polish PESEL numbers — the 11-digit structure, century encoding for birth dates, gender extraction, weighted MOD-10 checksum, and age verification.

PESELMOD-10Birth datePoland
🪪
Python

PESEL Validation in Python — Polish National ID Numbers

How to validate Polish PESEL numbers in Python — the 11-digit structure, century encoding, gender extraction, weighted MOD-10 checksum, and age verification.

PESELMOD-10Birth datePoland
🚢
Node.js

EORI Validation in Node.js — EU Customs Compliance

How to validate EORI numbers for EU customs operations — format rules per country, EC registry verification, post-Brexit implications, and company detail lookup.

EORIEU CustomsEC registryImport/Export
🚢
Python

EORI Validation in Python — EU Customs Compliance

How to validate EORI numbers in Python — format rules per country, EC registry verification, post-Brexit implications, and company detail lookup — with requests examples.

EORIEU CustomsEC registryImport/Export
📊
Reference

ISIN, CUSIP, SEDOL, LEI, FIGI — Financial Instrument Identifiers Explained

A comprehensive reference comparing all major financial instrument identifiers — structure, check digit algorithms, issuing authorities, relationships, and when to use each.

ISINCUSIPSEDOLLEIFIGI
📊
Node.js

CUSIP Validation in Node.js — US Securities Identifiers

The anatomy of a CUSIP decoded — 6-char issuer, 2-char issue, check digit — the modified Luhn algorithm with alphanumeric mapping, and the CUSIP-to-ISIN relationship.

CUSIPModified LuhnSecuritiesCINS
📊
Python

CUSIP Validation in Python — US Securities Identifiers

The anatomy of a CUSIP decoded — 6-char issuer, 2-char issue, check digit — the modified Luhn algorithm with alphanumeric mapping — with Python examples.

CUSIPModified LuhnSecuritiesCINS
📊
Node.js

SEDOL Validation in Node.js — UK Securities Identifiers

The anatomy of a SEDOL decoded — weighted check digit with weights [1,3,1,7,3,9], the no-vowels rule for modern codes, and live instrument lookup via OpenFIGI.

SEDOLLSEGSecuritiesOpenFIGI
📊
Python

SEDOL Validation in Python — UK Securities Identifiers

How to validate SEDOL identifiers in Python — weighted check digit algorithm, legacy vowel codes, and live enrichment via OpenFIGI — with requests and SDK examples.

SEDOLLSEGSecuritiesOpenFIGI
📊
Node.js

WKN Validation in Node.js — German Securities Identifiers

How to validate WKN (Wertpapierkennnummer) identifiers in Node.js — 6-character format, the relationship to German ISINs, and live instrument lookup via OpenFIGI.

WKNWM DatenserviceSecuritiesOpenFIGI
📊
Python

WKN Validation in Python — German Securities Identifiers

How to validate WKN (Wertpapierkennnummer) identifiers in Python — 6-character format with no check digit, the connection to DE ISINs, and OpenFIGI enrichment via requests and SDK.

WKNWM DatenserviceSecuritiesOpenFIGI
📊
Node.js

VALOR Validation in Node.js — Swiss Securities Identifiers

How to validate VALOR (Valorennummer) identifiers in Node.js — 5–9 digit purely numeric format, no check digit, the relationship to CH/LI ISINs, and live instrument lookup via OpenFIGI.

VALORSIX FinancialSecuritiesOpenFIGI
📊
Python

VALOR Validation in Python — Swiss Securities Identifiers

How to validate VALOR (Valorennummer) identifiers in Python — 5–9 digit numeric format with no check digit, the connection to CH/LI ISINs, and OpenFIGI enrichment via requests and SDK.

VALORSIX FinancialSecuritiesOpenFIGI
🇮🇳
Node.js

GSTIN Validation in Node.js — Indian Tax ID Structure Explained

How to validate Indian GSTIN numbers — 15-character structure, state code lookup, PAN extraction, entity type detection, and the mod-36 check character algorithm.

GSTINPANState codeIndia
🇮🇳
Python

GSTIN Validation in Python — Indian Tax ID Structure Explained

How to validate Indian GSTIN numbers in Python — 15-character structure, state code lookup, PAN extraction, entity type detection, and the mod-36 check character.

GSTINPANState codeIndia
🇧🇷
Node.js

CNPJ Validation in Node.js — Brazilian Business Registry Numbers

How to validate Brazilian CNPJ numbers — the 14-digit structure, branch vs headquarters, weighted MOD-11 checksum, and optional company lookup via BrasilAPI.

CNPJMOD-11BrasilAPIBrazil
🇧🇷
Python

CNPJ Validation in Python — Brazilian Business Registry Numbers

How to validate Brazilian CNPJ numbers in Python — the 14-digit structure, branch vs headquarters, weighted MOD-11 checksum, and optional company lookup.

CNPJMOD-11BrasilAPIBrazil
🇧🇷
Node.js

CPF Validation in Node.js — Brazilian Individual Tax ID

How to validate Brazilian CPF numbers — the 11-digit structure, two weighted MOD-11 check digits, the all-same-digits trap, and fiscal region encoding.

CPFMOD-11Check digitsBrazil
🇧🇷
Python

CPF Validation in Python — Brazilian Individual Tax ID

How to validate Brazilian CPF numbers in Python — the 11-digit structure, two weighted MOD-11 check digits, the all-same-digits trap, and fiscal region encoding.

CPFMOD-11Check digitsBrazil
Node.js

Ethereum Address Validation in Node.js — EIP-55 Checksum Explained

How to validate Ethereum addresses — the 40-hex-character format, EIP-55 mixed-case checksum, why simple regex isn't enough, and how to prevent irreversible fund loss.

EthereumEIP-55ChecksumDeFi
Python

Ethereum Address Validation in Python — EIP-55 Checksum Explained

How to validate Ethereum addresses in Python — the 40-hex-character format, EIP-55 mixed-case checksum, and how to prevent irreversible fund loss — with requests examples.

EthereumEIP-55ChecksumDeFi
Node.js

Bitcoin Address Validation in Node.js — P2PKH, SegWit & Taproot

How to validate Bitcoin addresses — Base58Check for legacy, Bech32 for SegWit, Bech32m for Taproot — address type detection and checksum verification.

BitcoinBase58CheckBech32Taproot
Python

Bitcoin Address Validation in Python — P2PKH, SegWit & Taproot

How to validate Bitcoin addresses in Python — Base58Check, Bech32, Bech32m — address type detection and checksum verification — with requests examples.

BitcoinBase58CheckBech32Taproot
🏦
Node.js

ABA Routing Number Validation in Node.js — US Banking

How to validate 9-digit ABA routing transit numbers — the weighted checksum algorithm, Federal Reserve district encoding, and why ACH and wire routing numbers differ.

ABARouting numberACHUS Banking
🏦
Python

ABA Routing Number Validation in Python — US Banking

How to validate ABA routing numbers in Python — the weighted checksum, Federal Reserve district encoding, and ACH vs wire differences — with requests examples.

ABARouting numberACHUS Banking
🔀
Node.js

SWIFT MT Message Type Validation in Node.js — Categories & Lookup

How to validate and look up SWIFT MT message types — the 10 categories, common types (MT103, MT202, MT940), and the ongoing MT-to-MX (ISO 20022) migration.

SWIFT MTISO 15022PaymentsISO 20022
🔀
Python

SWIFT MT Message Type Validation in Python — Categories & Lookup

How to validate and look up SWIFT MT message types in Python — the 10 categories, common types, and MT-to-MX migration — with requests examples.

SWIFT MTISO 15022PaymentsISO 20022
📮
Node.js

Postal Code Validation in Node.js — 60+ Country Formats

How to validate postal codes across 60+ countries — country-specific format rules, why a single regex fails, and how to normalize ZIP+4, UK postcodes, and more.

Postal codeZIP codeCountry formatsAddress
📮
Python

Postal Code Validation in Python — 60+ Country Formats

How to validate postal codes in Python across 60+ countries — country-specific format rules, ZIP+4, UK postcodes, and normalization — with requests examples.

Postal codeZIP codeCountry formatsAddress
📦
Node.js

HS Code Validation in Node.js — Harmonized System Lookup

How to validate HS codes for international trade — the 6-digit WCO structure, chapter/heading/subheading breakdown, and how to look up commodity descriptions.

HS codeWCOTradeCustoms
📦
Python

HS Code Validation in Python — Harmonized System Lookup

How to validate HS codes in Python — the 6-digit WCO structure, chapter/heading/subheading breakdown, and commodity description lookup — with requests examples.

HS codeWCOTradeCustoms
🚢
Node.js

Container Code Validation in Node.js — ISO 6346 Check Digit

How to validate shipping container codes — the ISO 6346 structure (owner, category, serial, check digit), the mod-11 algorithm with letter-to-number mapping, and size/type decoding.

Container codeISO 6346ShippingCheck digit
🚢
Python

Container Code Validation in Python — ISO 6346 Check Digit

How to validate shipping container codes in Python — the ISO 6346 structure, mod-11 algorithm, and size/type decoding — with requests examples.

Container codeISO 6346ShippingCheck digit
🌍
Node.js

UN/LOCODE Validation in Node.js — Port & Location Codes

How to validate UN/LOCODE location codes — the 5-character structure, country prefix + location suffix, function classifiers (port, airport, rail), and location lookup.

UN/LOCODEPortsTradeLogistics
🌍
Python

UN/LOCODE Validation in Python — Port & Location Codes

How to validate UN/LOCODE location codes in Python — the 5-character structure, function classifiers, and location lookup — with requests examples.

UN/LOCODEPortsTradeLogistics
✈️
Node.js

IATA Airport Code Validation in Node.js — 3-Letter Code Lookup

How to validate IATA airport codes — the 3-letter structure, why not all 3-letter combos are valid, city vs airport codes, and how to look up airport details.

IATAAirport codesTravelLookup
✈️
Python

IATA Airport Code Validation in Python — 3-Letter Code Lookup

How to validate IATA airport codes in Python — the 3-letter structure, city vs airport codes, and airport detail lookup — with requests examples.

IATAAirport codesTravelLookup
🏥
Node.js

NPI Validation in Node.js — US Healthcare Provider IDs

How to validate NPI numbers — the 10-digit structure, Luhn check digit with healthcare prefix, provider type (individual vs organization), and NPPES lookup.

NPILuhnHealthcareNPPES
🏥
Python

NPI Validation in Python — US Healthcare Provider IDs

How to validate NPI numbers in Python — the 10-digit structure, Luhn check digit, provider type detection, and NPPES lookup — with requests examples.

NPILuhnHealthcareNPPES
🏦
Node.js

Sort Code Validation in Node.js — UK Bank Identifiers

How to validate UK sort codes — the 6-digit structure, bank and branch identification, EISCD lookup, and the relationship between sort codes and IBANs.

Sort codeEISCDUK BankingBACS
🏦
Python

Sort Code Validation in Python — UK Bank Identifiers

How to validate UK sort codes in Python — the 6-digit structure, bank identification, EISCD lookup, and sort code to IBAN mapping — with requests examples.

Sort codeEISCDUK BankingBACS
🏢
Node.js

KRS Validation in Node.js — Polish Court Registry Numbers

How to validate KRS numbers — the 10-digit structure, registry type classification, and how to look up company details from the Polish National Court Register.

KRSCourt registryCompany lookupPoland
🏢
Python

KRS Validation in Python — Polish Court Registry Numbers

How to validate KRS numbers in Python — the 10-digit structure, registry type classification, and company detail lookup — with requests examples.

KRSCourt registryCompany lookupPoland
📚
Node.js

ISBN Validation in Node.js — ISBN-10, ISBN-13 & Check Digits

How to validate ISBN numbers — ISBN-10 vs ISBN-13 structure, MOD-11 and MOD-10 check digits, ISBN-10 to ISBN-13 conversion, and publisher lookup.

ISBNMOD-11MOD-10Publishing
📚
Python

ISBN Validation in Python — ISBN-10, ISBN-13 & Check Digits

How to validate ISBN numbers in Python — ISBN-10 vs ISBN-13, MOD-11 and MOD-10 check digits, and conversion — with requests examples.

ISBNMOD-11MOD-10Publishing
👤
Node.js

User Registration Validation — Email, Phone & Password in One Flow

How to build a complete user registration validation flow — validate email (MX + disposable check), phone (E.164 + line type), and password strength in parallel.

RegistrationEmailPhoneParallel validation
👤
Python

User Registration Validation — Email, Phone & Postal Code in One Flow

How to build a complete user registration validation flow in Python — validate email (MX + disposable check), phone (E.164 + line type), and postal code in parallel with FastAPI middleware.

RegistrationEmailPhoneFastAPI
🛒
Node.js

E-commerce Checkout Validation — Card, Address & Email in One Flow

How to validate an e-commerce checkout form — credit card (Luhn + network), postal code (country-aware), email (MX check), and IBAN for bank transfers — all in parallel.

E-commerceCredit cardPostal codeCheckout
🛒
Python

E-commerce Checkout Validation — Card, IBAN, VAT & Postal Code

How to validate an e-commerce checkout form in Python — credit card (Luhn + BIN), IBAN (SEPA), VAT (B2B reverse charge), and postal code — adaptive parallel validation.

E-commerceCredit cardPostal codeCheckout
🇵🇱
Node.js

Polish Business Verification — NIP, REGON, KRS & PESEL in One Flow

How to build a comprehensive Polish business verification flow — validate NIP (VAT), REGON (GUS), KRS (court registry), and PESEL (owner identity) with cross-field consistency checks.

NIPREGONKRSPESEL
🇵🇱
Python

Polish Business Verification — PESEL, REGON, KRS & VAT in One Flow

How to build a comprehensive Polish business verification flow in Python — validate PESEL, REGON, KRS, and VAT with cross-registry consistency checks and parallel validation.

NIPREGONKRSPESEL
🇧🇷
Node.js

Brazilian Tax Compliance — CNPJ, CPF & Phone Validation Flow

How to build a Brazilian tax compliance validation flow — validate CNPJ (business), CPF (individual), and phone numbers with entity type detection and cross-validation.

CNPJCPFPhoneBrazil
🇧🇷
Python

Brazilian Tax Compliance — CNPJ, CPF & VAT Validation in One Flow

How to build a Brazilian tax compliance flow in Python — validate CNPJ (business), CPF (individual), and optionally EU VAT for cross-border transactions with parallel validation.

CNPJCPFVATBrazil
🌐
Node.js

Domain Validation in Node.js — TLD, IDN & DNS Checks

How to validate domain names — TLD verification, internationalized domain names (IDN), punycode handling, and DNS record checks (A/AAAA) in a single API call.

DomainTLDIDNDNS
🌐
Python

Domain Validation in Python — TLD, IDN & DNS Checks

How to validate domain names in Python — TLD verification, IDN support, punycode, and DNS record checks — with requests examples.

DomainTLDIDNDNS
🔗
Node.js

URL Validation in Node.js — Protocol, Encoding & Parsing

How to validate URLs — protocol detection, domain extraction, query parameter parsing, fragment handling, and why RFC 3986 compliance matters.

URLRFC 3986ProtocolQuery parsing
🔗
Python

URL Validation in Python — Protocol, Encoding & Parsing

How to validate URLs in Python — protocol detection, domain extraction, query parsing, and RFC 3986 compliance — with requests examples.

URLRFC 3986ProtocolQuery parsing
🆔
Node.js

UUID Validation in Node.js — Versions, Variants & Nil Detection

How to validate UUIDs — version detection (v1–v7), variant identification (RFC 4122, NCS, Microsoft), nil/max UUID handling, and why format regex is not enough.

UUIDRFC 4122Version detectionDistributed systems
🆔
Python

UUID Validation in Python — Versions, Variants & Nil Detection

How to validate UUIDs in Python — version detection (v1–v7), variant identification, nil/max UUID handling — with requests examples.

UUIDRFC 4122Version detectionDistributed systems
🖥️
Node.js

IP Address Validation in Node.js — IPv4, IPv6 & Type Classification

How to validate IP addresses — IPv4 and IPv6 format checks, address type classification (public, private, loopback, multicast), and IPv6 expansion/normalization.

IPv4IPv6Private rangesAddress type
🖥️
Python

IP Address Validation in Python — IPv4, IPv6 & Type Classification

How to validate IP addresses in Python — IPv4/IPv6 format checks, type classification, and normalization — with requests examples.

IPv4IPv6Private rangesAddress type
🇪🇸
Node.js

NIF / NIE Validation in Node.js — Spanish Tax ID Numbers

How to validate Spanish NIF and NIE numbers — DNI structure for citizens, NIE for foreign residents, the mod-23 control letter algorithm, and type detection.

NIFNIEDNISpain
🇪🇸
Python

NIF / NIE Validation in Python — Spanish Tax ID Numbers

How to validate Spanish NIF and NIE numbers in Python — DNI and NIE structure, mod-23 control letter, and type detection — with requests examples.

NIFNIEDNISpain
🇦🇺
Node.js

ABN Validation in Node.js — Australian Business Numbers

How to validate Australian Business Numbers — the 11-digit structure, weighted checksum algorithm, and optional ABR registry lookup for entity name, type, and GST status.

ABNABR lookupGSTAustralia
🇦🇺
Python

ABN Validation in Python — Australian Business Numbers

How to validate Australian Business Numbers in Python — the 11-digit structure, checksum algorithm, and ABR registry lookup — with requests examples.

ABNABR lookupGSTAustralia
📰
Node.js

ISSN Validation in Node.js — MOD-11 Check Digit for Serial Publications

How to validate ISSNs — the 8-digit structure, MOD-11 check digit algorithm, the X check character, and the difference between print and electronic ISSNs.

ISSNMOD-11Serial publicationsISSN-L
📰
Python

ISSN Validation in Python — MOD-11 Check Digit for Serial Publications

How to validate ISSNs in Python — the 8-digit structure, MOD-11 check digit, X check character, and print vs electronic ISSNs — with requests examples.

ISSNMOD-11Serial publicationsISSN-L
📍
Node.js

GLN Validation in Node.js — GS1 Global Location Numbers

How to validate GLN-13 codes — the GS1 structure, alternating-weight check digit algorithm, prefix country lookup, and how GLNs identify locations in supply chains.

GLNGS1Supply chainCheck digit
📍
Python

GLN Validation in Python — GS1 Global Location Numbers

How to validate GLN-13 codes in Python — GS1 structure, check digit algorithm, and prefix country lookup — with requests examples.

GLNGS1Supply chainCheck digit
📦
Node.js

SSCC Validation in Node.js — GS1 Serial Shipping Container Codes

How to validate SSCC-18 codes — the GS1 structure (extension digit, company prefix, serial reference, check digit), the alternating-weight algorithm, and warehouse/EDI integration.

SSCCGS1LogisticsEDI
📦
Python

SSCC Validation in Python — GS1 Serial Shipping Container Codes

How to validate SSCC-18 codes in Python — GS1 structure, check digit algorithm, and logistics integration — with requests examples.

SSCCGS1LogisticsEDI
✈️
Node.js

IATA Airline Code Validation in Node.js — 2-Letter Designator Lookup

How to validate IATA airline codes — the 2-letter designator system, ICAO cross-reference, callsign lookup, and how to list all airlines.

IATAAirline codesICAOTravel
✈️
Python

IATA Airline Code Validation in Python — 2-Letter Designator Lookup

How to validate IATA airline codes in Python — 2-letter designators, ICAO cross-reference, and callsign lookup — with requests examples.

IATAAirline codesICAOTravel
🛫
Node.js

IATA Flight Number Validation in Node.js — Airline + Number Parsing

How to validate IATA flight numbers — airline code extraction, flight number parsing, suffix detection, and automatic airline name lookup.

IATAFlight numberAirlineBooking
🛫
Python

IATA Flight Number Validation in Python — Airline + Number Parsing

How to validate IATA flight numbers in Python — airline code extraction, number parsing, and airline lookup — with requests examples.

IATAFlight numberAirlineBooking
📄
Node.js

DOI Validation in Node.js — Digital Object Identifiers & Metadata Lookup

How to validate DOIs — the prefix/suffix structure, registrant identification, persistent URL resolution, and optional metadata lookup (title, authors, publisher).

DOICrossrefMetadataAcademic
📄
Python

DOI Validation in Python — Digital Object Identifiers & Metadata Lookup

How to validate DOIs in Python — prefix/suffix structure, registrant lookup, and metadata retrieval — with requests examples.

DOICrossrefMetadataAcademic
🧑‍🔬
Node.js

ORCID Validation in Node.js — Researcher ID & Profile Lookup

How to validate ORCID identifiers — the 16-digit structure, ISO 7064 MOD 11-2 check character, and optional profile lookup for researcher name and affiliation.

ORCIDISO 7064Researcher IDAcademic
🧑‍🔬
Python

ORCID Validation in Python — Researcher ID & Profile Lookup

How to validate ORCID identifiers in Python — 16-digit structure, check character, and profile lookup — with requests examples.

ORCIDISO 7064Researcher IDAcademic
🏛️
Node.js

MIC Validation in Node.js — ISO 10383 Market Identifier Codes

How to validate Market Identifier Codes — the 4-character ISO 10383 structure, operating vs segment MICs, exchange status tracking, and venue lookup.

MICISO 10383ExchangesMiFID II
🏛️
Python

MIC Validation in Python — ISO 10383 Market Identifier Codes

How to validate Market Identifier Codes in Python — ISO 10383 structure, operating vs segment MICs, and venue lookup — with requests examples.

MICISO 10383ExchangesMiFID II
🏭
Node.js

Industry Code Validation in Node.js — NAICS & NACE Classification

How to validate industry codes — NAICS (North America) and NACE (EU) classification systems, hierarchy traversal, description lookup, and auto-detection.

NAICSNACEIndustry classificationKYC
🏭
Python

Industry Code Validation in Python — NAICS & NACE Classification

How to validate industry codes in Python — NAICS and NACE systems, hierarchy lookup, and description retrieval — with requests examples.

NAICSNACEIndustry classificationKYC
🚢
Node.js

Logistics & Shipping Validation — Container, HS Code, LOCODE & EORI

How to validate a complete shipment in Node.js — container code (ISO 6346), HS code (WCO), UN/LOCODE (port lookup), and EORI (EU customs) with parallel Promise.all validation.

ShippingContainer codeHS codeEORI
🚢
Python

Logistics & Shipping Validation — Container, HS Code, LOCODE & EORI

How to validate a complete shipment in Python — container code, HS code, UN/LOCODE, and EORI with asyncio.gather for concurrent API calls.

ShippingContainer codeHS codeEORI
💳
Node.js

Fintech Onboarding Validation — IBAN, BIC, Credit Card & Sort Code

How to build an adaptive payment method validation flow in Node.js — IBAN + BIC for EU transfers, sort code for UK, credit card for card payments — with SEPA eligibility checks.

FintechIBANBICPayment validation
💳
Python

Fintech Onboarding Validation — IBAN, BIC, Credit Card & Sort Code

How to build an adaptive payment method validation flow in Python — IBAN + BIC, sort code, credit card — with asyncio.gather and SEPA eligibility checks.

FintechIBANBICPayment validation
📚
Node.js

Academic Publishing Validation — DOI, ORCID, ISBN & ISSN

How to validate academic identifiers in Node.js — DOI with CrossRef metadata enrichment, ORCID researcher profile, ISBN-10/13 normalisation, and ISSN for journals.

AcademicDOIORCIDISBN
📚
Python

Academic Publishing Validation — DOI, ORCID, ISBN & ISSN

How to validate academic identifiers in Python — DOI, ORCID, ISBN and ISSN with asyncio.gather for concurrent validation and CrossRef metadata enrichment.

AcademicDOIORCIDISBN
🇮🇳
Node.js

Indian Business Compliance — GSTIN Validation Flow

How to validate GSTIN numbers for India GST compliance — 15-character structure, state code extraction, PAN cross-checking, and batch validation with Promise.all.

IndiaGSTINGST compliancePAN
🇮🇳
Python

Indian Business Compliance — GSTIN Validation Flow

How to validate GSTIN numbers in Python — state code extraction, PAN cross-checking, and batch validation with asyncio.gather.

IndiaGSTINGST compliancePAN
🇪🇸
Node.js

Spanish Business Compliance — NIF, NIE & VAT Validation Flow

How to validate Spanish tax identifiers in Node.js — NIF (residents/businesses), NIE (foreign individuals), and EU VAT cross-checking with parallel Promise.all validation.

SpainNIFNIESpanish VAT
🇪🇸
Python

Spanish Business Compliance — NIF, NIE & VAT Validation Flow

How to validate Spanish tax identifiers in Python — NIF, NIE, and EU VAT with asyncio.gather and cross-validation between NIF and VAT numbers.

SpainNIFNIESpanish VAT
🇦🇺
Node.js

Australian Business Compliance — ABN & GST Validation Flow

How to build an ABN validation flow in Node.js — checksum verification, ABR registry lookup, GST registration status, ACN extraction, and batch validation.

AustraliaABNGST registrationABR
🇦🇺
Python

Australian Business Compliance — ABN & GST Validation Flow

How to validate ABN numbers in Python — ABR registry lookup, GST registration status, and batch validation with asyncio.gather.

AustraliaABNGST registrationABR
Node.js

Crypto Wallet Address Validation — Bitcoin & Ethereum

How to validate Bitcoin and Ethereum addresses in Node.js — BTC address type detection (P2PKH, P2SH, bech32), ETH EIP-55 checksum, and parallel validation.

CryptoBitcoinEthereumEIP-55
Python

Crypto Wallet Address Validation — Bitcoin & Ethereum

How to validate Bitcoin and Ethereum addresses in Python — address type detection, EIP-55 checksum, and concurrent validation with asyncio.gather.

CryptoBitcoinEthereumEIP-55
📱
Node.js

IoT Device Identification — IMEI & MAC Address Validation

How to validate IoT device identifiers in Node.js — IMEI Luhn checksum with TAC extraction, MAC address normalisation, multicast/broadcast detection, and parallel validation.

IoTIMEIMAC addressDevice identification
📱
Python

IoT Device Identification — IMEI & MAC Address Validation

How to validate IoT device identifiers in Python — IMEI Luhn checksum, MAC normalisation, multicast detection, and concurrent validation with asyncio.gather.

IoTIMEIMAC addressDevice identification
🛡️
Reference

Input Validation Best Practices for REST APIs

Where to validate, format vs semantic checks, parallel validation with Promise.all / asyncio.gather, RFC 9457 error responses, and middleware patterns for Express.js and FastAPI.

API validationBest practicesMiddlewareError handling
🔍
Reference

Validation vs Sanitization — What Is the Difference?

A clear breakdown of input validation vs data sanitization — when to use each, how they interact, security implications, and why you should never sanitize structured identifiers.

SecurityXSSSQL injectionInput handling
📝
Node.js + Python

How to Validate Form Data in Express.js and FastAPI

Practical two-phase validation patterns — Zod/Pydantic for format, IsValid API for semantics — with reusable middleware for Express.js and dependency injection for FastAPI.

Express.jsFastAPIMiddlewareParallel validation
🌐
Reference

International Data Compliance — Which Identifiers You Must Validate

A practical reference covering KYC/AML, EU VAT, MiFID II, GSTIN, ABN, trade compliance, and fintech — which identifiers are legally required to validate by regulation and region.

ComplianceKYCAMLInternational
📷
Node.js

QR Code Validation in Node.js

Validate QR code content in Node.js — detect URL, vCard, Wi-Fi, email and other types, block dangerous payloads (javascript:, data: URIs), and safely redirect users after scanning.

QRSecurityURL validationIoT
📷
Python

QR Code Validation in Python

Validate QR code content in Python — detect content types, block dangerous URI schemes, and batch validate with asyncio.gather.

QRSecurityasyncioFastAPI
🔌
Node.js

MAC Address Validation in Node.js

Validate MAC addresses in Node.js — accept colon, hyphen, and compact formats, detect unicast/multicast/broadcast, identify locally-administered (randomised) addresses, and normalise for storage.

MACNetworkingIoTDevice ID
🔌
Python

MAC Address Validation in Python

Validate MAC addresses in Python — accept any format, detect address types, identify randomised MACs (iOS/Android), and batch validate with asyncio.gather.

MACNetworkingIoTasyncio
📅
Node.js

Date Validation in Node.js

Validate dates in Node.js — handle leap years correctly, validate date ranges, verify minimum age for GDPR/COPPA, and normalise input formats to ISO 8601.

DateLeap yearAge verificationGDPR
📅
Python

Date Validation in Python

Validate dates in Python — handle leap years, validate ranges with asyncio.gather, verify minimum age with UTC timestamps, and normalise to ISO 8601.

DateLeap yearAge verificationasyncio
🏷️
Node.js

Semver Validation in Node.js

Validate semantic version strings in Node.js — parse MAJOR.MINOR.PATCH, detect pre-release builds, enforce stable-only releases on main, and gate CI/CD pipelines.

SemverCI/CDnpmRelease management
🏷️
Python

Semver Validation in Python

Validate semantic version strings in Python — parse components, enforce stable releases before PyPI publish, and validate dependency manifests with asyncio.

SemverCI/CDPyPIRelease management
🎨
Node.js

Color Validation in Node.js

Validate color values in Node.js — accept HEX, RGB, HSL, and CSS named colors, normalise to canonical hex, detect alpha transparency, and validate brand palettes.

ColorHEXRGBDesign tokens
🎨
Python

Color Validation in Python

Validate color values in Python — accept any color format, normalise to canonical hex, block alpha in opaque-only fields, and validate brand palettes with asyncio.

ColorHEXHSLDesign tokens

Ready to start validating?

Free tier — 100 API calls per day, no credit card required.