Welcome to VerifNow
VerifNow is a real-time validation API for the fields your billing and onboarding forms depend on — VAT numbers, IBANs, national IDs, emails and phone numbers. One API key, one quota, one invoice.
Base URL:
https://api.verifnow.io/api/v1/validate
What you can validate
| Field | Endpoint | What it checks |
|---|---|---|
| VAT | /validate/vat | Structure per member state, plus registration against VIES — with an explicit answer when VIES is down |
| IBAN | /validate/iban | Length, character set and MOD-97 checksum |
/validate/email | Syntax, MX records, disposable and role addresses, typo detection, risk score | |
| Phone | /validate/phone | Numbering-plan validity, country, line type, E.164 |
| NIF | /validate/nif | Spanish tax identification number |
| NAS | /validate/nas | Canadian social insurance number |
| SSN | /validate/ssn | US social security number |
Every endpoint takes the same request shape and returns the same response envelope, so adding a second field to your form is a one-line change.
The part that is hard
Checking that a VAT number is shaped correctly is easy. Checking that it is registered means asking VIES, the European Commission’s registry — which publishes no SLA and drops member states several times a month.
VerifNow answers from cache when VIES is unreachable, and tells you so in a source field, rather
than reporting an outage as “not registered” and rejecting a real customer.
Live per-country VIES availability: verifnow.io/en/status —
or GET /api/v1/status/vies, no API key required.
Start building
SDKs
npm install @verifnow/sdkAuthentication
All API requests require your API key in the X-API-KEY header:
X-API-KEY: your_api_key_hereGet your free API key at app.verifnow.io . The free plan runs the same
STANDARD validation depth as Starter — it is capped by volume, not by what it checks.
Quick example
curl -X POST https://api.verifnow.io/api/v1/validate/vat \
-H "X-API-KEY: $VERIFNOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{"value": "IE6388047V"}'Response:
{
"valid": true,
"message": "Valid VAT number",
"normalizedValue": "IE6388047V",
"originalValue": "IE6388047V",
"validationLevel": "STANDARD",
"vatDetails": {
"format_valid": true,
"registered": true,
"country_code": "IE",
"source": "LIVE",
"checked_at": "2026-09-08T02:21:25Z",
"trader_name": "GOOGLE IRELAND LIMITED",
"trader_address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"vies_available": true
}
}Every response shares the same envelope — valid, message, normalizedValue, originalValue,
validationLevel. Field-specific diagnostics arrive in an extra object: vatDetails for VAT,
emailDetails for email. IBAN and phone return the envelope alone.
Try it without an account
The live demo on verifnow.io runs real validations against this API with no signup — paste a VAT number, an IBAN, an email or a phone number and read the actual response.