농어촌특별세는 모든 개별소비세에 붙지 않습니다 — 제3조제3호 원문 확인

딸려 오는 세금이 아니라, 자기 납세의무자 조문을 가진 세금입니다

수입 세액을 설명하는 글에서 "개별소비세가 붙으면 교육세 30%와 농어촌특별세 10%가 함께 붙는다"는 서술을 자주 봅니다. 두 세목을 한 묶음으로 적어 두면 코드로 옮길 때도 한 묶음이 됩니다. 교육세는 그렇게 봐도 대체로 맞습니다. 농어촌특별세는 아닙니다.

농어촌특별세법 제3조는 납세의무자를 제1호부터 제6호까지 열거하는데, 그중 제2호는 삭제<2010.12.30> 라 실제로 살아 있는 것은 5개이고, 개별소비세와 연결되는 것은 제3호 하나뿐입니다. 원문은 이렇습니다.

  1. 「개별소비세법」 제1조제2항의 물품 중 같은 항 **제1호가목ㆍ나목, 같은 항 제2호나목1)ㆍ2)**의 물품 또는 같은 조 제3항제4호의 입장행위에 대한 개별소비세 납세의무자

「개별소비세법」 제1조제2항의 물품 전부가 아닙니다. 그 안에서 호와 목을 직접 지목합니다. 지목되지 않은 물품의 개별소비세 납세의무자는 농어촌특별세 납세의무자가 아니고, 납세의무자가 아니면 세율표에 다다르지 못합니다. 세율은 제5조제1항 표 제4호에 있고, 나목(그 밖의 경우)이 개별소비세액의 100분의 10입니다. 흔히 인용되는 "농특세 10%"가 이 나목이며, 그 10%가 적용되려면 제3조제3호를 먼저 통과해야 합니다.

지목된 호·목이 무엇인지 개별소비세법에서 확인했습니다

제3조제3호가 가리키는 자리를 「개별소비세법」 제1조제2항에서 하나씩 열어 보면 이렇습니다.

개소세법 제1조제2항 물품 농어촌특별세
제1호가목 투전기, 오락용 사행기구, 그 밖의 오락용품 대상
제1호나목 수렵용 총포류 대상
제2호가목1) 보석·진주·별갑·산호·호박·상아와 이를 사용한 제품 비대상
제2호가목2) 귀금속 제품 비대상
제2호가목4) 고급 시계 비대상
제2호가목5) 고급 융단 비대상
제2호가목6) 고급 가방 비대상
제2호나목1) 고급 모피와 그 제품(토끼 모피·생모피 제외) 대상
제2호나목2) 고급 가구 대상
제3호 승용자동차·캠핑용자동차·이륜자동차·전기승용자동차 비대상
제4호 휘발유·경유·등유·중유·석유가스·천연가스·유연탄 등 비대상
제6호 담배 비대상

물품 쪽 대상은 오락용품 · 수렵용 총포류 · 고급 모피 · 고급 가구 네 갈래입니다. 구매대행에서 실제로 마주치는 품목 대부분은 아래쪽 비대상 칸에 있습니다.

고급 가방 · 고급 시계 · 보석 · 귀금속 · 고급 융단에는 농어촌특별세가 붙지 않습니다.

조문 배열에 틀리기 쉬운 자리가 하나 있습니다

여기서부터는 확인된 사실과 저희 추측을 갈라 적겠습니다. 조문 배열은 확인된 사실입니다. 그것이 통념이 생긴 원인이라는 설명은 저희 가설이고, 근거로 댈 출처가 없습니다.

시행령 [별표 1]은 과세물품의 세목을 정하면서 항목을 다시 묶습니다. 그 제4호 칸은 "법 제1조제2항제2호가목4)부터 6)까지 및 나목에 해당하는 물품"이고, 그 안에서 목 부호를 새로 매깁니다 — 나. 고급 시계 / 다. 고급 모피 / 라. 고급 융단 / 마. 고급 가방 / 바. 고급 가구.

