똑순이의 똑똑한 이야기
플랫폼/마켓플레이스 개발자 필독! 전자세금계산서 '역발행' API 연동 A to Z (바로빌 가이드) 본문

안녕하세요!
오늘은 플랫폼 비즈니스나 프랜차이즈 관리 시스템을 개발하는 분들이라면
반드시 마주치게 되는 난제, '전자세금계산서 역발행' 구현 방법에 대해 다뤄보겠습니다.
공급자가 직접 발행하는 '정발행'은 익숙하지만,
**매입자(플랫폼)가 먼저 정보를 작성하고 공급자가 확인 후 서명하는 '역발행'**은 프로세스가 조금 다릅니다.
이 글에서는 바로빌 API를 활용하여 역발행 프로세스를 어떻게 시스템에 녹여낼 수 있는지,
개발자 관점에서 핵심만 짚어드립니다.
1. 역발행(Reverse Issuance)이란? (개발자가 알아야 할 차이점)
API 연동 전, 로직 설계를 위해 정발행과 역발행의 데이터 흐름 차이를 이해해야 합니다. 아래 이미지를 통해 두 방식의 차이를 직관적으로 확인해보세요.

| 구분 | 정발행 | 역발행(플랫폼/위수탁) |
| 작성주체 | 공급자(매출자) | 공급받는 자 (매입자/플랫폼) |
| 프로세스 | 작성 => 공동인증서 서명 => 국세청 전송 | 작성(임시저장) => 공급자에게 요청 => 공급자 승인/서명 => 국세청 전송 |
| 주요활동 | 일반 기업 회계 프로그램 | 오픈마켓, 배달앱, 프랜차이즈 본사 |
| 개발 포인트 | 공급자 인증서 연동 필수 | 공급자에게 '승인요청' 알림 발송 로직 중요 |
2. 바로빌 역발행 API 핵심 흐름 (Flow Chart)
바로빌 개발자 센터 가이드에 따르면, 역발행은 크게 4단계로 나뉩니다. 개발하실 때 이 순서대로 함수를 호출하고 상태를 관리해야 합니다. 아래의 상세 흐름도를 참고하세요.

주요 단계 및 API:
- [매입자] 세금계산서 내용 작성 및 등록 (RegistIssue)
- [바로빌] 공급자에게 서명 요청 (이메일/문자 자동 발송)
- [상태 확인] 주기적인 상태 코드 확인 (GetTaxInvoiceState)
- [공급자] 내용 확인 후 공동인증서 서명 (승인)
- [바로빌] 국세청 전송 및 완료
3. 실제 구현 가이드 (Code Logic)
바로빌 API는 SOAP/JSON 방식을 모두 지원합니다. 여기서는 로직 위주로 설명해 드립니다. 상세한 파라미터는 바로빌 개발자센터 가이드를 참고하세요.
Step 1. 역발행 세금계산서 등록 (RegistIssue)
가장 중요한 단계입니다. 매입자(우리 시스템)가 계산서의 내용을 채워서 바로빌로 보냅니다. 이때 IssueDirection (발행방향) 설정이 핵심입니다.
- 주요 파라미터:
- InvoiceType: 1 (세금계산서) / 2 (계산서)
- TaxType: 1 (과세) / 2 (영세)
- IssueDirection: 2 (역발행) 👈 가장 중요!
- InvoicerCorpNum: 공급자 사업자번호
- InvoiceeCorpNum: 공급받는 자(우리) 사업자번호
// 요청 예시 (JSON 포맷 가정)
{
"CERTKEY": "발급받은_인증키",
"CorpNum": "매입자_사업자번호", // 역발행이므로 작성 주체인 매입자 번호
"TaxInvoice": {
"IssueDirection": 2, // 1: 정발행, 2: 역발행
"TaxType": 1,
"ChargeTotalAmount": "110000",
"InvoicerParty": { ... }, // 공급자 정보 (상대방)
"InvoiceeParty": { ... } // 공급받는자 정보 (나)
}
}
Step 2. 공급자에게 확인 요청 (상태 관리)
RegistIssue를 호출하면 바로빌 시스템에 '작성 완료(임시 저장)' 상태로 등록됩니다. 이때 바로빌은 설정된 공급자의 이메일/문자로 **"세금계산서가 도착했으니 서명해주세요"**라는 알림을 보냅니다.
개발자는 주기적으로 상태를 체크하거나, Webhook(지원 시)을 통해 상태 변경을 감지해야 합니다. (위 흐름도 참조)
- API 함수: GetTaxInvoiceState (상태 조회)
- 주요 상태 코드:
- 2010: 문서 저장 됨 (공급자 서명 대기 중)
- 3000: 발행 완료 (공급자가 서명함)
- 4000: 발행 거부 (공급자가 내용이 틀리다고 거절함)
4. 자주 묻는 질문 (Developer FAQ)
Q. 역발행 시 수수료는 누가 내나요? A. API를 연동하여 '작성'을 수행한 주체, 즉 **매입자(플랫폼/시스템 운영사)**가 포인트를 차감받게 됩니다. 공급자는 무료로 서명만 하면 됩니다.
5. 마무리 및 연동 팁
역발행 시스템은 플랫폼 비즈니스의 정산 자동화에 있어 화룡점정입니다. 공급자에게 일일이 "계산서 끊어주세요"라고 전화할 필요 없이, 정산 데이터에 맞춰 우리가 미리 써서 보내주고 **"확인만 해주세요"**라고 하면 되기 때문이죠.
지금 바로빌 개발자센터에서 테스트베드를 신청하고 연동을 시작해보세요.
🔗 참고 링크: