[ проверка · налоги ]● 3 кред. · 20 запр./мин

Проверка НДС-номера ЕС API

Проверяет любой европейский НДС-номер в VIES — официальном реестре Еврокомиссии. Подтверждение в реальном времени плюс зарегистрированное наименование и адрес, если государство-член их раскрывает.

Официальный источник VIES27 государств + XIПроверка в реальном времени
auth · x-api-key

Нет API-ключа?

Войдите в аккаунт, чтобы создавать и управлять API-ключами.

[ 02 · integrate ]

Руководство по интеграции

Скопируйте сниппет, подставьте свой API-ключ, запустите. Работает в любом HTTP-клиенте — примеры ниже на cURL, JavaScript и Python.

spec
GET/api/validate-vat
base
https://www.apipick.com

Validate an EU VAT number against the official VIES registry

параметры
vat_numberstringобязательный

Full VAT number with its two-letter member-state prefix. Spaces, dots, and hyphens are stripped. IE6388047V

countrystringнеобязательный

Member-state code, if the number is supplied without its prefix. Greece is EL, not GR. IE

curl -X GET "https://www.apipick.com/api/validate-vat" \
  -H "x-api-key: YOUR_API_KEY"
● 200 · ответ
{
  "vat_number": "IE6388047V",
  "country_code": "IE",
  "number": "6388047V",
  "valid": true,
  "name": "GOOGLE IRELAND LIMITED",
  "address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
  "name_disclosed": true,
  "request_date": "2026-09-01T11:52:22.440Z",
  "consultation_number": null,
  "source": "European Commission VIES",
  "credits_used": 3,
  "remaining_credits": 97
}

Создано для реальных сценариев

🧾

Счета с reverse charge

Подтвердите регистрацию покупателя по НДС, прежде чем выставить трансграничный счёт B2B по нулевой ставке, и сохраните запись о проверке.

🚪

Онбординг B2B

Проверяйте при регистрации и подставляйте наименование и адрес прямо из реестра, вместо того чтобы просить клиента вводить их вручную.

🛡️

Защита от мошенничества

Отсекайте выдуманные или недействующие НДС-номера до того, как они попадут в биллинг или в налоговую отчётность.

🤖

Сценарии с агентами

Дайте финансовому агенту инструмент с одним параметром, который он может вызвать при обработке счёта, и получите однозначный булев ответ.

Поля ответа

ПолеТипОписание
validbooleanЗарегистрирован ли номер в настоящее время для трансграничной торговли
country_codestringКод государства-члена в том виде, в каком он подаётся (EL для Греции, XI для Северной Ирландии)
numberstringНДС-номер без префикса страны
namestring | nullЗарегистрированное наименование, если государство-член его раскрывает
addressstring | nullЗарегистрированный адрес, если государство-член его раскрывает
name_disclosedbooleanFalse, если государство-член не раскрывает реквизиты по регламенту (DE, ES)
request_datestring | nullОтметка времени, зафиксированная VIES для этой проверки
consultation_numberstring | nullИдентификатор запроса VIES, который можно использовать как подтверждение проверки
credits_usedintegerКредитов списано за этот запрос
remaining_creditsintegerКредитов осталось на вашем аккаунте
[ 03 · limits ]

Лимиты запросов

Ограничение действует на API-ключ, скользящее окно 60 секунд. При превышении вы получаете чистый 429 с заголовком Retry-After.

частота запросов

20req/min

На API-ключ, на эндпоинт. Скользящее окно 60 секунд.

параллелизм

3concurrent

Максимум одновременных активных запросов на API-ключ.

заголовки ответа
X-RateLimit-LimitМаксимум запросов в минуту
X-RateLimit-RemainingОсталось запросов в текущем окне
X-RateLimit-ResetСекунд до сброса текущего окна
Retry-AfterСколько секунд ждать перед повтором (только при 429)
● 429 · слишком много запросов
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12

{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded: 20 requests/minute per API key. Retry after 12s.",
  "retry_after": 12
}

Источник данных и лицензия

Проверки выполняются через VIES — систему обмена информацией по НДС Еврокомиссии, которая в реальном времени переадресует каждый запрос в налоговую базу соответствующего государства-члена. Мы не храним копию реестра: ответ принадлежит налоговому органу, а мы лишь отдаём его аккуратным JSON, явно обозначая случаи недоступности и нераскрытия.

Часто задаваемые вопросы

В: Это официальная проверка ЕС?

О: Да. Запрос уходит в VIES — систему обмена информацией по НДС Еврокомиссии, которая в реальном времени обращается к налоговой базе соответствующего государства-члена. Промежуточной базы нет, поэтому ответ совпадает с тем, что вы получили бы в веб-форме Еврокомиссии.

В: Почему для немецких номеров наименование пустое?

О: Германия и Испания принципиально не раскрывают наименование и адрес через VIES. Зарегистрирован номер или нет — по-прежнему подтверждается однозначно, скрываются только реквизиты. В ответе выставляется name_disclosed: false, чтобы вы могли отличить нераскрытие по регламенту от действительно пустого поля.

В: Что происходит, когда система государства-члена недоступна?

О: VIES направляет запрос в базу каждого государства-члена, а они отключаются на техобслуживание. В этом случае вы получаете HTTP 503 с понятным сообщением, и кредиты не списываются. Повторите попытку через несколько минут: сбой на стороне налогового органа, а не на нашей.

В: Какие коды стран поддерживаются?

О: Все 27 государств-членов плюс XI для Северной Ирландии в рамках Виндзорской рамочной договорённости. Учтите, что Греция подаёт НДС под кодом EL, а не под своим ISO-кодом GR. Великобритания (GB) вышла из VIES после Brexit и не охватывается.

В: Можно ли получить номер консультации для аудиторского следа?

О: Поле consultation_number содержит идентификатор запроса VIES, когда он выдаётся. Именно этот идентификатор налоговый орган принимает как доказательство того, что вы проверили статус НДС контрагента на конкретную дату, — это важно при reverse charge.