
2026년 10월 20일
EU 프리랜서를 위한 인보이스 도구 Verkanto를 만들면서, 8월부터 10월 사이 부가가치세(VAT) 판정 코드를 다섯 차례 고쳤다. 그중 두 건은 VAT 금액은 맞았지만 인보이스가 틀렸다.
첫 버전은 고객에게 VAT 번호가 있으면 역청구(reverse charge)를 적용하고, 없으면 고객 국가의 세율을 적용했다. 하지만 소비자 대상 서비스의 일반 규칙은 VAT 지침 제45조에 따라 판매자 소재지를 공급 장소로 본다. 따라서 라트비아 디자이너가 독일의 개인 고객에게 청구하면 라트비아 VAT를 적용해야 한다.
고객 국가의 규칙이 적용되는 경우는 통신·방송·전자적으로 제공되는 서비스처럼 제한적이다. 이런 서비스도 EU 전체 매출이 연간 1만 유로 미만이면 판매자 국가의 규칙을 적용할 수 있다. 인보이스 데이터만으로 서비스가 전자적으로 제공되는지 판별할 수 없어, 도구에는 일반 규칙을 기본값으로 하는 체크박스를 추가했다. 저장한 인보이스에는 당시 선택을 고정해 계정 기본값을 바꿔도 발행된 인보이스의 금액이 달라지지 않게 했다.
두 번째 오류는 VAT 등록을 하지 않은 소규모 사업자의 면세를 먼저 처리한 데서 생겼다. 회원국마다 소규모 사업자 제도(VAT 지침 제282~292조)가 있어 해당 사업자는 VAT를 청구하지 않고 면세 사유를 표시한다. 하지만 이 면세는 자국에서 판매하는 경우에 적용된다. 사업자 간 서비스는 고객 소재지에서 공급된 것으로 보므로, 프랑스의 면세 적용 프리랜서가 벨기에 회사에 서비스를 제공하면 프랑스 매출 규정이 아니라 제196조에 따른 역청구가 적용된다. 판매자는 보통 EU 내 VAT 번호도 필요하다.
도구는 면세 안내를 인쇄했지만 VAT 금액은 어느 쪽이든 0%였다. 숫자만 비교한 테스트로는 오류를 찾지 못했다. 실제로는 수취인이 VAT를 내야 하는 거래인데도 인보이스에는 어디에서도 VAT가 부과되지 않는다고 적혔다.
세 번째로는 VIES에서 고객 VAT 번호가 유효하다고 확인되면 곧바로 역청구를 적용했다. 하지만 제196조에 따른 역청구에는 양쪽 사업자가 서로 다른 회원국에 있어야 한다. 프랑스 프리랜서가 프랑스 회사에 청구하는 거래는 프랑스 세율을 적용하는 국내 판매다. 도구는 이를 0%와 역청구 안내로 발행해 VAT를 받아야 할 판매자가 세금을 걷지 못하게 했다. 자사 마케팅 사이트의 무료 생성기에는 국경 간 거래 확인이 있었지만 제품과 브라우저 미리보기에는 없었다. 같은 국가의 회사에 청구하는 테스트가 오류를 잡았다. 이후 무료 도구 9개에도 같은 인보이스를 넣어 확인한 결과는 별도 글에 정리했다.
네 번째는 세금 판정 오류는 아니지만, VAT 번호를 입력하면 영국·스위스·미국 번호까지 VIES에 보내고 있었다. VIES는 EU 회원국만 확인하므로 이 요청은 실패할 수밖에 없었다. 재시도 정책은 최대 5회, 2~16초 간격의 백오프(backoff), 10초 읽기 시간 제한을 적용했다. 그 때문에 영국 번호를 가진 고객을 저장할 때 최악의 경우 1분 넘게 기다린 뒤, 결국 형식만 확인하는 절차로 넘어갈 수 있었다.
수정은 간단하다. EU 밖의 번호는 형식만 확인하고 외부 조회를 하지 않는다. 회원국 목록은 별도 열거형에 두며, 세율 캐시에 들어 있는 국가를 바탕으로 판단하지 않는다.
다섯 번째는 두 번째 오류를 고치면서 독일 규정을 잘못 설명한 일이었다. 당시 앱과 무료 생성기, 개인 메모에는 등록하지 않은 판매자가 국경 간 사업자 거래를 하려면 EU VAT 번호와 EC 판매 목록을 제출해야 한다고 적었다. 오스트리아와 독일에서 모두 ZM이 필요하다는 내용이었다.
독일 소기업 사업자들이 모인 레딧 게시판에서 오스트리아 고객에게 청구하는 문제를 두고 답변이 엇갈리자, 메모 대신 법령을 확인했다. 독일에서는 「UStG」 제18a조 4항에 따라 소기업(Kleinunternehmer)이 EC 판매 목록 제출 의무에서 제외된다. 제19조 1항은 역청구 인보이스에 양쪽 VAT 번호를 모두 적도록 하는 규정도 적용하지 않는다. 다만 수취인이 세금을 부담한다는 안내는 여전히 필요하다. 오스트리아에서는 판매 목록 제출이 요구된다. 같은 지침 아래에서도 인접한 두 나라의 답은 다르다.
안내 문구는 고쳤지만, 앱은 판매자 자신의 VAT 번호가 없으면 역청구 인보이스 발행을 계속 막는다. VAT 지침 제226조는 양쪽 번호를 요구하며, 독일 소기업 사업자에게 이 규칙을 그대로 적용하면 독일 법보다 엄격한 조건이 된다. 독일에 한해 제한을 풀지, 모든 이용자에게 더 엄격한 규칙을 적용할지는 아직 결정하지 않았다.
이제 테스트는 세율뿐 아니라 거래 분류도 확인한다. 국내 사업자 간 거래에서 역청구가 적용되지 않고 현지 세율이 유지되는지, 미등록 판매자의 국경 간 EU 사업자 거래에 역청구가 적용되는지, EU 밖 사업자는 검증된 VAT 번호가 있어도 역청구 대상이 아닌지 각각 테스트한다. 무료 생성기와 브라우저 미리보기에도 같은 사례를 별도로 넣었다. 로직이 세 군데에 나뉘어 있었던 점이 세 번째 오류의 원인이었기 때문이다.
규칙을 확인하는 자료도 달라졌다. 다섯 차례의 수정은 모두 국가별 자료나 실제 질문에서 출발했다. 지침은 회원국이 무엇을 할 수 있는지 설명하지만, 실제 적용은 오스트리아 경제회의소(WKO) 자료와 프랑스 행정 사이트 service-public.fr, 독일 「UStG」에서 확인해야 했다.
도구가 아직 처리하지 못하는 것은 매출 기준액이다. 다른 회원국 소비자에게 제공하는 디지털 서비스의 1만 유로 기준과 새로 도입된 국경 간 소기업 제도는 국가별 매출에 따라 달라지지만, 도구는 이를 추적하지 않는다. 기준액 아래에서는 판매자 국가 규칙을 적용하는 것이 적법하므로 기본값은 안전하다. 체크박스 옆 안내에는 도구가 매출을 계산하지 않는다고 명시했다.
Verkanto는 무료 EU VAT 인보이스 생성기를 제공한다. 이 글은 세무 조언이 아니다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요