Indie Hackers

I built a Factur-X e-invoicing API for the EU 2026 mandate — $0 revenue so far, open-sourcing the whole thing

EU 전자 송장 규정에 맞춘 Factur-X API를 만들었습니다. 매출은 아직 0달러라 전체 코드를 공개합니다

개발자는 Factur-X PDF와 CII XML 검증기, EN 16931 규칙에 맞춘 전자 송장 생성 API를 만들고 AGPL-3.0으로 공개했습니다. 출시 열흘 동안 방문자는 약 900명, 유료 고객은 0명이었습니다. 댓글에서는 구매자와 유통 경로를 개발자에서 회계사, 플러그인 업체로 넓히고 첫 유효 송장까지 걸리는 시간을 줄이라는 제안이 나왔습니다.

에디터 노트

초기 방문자 수보다 실제 연동을 검토하는 개발자 한 명이 더 유용한 신호라는 지적이 설득력 있습니다. 본문에서도 Reddit의 3,000건 넘는 요청은 가입으로 이어지지 않았고, API 키 8개에서 기록된 호출은 7건에 그쳤습니다. 반면 CRM 플러그인 개발자는 실제 출력물로 검증기를 시험하고 있습니다. 판매 대상을 회계사와 플러그인 업체로 넓히자는 의견은 이 사용 사례와 맞닿아 있습니다. 기술적 논점도 구체적입니다. 세율만 받아서는 VAT 범주에 따른 필수 조건을 처리하기 어려우며, 독일 XRechnung에는 국가별 규칙이 추가됩니다. 댓글이 제안한 범주별 테스트 자료와 규칙 ID 페이지는 생성기 검증과 사용자 유입 양쪽에 쓸 수 있습니다. 다만 프랑스 수신 의무 시점은 본문이 2026년 9월이라고 쓰지만 댓글에서는 이미 9월부터 시행됐다고 정정하며 작성자도 동의합니다. 게시물 안의 시간 표현이 서로 맞지 않으므로 이를 바탕으로 시장의 긴급성을 단정하기는 어렵습니다.

AI 요약

개발자는 프랑스의 B2B 전자 송장 의무화와 독일의 ZUGFeRD/XRechnung 도입을 앞두고 Factur-X API를 만들었습니다. 무료 검증기는 Factur-X/ZUGFeRD PDF나 CII XML을 받아 EN 16931 오류 목록과 규칙 ID, 위치를 보여줍니다. 생성 API는 판매자와 구매자, 품목 정보를 JSON으로 받아 검증을 마친 XML을 반환합니다. XML 스키마와 Schematron 규칙으로 결과를 다시 검사하며, 세금 계산도 서버에서 처리합니다.

제품과 운영 현황

무료 요금제는 월 5건, Pro는 월 500건에 9달러입니다. 결제에는 EU VAT 처리를 맡길 수 있는 Merchant of Record 서비스 LemonSqueezy를 사용합니다. Spring Boot와 Java 17, PostgreSQL을 쓰며, PDFBox로 PDF에 삽입된 XML을 추출하고 XSD와 약 200개 EN 16931 비즈니스 규칙을 검사합니다. 테스트는 86개이고, 배포는 Docker Compose와 scp로 합니다. 전체 코드는 AGPL-3.0으로 공개했습니다.

출시 열흘 뒤 수치는 고유 IP 약 900개, API 키 8개, 이메일 구독자 19명, 유료 고객 0명이었습니다. Reddit 게시물이 복구된 뒤 하루에 3,000건 넘는 요청이 들어왔지만 가입으로 이어지지 않았습니다. Google 검색 유입은 하루 2~3회 수준이었고, 실제 송장으로 검증기를 시험하는 개발자 한 명이 생겼습니다. 개발자는 XSD보다 비즈니스 규칙이 까다롭다고 설명합니다. 예를 들어 VAT 0% 품목에 기본 세금 범주 S를 넣으면 XML 구조는 올바르더라도 규칙 위반입니다. 면세나 역과세에는 별도 조건도 붙습니다.

