A new supplier sent VAT number IE6388047V and IBAN NL91ABNA0417164300 for Google Ireland. Are both real, and does the VAT number belong to them?
The VAT number is checked live in the European Commission's VIES service: valid or not, the registered name and address when the member state shares them, and a name match against the company you expect. The IBAN is checked offline against ISO 13616: check digits, length and layout for its country, the bank code and the country. Each check is pass, fail or unverified with its source; VIES being down gives unverified, never invalid, and costs nothing.
Tool input
{
"vatNumbers": [
"IE6388047V"
],
"ibans": [
"NL91ABNA0417164300"
],
"expectedName": "Google Ireland"
}
Ask it from an AI agent (MCP)
Add the Apify MCP server with this tool to your MCP client (Claude, Cursor, VS Code, ...); it signs you in with OAuth or Authorization: Bearer <APIFY_TOKEN>. It works once the Actor is listed on the Apify Store; until then use the HTTP API or the remote MCP server at https://api.boscolabs.dev/mcp.
https://mcp.apify.com?tools=bosco_labs/vat-iban-check
Then ask:
Use the bosco_labs/vat-iban-check tool to answer: A new supplier sent VAT number IE6388047V and IBAN NL91ABNA0417164300 for Google Ireland. Are both real, and does the VAT number belong to them?
Call the Apify API
Runs the Actor and returns the rows in one request, billed to your Apify account ($0.002 per definite check (VAT number answered by VIES, or a valid IBAN); malformed, failed and unverified are free (HTTP API)). It works once the Actor is listed on the Apify Store; until then use the HTTP API or the remote MCP server at https://api.boscolabs.dev/mcp.
curl https://api.apify.com/v2/acts/bosco_labs~vat-iban-check/run-sync-get-dataset-items \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"vatNumbers": ["IE6388047V"], "ibans": ["NL91ABNA0417164300"], "expectedName": "Google Ireland"}'
Call the Bosco Labs HTTP API
Bosco Labs HTTP API (beta): same input and rows, $0.002 per definite check (VAT number answered by VIES, or a valid IBAN); malformed, failed and unverified are free from prepaid credits. Get a key with a $0.50 free trial, or send the same call without a key and pay per call in USDC via x402 (no account).
curl https://api.boscolabs.dev/v1/vat-iban-check \
-H "Authorization: Bearer $BOSCO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"vatNumbers": ["IE6388047V"], "ibans": ["NL91ABNA0417164300"], "expectedName": "Google Ireland"}'
VAT answers: EU VIES (European Commission); IBAN layouts: SWIFT IBAN Registry.
Example output
Example output from the tool's documentation (not a run of this exact question).
[
{
"schema_version": "1",
"query": "IE6388047V",
"check_type": "vat",
"number": "IE6388047V",
"country_code": "IE",
"status": "pass",
"valid": true,
"reason": null,
"registered_name": "GOOGLE IRELAND LIMITED",
"registered_address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"request_date": "2026-11-07T16:05:31.393Z",
"consultation_number": null,
"bank_code": null,
"sepa_country": null,
"expected_name": "Google Ireland Ltd",
"name_match": true,
"expected_country": "IE",
"country_match": true,
"checks": [
{"check": "vat_format", "status": "pass", "detail": "IE VAT number format", "source": "VIES FAQ format table"},
{"check": "vies_registration", "status": "pass", "detail": "valid", "source": "VIES (European Commission), answered by the national tax administration"},
{"check": "name_match", "status": "pass", "detail": "expected 'Google Ireland Ltd', registered 'GOOGLE IRELAND LIMITED' (case, accents, punctuation and legal forms ignored)", "source": "VIES (European Commission), answered by the national tax administration"},
{"check": "country_match", "status": "pass", "detail": "expected IE, number is IE", "source": "VIES (European Commission), answered by the national tax administration"}
],
"source": "VIES (European Commission), answered by the national tax administration",
"source_url": "https://ec.europa.eu/taxation_customs/vies/#/vat-validation",
"checked_at": "2026-11-07T16:05:31Z"
},
{
"schema_version": "1",
"query": "NL91 ABNA 0417 1643 00",
"check_type": "iban",
"number": "NL91ABNA0417164300",
"country_code": "NL",
"status": "pass",
"valid": true,
"reason": null,
"registered_name": null,
"registered_address": null,
"request_date": null,
"consultation_number": null,
"bank_code": "ABNA",
"sepa_country": true,
"expected_name": null,
"name_match": null,
"expected_country": "IE",
"country_match": false,
"checks": [
{"check": "iban_structure", "status": "pass", "detail": "NL length 18, layout and check digits", "source": "ISO 13616 check digits (mod 97) and the SWIFT IBAN Registry formats"},
{"check": "country_match", "status": "fail", "detail": "expected IE, number is NL", "source": "ISO 13616 check digits (mod 97) and the SWIFT IBAN Registry formats"}
],
"source": "ISO 13616 check digits (mod 97) and the SWIFT IBAN Registry formats",
"source_url": "https://www.swift.com/standards/data-standards/iban-international-bank-account-number",
"checked_at": "2026-11-07T16:05:32Z"
}
]