# 바로빌 API 연동 가이드 ## ⚠️ 중요: 바로빌은 SOAP 웹서비스를 사용합니다 바로빌 API는 REST API가 아닌 **SOAP 웹서비스**를 사용합니다. - 테스트 환경: `https://testws.baroservice.com/TI.asmx?WSDL` - 운영 환경: `https://ws.baroservice.com/TI.asmx?WSDL` ## API 키 설정 ### 1. 필수 파일 생성 `apikey` 폴더에 다음 파일들을 생성하세요: #### 필수 파일 - `barobill_cert_key.txt`: CERTKEY (인증서 키) - 바로빌 개발자센터에서 인증서 등록 후 발급받은 CERTKEY - 세금계산서 발행에 필수 - `barobill_corp_num.txt`: 사업자번호 - 세금계산서를 발행할 회사의 사업자번호 - 하이픈(-) 없이 숫자만 입력 - 예: `1234567890` #### 선택 파일 - `barobill_test_mode.txt`: 테스트 모드 사용 시 "test" 또는 "true" 입력 - 테스트 환경: `https://testws.baroservice.com/TI.asmx?WSDL` - 운영 환경: `https://ws.baroservice.com/TI.asmx?WSDL` ### 2. CERTKEY 발급 방법 1. [바로빌 개발자센터](https://dev.barobill.co.kr) 접속 2. 회원가입 및 로그인 3. 개발자센터 메뉴에서 "인증서 관리" 또는 "인증서 등록" 메뉴 찾기 4. 공동인증서(.pfx 또는 .p12 파일) 또는 금융인증서 업로드 5. 인증서 비밀번호 입력 및 등록 6. 등록 완료 후 발급받은 **CERTKEY** 확인 - 예: "CERT-2024-ABC123-XYZ789" 또는 숫자/문자 조합의 고유 키 7. `apikey/barobill_cert_key.txt` 파일에 CERTKEY 저장 ### 3. 사업자번호 설정 1. 세금계산서를 발행할 회사의 사업자번호 확인 2. 하이픈(-) 없이 숫자만 입력 - 예: `123-45-67890` → `1234567890` 3. `apikey/barobill_corp_num.txt` 파일에 저장 ### 4. 테스트 모드 설정 테스트 환경을 사용하려면: 1. `apikey/barobill_test_mode.txt` 파일 생성 2. 파일 내용에 `test` 또는 `true` 입력 3. 저장 ## API 엔드포인트 ### 세금계산서 발행 (저장 + 발급) - **SOAP 메서드**: `RegistAndIssueTaxInvoice` - **파일**: `issue.php` - **문서**: `etax/docs/barobill-api-doc/TAXINVOICE/RegistAndIssueTaxInvoice.php` ### 세금계산서 조회 - **SOAP 메서드**: `GetTaxInvoice` - **파일**: `invoices.php` - **문서**: `etax/docs/barobill-api-doc/TAXINVOICE/GetTaxInvoice.php` ### 세금계산서 상태 조회 - **SOAP 메서드**: `GetTaxInvoiceStateEX` - **문서**: `etax/docs/barobill-api-doc/TAXINVOICE/GetTaxInvoiceStateEX.php` ### 국세청 전송 - **SOAP 메서드**: `SendToNTS` - **파일**: `status.php` - **문서**: `etax/docs/barobill-api-doc/TAXINVOICE/SendToNTS.php` ## SOAP API 사용 예제 ### 세금계산서 발행 ```php require_once(__DIR__ . '/barobill_config.php'); $invoiceData = [ 'issueKey' => 'MGT20241201123456', // 관리번호 (MgtKey) 'supplierBizno' => '1234567890', 'supplierName' => '공급자 회사명', 'recipientBizno' => '0987654321', 'recipientName' => '수취인 회사명', 'supplyDate' => '2024-12-01', 'items' => [ [ 'name' => '품목명', 'spec' => '규격', 'qty' => '1', 'unitPrice' => 10000, 'supplyAmt' => 10000, 'vat' => 1000 ] ], 'memo' => '비고' ]; $result = issueTaxInvoice($invoiceData); ``` ### 국세청 전송 ```php require_once(__DIR__ . '/barobill_config.php'); $mgtKey = 'MGT20241201123456'; // 관리번호 $result = sendToNTS($mgtKey); ``` ## 참고 문서 - [바로빌 개발자센터](https://dev.barobill.co.kr) - [바로빌 세금계산서 API 문서](https://dev.barobill.co.kr/docs/references/%EC%84%B8%EA%B8%88%EA%B3%84%EC%82%B0%EC%84%9C-API) - 로컬 문서: `etax/docs/barobill-api-doc/` 폴더 ## 주의사항 1. **CERTKEY와 사업자번호는 절대 공개 저장소에 커밋하지 마세요** 2. `.gitignore`에 `apikey/*.txt` (예제 파일 제외) 추가 권장 3. 테스트 환경과 운영 환경의 CERTKEY를 분리하여 관리하세요 4. SOAP 클라이언트는 PHP의 `SoapClient` 클래스를 사용합니다 5. PHP 7.3 이상에서 `SoapClient` 확장이 활성화되어 있어야 합니다 ## 문제 해결 ### SOAP 클라이언트 생성 실패 - PHP `SoapClient` 확장이 설치되어 있는지 확인 - `php -m | grep soap` 명령으로 확인 - 설치되지 않았다면 PHP 확장 설치 필요 ### CERTKEY 오류 - CERTKEY가 올바르게 입력되었는지 확인 - 바로빌 개발자센터에서 인증서가 정상적으로 등록되었는지 확인 - 테스트 모드에서는 CERTKEY가 선택사항일 수 있음 ### 사업자번호 오류 - 하이픈(-) 없이 숫자만 입력했는지 확인 - 발행자 사업자번호가 올바른지 확인