Проверка НДС-номера ЕС API
Проверяет любой европейский НДС-номер в VIES — официальном реестре Еврокомиссии. Подтверждение в реальном времени плюс зарегистрированное наименование и адрес, если государство-член их раскрывает.
Нет API-ключа?
Войдите в аккаунт, чтобы создавать и управлять API-ключами.
Руководство по интеграции
Скопируйте сниппет, подставьте свой API-ключ, запустите. Работает в любом HTTP-клиенте — примеры ниже на cURL, JavaScript и Python.
/api/validate-vathttps://www.apipick.comValidate 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"{
"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
Проверяйте при регистрации и подставляйте наименование и адрес прямо из реестра, вместо того чтобы просить клиента вводить их вручную.
Защита от мошенничества
Отсекайте выдуманные или недействующие НДС-номера до того, как они попадут в биллинг или в налоговую отчётность.
Сценарии с агентами
Дайте финансовому агенту инструмент с одним параметром, который он может вызвать при обработке счёта, и получите однозначный булев ответ.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| valid | boolean | Зарегистрирован ли номер в настоящее время для трансграничной торговли |
| country_code | string | Код государства-члена в том виде, в каком он подаётся (EL для Греции, XI для Северной Ирландии) |
| number | string | НДС-номер без префикса страны |
| name | string | null | Зарегистрированное наименование, если государство-член его раскрывает |
| address | string | null | Зарегистрированный адрес, если государство-член его раскрывает |
| name_disclosed | boolean | False, если государство-член не раскрывает реквизиты по регламенту (DE, ES) |
| request_date | string | null | Отметка времени, зафиксированная VIES для этой проверки |
| consultation_number | string | null | Идентификатор запроса VIES, который можно использовать как подтверждение проверки |
| credits_used | integer | Кредитов списано за этот запрос |
| remaining_credits | integer | Кредитов осталось на вашем аккаунте |
Лимиты запросов
Ограничение действует на API-ключ, скользящее окно 60 секунд. При превышении вы получаете чистый 429 с заголовком Retry-After.
20req/min
На API-ключ, на эндпоинт. Скользящее окно 60 секунд.
3concurrent
Максимум одновременных активных запросов на API-ключ.
X-RateLimit-LimitМаксимум запросов в минутуX-RateLimit-RemainingОсталось запросов в текущем окнеX-RateLimit-ResetСекунд до сброса текущего окнаRetry-AfterСколько секунд ждать перед повтором (только при 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.