농어촌특별세법이 인용하는 부호는 이쪽이 아니라 법 제1조제2항의 부호입니다. 별표 1의 한 칸 안에 대상(고급 모피·고급 가구)과 비대상(고급 시계·고급 융단·고급 가방)이 섞여 있고, 두 문서의 목 부호 체계가 서로 다릅니다. 별표 1의 배열을 기준으로 "이 칸은 전부 같은 취급"이라고 읽으면 그 순간 틀립니다.

여기서 저희가 만든 규칙은 이것입니다. 다른 법률이 인용한 호·목은 인용된 쪽 법률의 원문에서 연다. 세목표에서 같은 이름을 찾아 대응시키면 부호 체계가 다른 지점에서 조용히 어긋납니다.

300만원 핸드백으로 끝까지 계산해 봅니다

숫자가 어디서 갈리는지 보이도록 정식 수입신고 경로로 한 건을 세워 봅니다. 가죽 핸드백 1개, 관세의 과세가격 300만원, HS 4202.21의 기본관세율 8% (관세법 [별표] 관세율표, 시행 2023-01-01)를 전제로 합니다.

품목 판정부터 적어 두겠습니다. 핸드백이 "고급 가방"에 해당한다는 것은 저희 판단이 아니라 시행령 [별표 1] 제4호마목이 그 세목을 **"핸드백, 서류가방, 배낭, 여행가방, 지갑 및 이와 유사한 제품으로서 물품을 운반 또는 보관하기 위한 용도로 제조된 것"**으로 정하기 때문입니다(악기가방처럼 특정 물품 전용으로 제조된 것은 같은 목이 제외합니다).

그리고 여기서 말하는 300만원은 관세법 제30조제1항의 과세가격입니다 — 실제 지급가격에 수입항까지의 운임·보험료 등 같은 항 각 호의 금액을 더해 조정한 거래가격이고, 흔히 CIF로 줄여 부르지만 조문상 같은 말은 아닙니다.

관세의 과세가격                    3,000,000   ← 관세법 제30조제1항
관세 (8%)                            240,000
─────────────────────────────────────────────
과세가격 + 관세                    3,240,000   ← 개소세법 제8조제1항제3호가 정하는 "가격"
기준가격 공제                     -2,000,000   ← 시행령 제4조제2호 (1개당 200만원)
─────────────────────────────────────────────
개별소비세 과세표준                1,240,000   ← 법 제8조제1항 단서 (기준가격 초과분)
개별소비세 (20%)                     248,000   ← 법 제1조제2항제2호가목6)
교육세 (개소세액의 30%)               74,400   ← 교육세법 제5조제1항 표 제2호
농어촌특별세                               0   ← 제3조제3호 미해당

가운데 두 줄의 이름을 굳이 갈라 둔 이유가 있습니다. 3,240,000은 과세표준이 아닙니다. 개소세법 제8조제1항 제3호는 보세구역 반출 물품의 "가격"을 과세가격 + 관세로 정할 뿐이고, 같은 항 단서가 "제1조제2항제2호의 과세물품은 다음 제1호부터 제4호까지의 가격 중 기준가격을 초과하는 부분의 가격을 과세표준으로 한다"고 다시 자릅니다. 고급 가방은 제1조제2항제2호 물품이므로 과세표준은 1,240,000입니다. 같은 금액을 제1조제2항제2호는 "과세가격"이라고 부릅니다 — 관세법의 과세가격과 이름만 같고 다른 값입니다.

여기에 농특세를 관행대로 얹으면 248,000 × 10% = 24,800원이 더 붙습니다. 계산기 화면에 "농어촌특별세 24,800원"이라는 줄이 하나 생기는 것입니다.

자리를 두 개만 더 짚어 두겠습니다. 기준가격 공제는 관세의 과세가격이 아니라 (과세가격 + 관세)에서 합니다 — 300만원이 아니라 324만원에서 200만원을 뺍니다. 그리고 교육세·농특세의 과세표준은 물품가격이 아니라 개별소비세액입니다. 어느 하나라도 자리가 어긋나면 아래 두 줄이 전부 어긋납니다.

교육세는 정말 전부 적용되는지 따로 확인했습니다

농특세가 한정된다면 옆에 있는 교육세도 한정돼 있지 않을까 — 그래서 교육세법 제3조제2호도 원문으로 열었습니다.

  1. 「개별소비세법」에 따른 개별소비세(「개별소비세법」 제1조제2항제4호가목ㆍ나목ㆍ마목ㆍ 사목ㆍ자목 및 같은 항 제6호의 물품에 대한 것은 제외한다. 이하 같다)의 납세의무자

구조가 반대입니다. 농특세는 포함할 것을 열거하고, 교육세는 제외할 것을 열거합니다. 그리고 제외 목록은 제4호 전부가 아니라 그중 가목·나목·마목·사목·자목(휘발유·경유·프로판· 천연가스·유연탄)과 제6호(담배)뿐입니다. 같은 제4호 안의 다목·라목·바목·아목은 제외되지 않고, 아래에서 보듯 15% 세율로 따로 갈립니다. 제1호와 제2호의 물품은 한 항목도 빠지지 않습니다.

세율 쪽도 마찬가지입니다. 교육세법 제5조제1항 표 제2호는 개별소비세액의 100분의 30이고, 15%로 낮추는 단서는 제1조제2항제4호다목·라목·바목·아목(등유·중유·부탄·부산물 유류)에만 걸립니다. 가방·시계·보석·귀금속·융단·모피·가구·오락용품·총포류는 전부 30%입니다.

그러니까 "교육세와 농특세는 세트"라는 통념은 절반이 맞습니다. 교육세 쪽 절반이 맞고, 농특세 쪽 절반이 틀립니다.

조문에는 물품 말고 하나가 더 있습니다

제3조제3호를 물품 네 갈래로만 요약하면 뒷부분이 잘립니다. 같은 호는 개별소비세법 제1조제3항제4호의 입장행위, 즉 골프장 입장도 함께 지목하고, 이 경우의 농특세율은 10%가 아니라 **30%**입니다(농특세법 제5조제1항 표 제4호가목). 수입 통관 계산에는 등장하지 않지만, 요약이 사실을 빠뜨린 채 데이터에 들어가면 그 데이터를 재사용하는 쪽에서 문제가 됩니다. 그리고 저희 데이터셋이 지금 그 상태입니다.

조문 원문은 입장행위를 포함해 통째로 인용해 두었지만, 코드가 실제로 읽는 화이트리스트 (appliesToKeys)에는 물품 4개 키만 있고 입장행위 항목이 없습니다. 세율도 그 목록 전체에 10% 하나만 걸려 있어서, 30%는 인용문 문자열 안에만 존재하고 기계가 읽는 값으로는 어디에도 없습니다. 과세물품 목록 14개 키에도 골프장은 없습니다.

수입 통관 계산기는 입장행위를 다루지 않으므로 지금 화면에 나가는 숫자가 틀리지는 않습니다. 다만 이 데이터만 보고 "농특세 대상 = 이 목록"이라고 읽으면 골프장 입장이 빠지고 30% 세율도 보이지 않습니다. 바로 위 문단에서 지적한 그 결함이라, 아직 고치지 못한 항목으로 적어 둡니다.

농어촌특별세법 제3조의 나머지 호(감면세액·증권거래세·취득세·레저세·종합부동산세)는 개별소비세와 무관한 별개 경로입니다. 통관 계산에서 참조할 것은 제3호 하나뿐입니다.

설계 결론 — 조건을 없애는 게 아니라, 조건이 묻는 것을 바꿉니다

가장 자연스러운 구현은 이것입니다.

if (exciseTax > 0) {
  ruralSpecialTax = exciseTax * 0.1;
}

이 코드는 "개별소비세가 있으면 농특세도 있다"를 가정하고 있고, 그 가정은 법에 없습니다. 품목이 늘어날 때마다 조용히 틀린 값을 하나씩 더 만들어 냅니다.

저희가 택한 형태는 품목 식별자 화이트리스트입니다. 농특세 대상 품목의 키 목록을 데이터에 두고, 계산 함수는 appliesToKeys.includes(품목키) 로만 판정합니다. 목록에 없으면 세액은 0이고, 결과 객체에는 ruralSpecialTaxApplies: false 와 근거 조문 문자열이 함께 실려 나갑니다 — 왜 0인지가 결과에 남습니다.

정직하게 적자면 이 구조도 조건 분기 자체를 없애지는 못했습니다. 세율은 품목 레코드가 아니라 모듈 상수 하나(RURAL_SPECIAL_TAX_RATE)이고, 계산은 삼항 연산자입니다. 비대상 품목에도 세율 필드는 존재하며 값이 0으로 나갑니다. 겉모양만 보면 위의 if (exciseTax > 0) 과 같은 형태입니다. 다른 것은 분기의 모양이 아니라 분기가 무엇을 묻느냐입니다 — "개별소비세가 있는가"가 아니라 "이 품목 키가 법이 열거한 목록에 있는가"를 묻습니다.

모양이 같다면 나중에 누군가 "일반화"하면서 조건을 지울 수 있습니다. 그래서 그 자리는 코드가 아니라 테스트로 묶어 두었습니다. 다만 그 테스트가 각각 무엇을 강제하는지는 갈라 적어야 합니다. 값을 실제로 지키는 것과 형태만 보는 것이 섞여 있습니다.

값을 지키는 것은 동작 테스트 쪽입니다. 하나는 비대상 5개 키(luxury-bag·luxury-watch· gems-and-pearls·precious-metal-products·luxury-carpet)를 테스트 파일에 이름으로 적어 두고, 판정이 false 인 것과 실제 계산 결과의 ruralSpecialTaxKrw0 인 것을 함께 확인합니다. 누군가 데이터 목록에 고급 가방을 끼워 넣으면 여기서 걸립니다. 다른 하나는 데이터의 appliesToKeys 를 그대로 돌며 각 키가 대상으로 판정되는지 보는데, 목록을 늘리면 검사 대상도 같이 늘어나므로 그 검사만으로는 끼워 넣기를 잡지 못합니다. 잡는 것은 세 군데입니다 — 비대상 5개 키를 이름으로 박아 둔 이 동작 테스트, 데이터셋 무결성 검사(assertExcise)가 appliesToKeys4개 키 집합과 동일성 비교하는 것, 그리고 수수료 네거티브 컨트롤이 luxury-bag 을 명시적으로 배제하는 것입니다. 가운데 것이 가장 강합니다 — 5개 목록은 그 5개만 잡지만, 동일성 비교는 임의의 키를 잡습니다. 키가 null 이면 붙이지 않는 것도 따로 봅니다.

나머지 세 개는 소스 스캔이고, 이쪽은 값이 아니라 형태만 봅니다. 못 잡는 것까지 적어 둡니다.

  • ruralSpecialTaxKrw 에 값을 대입하는 파일이 하나 이상 있어야 하고, 그 파일에 ruralSpecialTaxApplies 라는 이름이 등장해야 합니다. 원문을 그대로 보기 때문에 주석에 이름만 남겨도 통과합니다.
  • ruralSpecialTaxApplies 함수 본문에 appliesToKeys등장해야 합니다. 배타성 검사가 아니라 존재 검사입니다 — 그 함수가 appliesToKeys 를 보면서 || key === 'automobiles' 를 덧붙여도 이 검사는 통과합니다. 게다가 지금 그 함수는 목록을 인자로 넘길 뿐이고 실제 비교는 다른 함수가 하는데, 스캔은 그 다른 함수를 열지 않습니다.
  • 화이트리스트 키가 하나의 배열 리터럴 안에 2개 이상 나열되면 실패합니다. 판정용 키 목록을 코드에 박는 것을 막습니다. 품목 정의마다 키가 하나씩 등장하는 것은 정상이라 걸리지 않습니다.

세 번째 검사는 2026-08-09까지 사문이었습니다. 문자열 리터럴을 비운 소스를 보고 있었는데 품목 키는 하이픈이 들어가 문자열 밖에 존재할 수 없으므로, 검사 대상 텍스트에 키가 아예 남아 있지 않았습니다. 어떤 하드코딩도 잡히지 않았다는 뜻입니다. 문자열을 남기도록 고치고, 위반 코드를 넣었을 때 실제로 걸리는 것과 정상 정의가 오탐되지 않는 것을 확인했습니다. 검사가 있다는 것과 검사가 동작한다는 것은 다른 사실입니다.

그러니 정확히 적자면 이렇습니다. 소스 스캔은 화이트리스트라는 구조가 사라지는 것을 막고, 값이 틀리는 것을 막는 것은 비대상 키를 이름으로 적어 둔 동작 테스트입니다. 지울 수는 있지만 조용히 지울 수는 없습니다 — 다만 조용하지 않게 만드는 자리가 어디인지는 알고 있어야 합니다.

같은 이유로 교육세는 제외 목록으로 두어야 합니다. 법이 포함을 열거하면 화이트리스트로, 제외를 열거하면 블랙리스트로 옮기는 것이 원칙입니다. 두 세목을 같은 모양으로 만들면 어느 한쪽은 원문과 다른 구조가 됩니다.

다만 교육세 쪽은 아직 그렇게 되어 있지 않습니다. 지금 코드는 개별소비세액에 30%를 무조건 곱하고, 제외 키 목록이라는 자료구조는 코드에도 데이터에도 없습니다. 이 계산기가 다루는 품목이 제1조제2항제1호·제2호뿐이고 그 범위에는 제외 대상도 15% 단서도 걸리지 않아 결과는 맞지만, 맞는 이유가 구조가 아니라 범위입니다. 유류나 담배가 품목 목록에 들어오는 순간 틀립니다. 블랙리스트는 그때가 아니라 지금 만들어 두어야 할 것으로 남아 있습니다.

24,800원이라는 금액은 이 글의 요지가 아닙니다

300만원짜리 물건에서 24,800원입니다. 전체 세액에 견주면 작고, 그래서 이 글은 절세 이야기가 아닙니다. 문제는 금액이 아니라 계산기가 존재하지 않는 세금을 한 줄 표시한다는 사실입니다. 사용자는 그 줄을 보고 "가방에는 농특세가 붙는구나"를 배웁니다. 숫자는 잊혀도 그 문장은 남고, 다음에 다른 품목을 계산할 때 그 문장이 기준이 됩니다. 틀린 값 하나보다 틀린 규칙 하나가 오래갑니다.

금액이 작다는 것은 오히려 이 오류가 오래 살아남는 조건입니다. 실제 고지서와 대조할 때 관세나 부가세의 차이는 눈에 띄지만, 24,800원은 반올림이나 수수료로 넘겨짚기 쉽습니다. 검증에서 걸러지지 않는 오류가 가장 오래 남습니다.

아직 열어 두는 부분

  • 부가가치세 과세표준 산정 방법은 아직 원문으로 확보하지 않았습니다. 수입물품의 내국세를 세관장이 부과·징수한다는 것은 관세법 제4조제1항에 있고 그 목록에 농어촌특별세가 들어 있습니다. 다만 그 세액들이 부가가치세 과세표준에 어떻게 반영되는지는 부가가치세법이 정하는 사항이고, 저희는 그 원문을 아직 열지 않았습니다. 그래서 위 예시의 오차를 "24,800원"으로 확정해서 말하지 않습니다. 실제 오차는 그보다 클 수 있습니다.
  • 간이세율 경로에서는 이 문제가 발생하지 않습니다. 개별소비세법 제2조제2호가 "「관세법」에 따라 간이세율을 적용하는 물품"을 비과세로 정하고 있어, 개별소비세가 0이면 교육세도 농특세도 0입니다. 이 글의 계산은 정식 수입신고 경로의 이야기입니다.
  • 기준가격 이하 구간의 처리는 미확정입니다. (과세가격 + 관세)가 200만원 이하인 가방은 과세물품이지만 과세표준이 0이 되어 개별소비세액도 0이 됩니다. 이때 간이세율 [별표 2] 제1호의 "개별소비세가 과세되는 물품"에 해당하는지를 원문이 답하지 않아, 관세청 확인 항목으로 남겨 두었습니다.
  • 저희 계산 데이터에 남은 결함 2건은 아직 고치지 않았습니다. 농특세 화이트리스트에 입장행위 항목과 30% 세율이 없고, 교육세 제외 목록 자료구조가 없습니다. 둘 다 지금 계산 결과를 틀리게 만들지는 않지만, 데이터를 그대로 읽는 쪽에는 틀린 규칙으로 보입니다.
  • 농어촌특별세법·교육세법의 시행일과 법률번호를 원문으로 확인하지 못했습니다. 저희가 확보한 것은 두 법의 조문 발췌뿐이고, 공포번호·시행일자·부칙이 그 안에 없습니다. 개별소비세법과 그 시행령은 부칙까지 받아 두어 시행일을 근거로 댈 수 있지만(각각 2026-04-24, 2026-07-30), 이 두 법은 그렇지 않습니다. 그래서 이 글의 출처 목록에서 두 법의 시행일·법률번호를 뺐습니다. 인용한 조문 문언 자체는 원문 발췌 그대로입니다.
  • 출처 앵커는 2026-08-09 에 분리했습니다. 종전에는 excise-surtax 하나가 시행일이 다른 두 법을 함께 가리키면서 값은 교육세법 것만 들고 있었습니다. /sources 의 시행일은 한 칸이라 두 법을 한 행에 담으면 한쪽은 반드시 틀립니다. 지금은 농어촌특별세법이 rural-special-tax 로 갈라졌고, 시행일을 원문에서 확인하지 못했으므로 신뢰도를 verified 가 아니라 public-doc 으로 두었습니다. 남은 것은 교육세법 한 건입니다 — 그 레코드는 여전히 2026-01-01verified 로 발행하는데, 같은 이유로 그 날짜도 발췌본에서 확인되지 않습니다.
  • 제3조제3호의 최종 개정일은 특정할 수 없습니다. 제3조 머리의 개정 표기는 마지막이 2021-12-21이지만, 이 표기는 조(條) 단위여서 제3호가 그때 바뀌었는지 다른 호가 바뀌었는지를 원문이 구분해 주지 않습니다. (개별소비세법 제1조제2항도 같은 이유로 호 단위 개정일을 특정하지 않았습니다.) 재확인 주기는 180일입니다. 인용 대상인 개별소비세법 제1조제2항이 바뀌면 조문을 고치지 않아도 범위가 움직입니다.
  • 별표 1의 재부호화가 "농특세는 전부 붙는다"는 통념의 원인이라는 설명은 저희 가설입니다. 두 문서의 목 부호 체계가 다르다는 것과 한 칸 안에 대상·비대상이 섞여 있다는 것은 원문에서 확인했지만, 그 배열 때문에 사람들이 틀리게 읽는다는 인과는 확인한 바 없습니다.

{{AUTHOR_NAME}} · 셀러 도구를 만드는 개발자 · 스마트스토어 입점 셀러 근거: 법령 원문 직접 확인 · 법령·자료 확인 시점 2026-08-09. 발행일과 최종 검토일은 글 상단 표기를 따릅니다.

근거

  • 농어촌특별세법 제3조(납세의무자)·제5조(과세표준과 세율) — 조문 발췌 (공포번호·시행일 미확인) — 최종 확인 (표에서 보기)
  • 개별소비세법 제1조(과세대상과 세율)·제2조(비과세)·제8조(과세표준) (법률 제21216호) — 최종 확인 (표에서 보기)
  • 개별소비세법 시행령 제4조(기준가격) (대통령령 제36545호) — 최종 확인 (표에서 보기)
  • 개별소비세법 시행령 [별표 1] 과세물품(제1조 관련) — 최종 확인 (표에서 보기)
  • 교육세법 제3조(납세의무자)·제5조(과세표준과 세율) — 조문 발췌 (공포번호·시행일 미확인) — 최종 확인 (표에서 보기)
  • 관세법 시행령 [별표 2] 간이세율 (대통령령 제33275호 개정분) — 최종 확인 (표에서 보기)
  • 관세법 제4조(내국세등의 부과·징수)·제30조(과세가격 결정의 원칙) (법률 제21208호) — 최종 확인
  • 관세법 [별표] 관세율표 (법률 제19186호) — 최종 확인 (표에서 보기)