기타 헤더 설정
팝빌 API는 기타 헤더를 설정하여 응답 메시지의 언어와 인코딩 방식을 지정할 수 있습니다.
1. Accept-Encoding - 응답 압축 방식 설정 헤더
섹션 제목: “1. Accept-Encoding - 응답 압축 방식 설정 헤더”팝빌 API는 클라이언트가 요청 헤더에 Accept-Encoding 값을 설정한 경우 인코딩된 응답을 제공합니다. 인코딩된 응답은 네트워크 전송량을 줄이고, 대량 데이터 조회 시 응답 속도 개선에 도움이 됩니다.
Accept-Encoding: gzip클라이언트가 Accept-Encoding 헤더를 전송하지 않는 경우, 서버는 일반적으로 압축을 적용하지 않은 응답을 반환합니다.
gzip과 같이 압축된 응답을 받으려면, 클라이언트는 요청한 압축 방식을 지원하고 응답 본문을 올바르게 압축 해제할 수 있어야 합니다.
2. Accept-Language - 응답 언어 설정 헤더
섹션 제목: “2. Accept-Language - 응답 언어 설정 헤더”팝빌 API의 응답 메시지는 기본적으로 한글로 제공됩니다.
영문 응답이 필요한 경우 API 요청 헤더에 Accept-Language 값을 설정하여 응답 메시지 언어를 영문으로 지정할 수 있습니다.
Accept-Language: en-US3. X-PB-Message-Digest - 요청 본문 무결성 검증 헤더
섹션 제목: “3. X-PB-Message-Digest - 요청 본문 무결성 검증 헤더”대량발행(BulkSubmit) API 호출 시 요청 본문의 무결성을 검증하기 위해, 본문에 대한 MessageDigest 값을 생성한 뒤 이를 요청 헤더의 X-PB-Message-Digest 항목에 포함하여 전송해야 합니다.
샘플 코드
요청 본문을 SHA-1 해싱 후 Base64로 인코딩하는 샘플 코드입니다.
#!/bin/bash
BODY=$(cat << 'EOF'{ "invoices": [ { "issueType": "정발행", "taxType": "과세", "chargeDirection" : "정과금", "writeDate": "20251016", "purposeType": "영수", "supplyCostTotal": "10000", "taxTotal": "1000", "totalAmount": "11000", "invoicerMgtKey": "TEST202510281800000", "invoicerCorpNum": "1234567890", "invoicerCorpName": "공급자 상호", "invoicerCEOName": "공급자 대표자 성명", "invoiceeType": "사업자", "invoiceeCorpNum": "1234567890", "invoiceeCorpName": "공급받는자 상호", "invoiceeCEOName": "공급받는자 대표자 성명" } ] }EOF)
MessageDigest=$(printf '%s' "$BODY" | openssl dgst -sha1 -binary | base64)
echo $MessageDigest결과 확인
Fd13KyCZ14sRHX1TZxTLD1IR+E0=요청 예시
curl --request POST \ --url 'https://{domain}/Taxinvoice' \ --header 'Authorization: Bearer {token}' \ --header 'Content-Type: application/json' \ --header 'X-HTTP-Method-Override: BULKISSUE' \ --header 'X-PB-Submit-ID: {submitID}' \ --header 'X-PB-Message-Digest: Fd13KyCZ14sRHX1TZxTLD1IR+E0=' \ --data '{ "invoices": [ { "issueType": "정발행", "taxType": "과세", "chargeDirection" : "정과금", "writeDate": "20251016", "purposeType": "영수", "supplyCostTotal": "10000", "taxTotal": "1000", "totalAmount": "11000", "invoicerMgtKey": "TEST202510281800000", "invoicerCorpNum": "1234567890", "invoicerCorpName": "공급자 상호", "invoicerCEOName": "공급자 대표자 성명", "invoiceeType": "사업자", "invoiceeCorpNum": "1234567890", "invoiceeCorpName": "공급받는자 상호", "invoiceeCEOName": "공급받는자 대표자 성명" } ] }'요청 본문의 JSON 문자열은 공백이나 줄바꿈이 달라지면 해시값도 달라집니다. 요청에 실제 사용되는 JSON 문자열 그대로를 입력하여 MessageDigest를 생성해야 합니다.