벨기에 VAT 검증 5줄 (기업명 조회 포함)
출처: Dev.to
벨기에 VAT 번호를 코드로 검증해 본 적이 있다면, 그 과정이 얼마나 번거로운지 알 겁니다:
- 공백과
BE접두사를 제거한다 - 모듈로‑97 체크섬을 수행한다 (벨기에는 좀 까다롭거든요)
- VIES SOAP 엔드포인트에 호출해 실제 존재하는 번호인지 확인한다
- XML 응답을 파싱해 회사 이름을 얻는다 (VIES가 그 날 정보를 제공한다면)
이 모든 작업을 위해서는 80줄 이상의 코드와 XML 파서, 그리고 수많은 오류 처리 로직이 필요합니다. 한 줄이면 충분할 일을 위해서 말이죠.
직접 구현하는 게 지겨워서, 단일 GET 요청만으로 모든 작업을 처리해 주는 작은 API를 만들었습니다.
const res = await fetch(
"https://belgian-vat-validator.p.rapidapi.com/api/validate?number=BE0417497106",
{ headers: { "X-RapidAPI-Key": "YOUR_KEY",
"X-RapidAPI-Host": "belgian-vat-validator.p.rapidapi.com" } }
);
const data = await res.json();
console.log(data.valid, data.vies.name);
// → true "NV Anheuser-Busch InBev"
그게 전부입니다. 형식 검사, 모듈로‑97 체크섬, VIES 조회, 그리고 회사 이름까지— 모두 200 ms 이하에 처리됩니다.
반환 예시
{
"input": "BE0417497106",
"number": "BE0417497106",
"formatted": "BE 0417 497 106",
"valid": true,
"checks": {
"format": true,
"checksum": true,
"vies": true
},
"vies": {
"available": true,
"isValid": true,
"name": "NV Anheuser-Busch InBev",
"address": "Brouwerijplein 1\n3000 Leuven"
}
}
강조하고 싶은 두 가지
checks는 단계별 검증 결과를 상세히 보여줍니다. 번호가 실패하면 오타인지, 체크섬 오류인지, 아니면 VIES에서 존재하지 않는다고 판단했는지를 바로 알 수 있어 사용자에게 무엇이 잘못됐는지 알려주기에 유용합니다.vies.name과vies.address는 무료로 제공됩니다. 많은 개발자가 VIES가 기업 정보를 차단한다고 생각하지만, 실제로는 공식적으로 제공되고 있습니다.
왜 VIES를 직접 호출하지 않나요?
가능합니다. 하지만 다음과 같은 문제가 있습니다:
- VIES는 SOAP 기반입니다. XML 라이브러리 혹은
fast-xml-parser같은 래퍼가 필요합니다. - VIES는 신뢰성이 떨어집니다. 특히 회계 마감 시기에 몇 시간씩 다운될 때가 많습니다.
- VIES는 형식·체크섬 오류를 구분해 주지 않습니다. 형식이 잘못된 번호도 “invalid”라는 동일한 응답을 반환하므로, 사전 검증 로직이 반드시 필요합니다.
- 모듈로‑97 체크를 직접 구현해야 합니다. 구현 자체는 어렵지 않지만, 슬라이스 오류나 8자리 접두사의 정수 오버플로우 같은 실수를 하기 쉽습니다.
이 모든 것을 직접 감싸면, 실제 기능을 배포하기 전에 이미 반쯤은 라이브러리를 만든 셈이 됩니다.
언제 사용하고 언제 사용하지 않을까
사용하면 좋은 경우
- 고객 VAT 번호를 저장하기 전에 검증이 필요한 인보이스·견적서 생성 시스템
- 오타가 downstream 문제를 일으키는 B2B 온보딩 흐름
- 영업·재무·회계용 내부 툴
- “나중에 직접 구현한다”는 선택이 합리적인 MVP
사용하면 안 되는 경우
- 하루에 10만 건 이상 VAT 조회가 필요할 경우 – 이 정도 규모라면 자체 VIES 프록시를 운영하는 것이 좋습니다.
- 현재 EU 전역을 지원해야 할 경우 (이 API는 현재 BE 전용이며, NL/FR/DE 등은 아직 포함되지 않음)
- 고객이 외부 의존성을 전혀 허용하지 않는 경우 (규제 산업 등)
직접 써보기
무료 티어가 제공됩니다(RapidAPI 무료 티어). 신용카드 없이도 MVP를 바로 시작할 수 있습니다.
피드백이나 추가하고 싶은 국가가 있다면 언제든 메시지를 남겨 주세요. 모든 의견을 읽습니다.
Built by miel1 (RapidAPI 프로필) on RapidAPI (RapidAPI 홈페이지).