Indie Hackers 반응

  • @Gregory Scott Henson — 규정 준수 비용을 실제로 구매하는 사람은 개발자보다 고객 40곳의 대응을 맡은 회계사나 IT 업체인 경우가 많습니다. 무료 검증기에서 오류가 나오면 생성 API로 한 번에 고칠 수 있게 하고, 회계법인과 MSP를 재판매 파트너로 삼으세요. 저는 20년 동안 그 경로로 판매했고, 재판매 파트너 하나가 개발자 가입 100명보다 낫습니다.
  • @Haseeb Shahid — 첫 유효 송장까지 걸리는 시간을 줄이는 방안을 시험해 보세요. 작은 SDK와 Postman 컬렉션, 실제 테스트 자료를 제공하면 개발자가 15분 안에 작동하는 연동을 만들기 쉬워집니다. 규정 준수 API에서는 가격표보다 첫 문서 생성 성공이 전환에 더 큰 영향을 줄 수 있습니다.
    • @chenhao5721865 — 첫 유효 송장까지 걸리는 시간이 맞는 지표입니다. 가격표가 연동 결정을 내리는 곳도 아닙니다. Postman 컬렉션과 실제 테스트 자료는 추가 비용이 적으니 만들겠습니다. 문서에 검증기에 붙여 넣은 뒤 /generate를 호출하는 15분 경로도 넣겠습니다. SDK는 두 번 요청받을 때까지 미루겠습니다.
  • @ska1296 — 프랑스에서는 송장 수신 의무가 9월부터 시작됐으니 구매자에게 문제는 이미 현재형입니다. 페이지는 아직 규정이 다가온다는 식으로 설명합니다. 받은 송장이 규정을 따르는지 확인하라는 문구가 준비하라는 문구보다 낫습니다.
    • @chenhao5721865 — 맞는 지적입니다. 수신 의무는 9월부터 시작됐는데 페이지는 미래를 말하고 있었습니다. 수신을 먼저 강조하도록 페이지를 고치겠습니다.
  • @PermitCore — WooCommerce, Odoo, Shopware 같은 소규모 송장 플러그인 유지관리자가 첫 고객으로 더 나을 수 있습니다. 한 번 연동하면 여러 사용자에게 기능을 제공할 수 있습니다. 현재 API 키 8개 중 실제 운영에 가까운 송장을 보낸 곳이 있나요?
    • @chenhao5721865 — 대부분 테스트 호출입니다. 이번 달 API 호출은 8개 키에서 7건뿐입니다. 가장 유망한 신호는 Reddit에서 온 CRM 플러그인 개발자가 실제 출력물로 검증기를 시험한다는 점입니다. 플러그인 유지관리자에게 연락하기 시작하겠습니다.
  • @fvazquez8 — VAT 0%는 더 큰 문제의 일부일 수 있습니다. 세금 범주에 따라 추가 필수 항목이 달라집니다. Z는 추가 정보가 필요 없지만 E는 면세 사유가 필요하고, AE는 판매자와 구매자의 VAT 식별번호가 필요합니다. JSON에서 범주를 필수로 받고 0%인데 범주가 없으면 거부하는 편이 낫습니다. 독일 XRechnung에는 EN 16931 외에 국가 규칙도 있으며, 공공기관 구매자 참조값인 Leitweg-ID가 자주 빠집니다. S, Z, E, AE, K, G 범주별 성공·실패 자료를 만들면 문서와 회귀 테스트로 함께 쓸 수 있습니다.
    • @chenhao5721865 — 범주가 뒤따르는 조건을 결정한다는 점이 맞습니다. 현재는 잘못된 범주의 0% 요청이 자체 검증 단계에서야 실패하고 오류도 불명확합니다. 범주를 필수로 받고 규칙 ID와 수정 필드를 담은 400 오류를 반환하겠습니다. 범주별 테스트 자료와 독일 페이지의 BR-DE-15, Leitweg-ID도 기록했습니다.
  • @Resultris — 검증기가 오류 규칙 ID를 보여주면 개발자는 그 문자열을 Google에서 검색합니다. 흔한 규칙마다 ID를 제목에 넣은 페이지를 만들고, 규칙의 뜻과 흔한 원인, 수정된 XML 예시를 설명하세요. 로그에서 자주 실패하는 20개부터 시작하면 됩니다. 영어 페이지를 먼저 만들고 독일 페이지도 준비하세요.
    • @chenhao5721865 — 규칙 ID가 검색어가 되는데 현재 사이트에는 그 검색어에 맞는 페이지가 없습니다. 로그에서 자주 실패하는 규칙부터 설명과 수정 XML 예시를 만들겠습니다. 영어를 먼저 하고 ZUGFeRD/XRechnung 독일어 페이지도 준비하겠습니다.
  • @aftondesk — 프랑스어 홈페이지는 이해하기 쉽지만 검증기에서 뉴스레터 가입만 제안합니다. 생성 API는 준비 중이라고 쓰여 있지만 게시물에는 출시와 요금제가 나옵니다. 검증 결과 아래에 API로 이어지는 다음 단계를 보여주세요.
    • @chenhao5721865 — 출시 전 문구가 남아 있던 부분이라 이미 고쳤습니다. API가 출시됐다고 표시하고 검증 결과에서 API 문서와 가격으로 연결합니다.
  • @Luca — 저도 EU B2B 규정 API 네 개를 열흘 전에 출시했지만 구독자 10명, 호출 43건, 매출 0달러입니다. 마켓플레이스에서 버전 변경 뒤 엔드포인트가 보이지 않는 문제를 2주 뒤에 발견했고, 고친 뒤 자연 유입이 생겼습니다. 회계 소프트웨어에는 송장 10건을 한 번에 검사하는 일괄 검증 기능이 유용할 수 있습니다.
    • @chenhao5721865 — 송장 10건을 한 번에 보내고 파일별 통과 여부와 규칙 ID를 받는 일괄 검증 기능을 로드맵에 추가하겠습니다.

원문: Indie Hackers / 번역·요약: Trawling