# 발행/전송

## 1. RegistIssue - 즉시 발행

작성된 세금계산서 데이터를 팝빌에 저장과 동시에 발행(전자서명)하여 “발행완료” 상태로 처리합니다. [\[참고\] 팝빌 국세청 전송 정책](https://developers.popbill.com/guide/taxinvoice/introduction/policy-of-send-to-nts)

- “발행완료”된 전자세금계산서는 국세청 전송 이전에 [\[CancelIssue – 발행취소\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#CancelIssue) 함수로 국세청 신고 대상에서 제외할 수 있습니다.
- ※ [\[Register - 임시저장\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Register)과 [\[Issue - 발행\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Issue) 함수 기능을 한 번의 프로세스로 처리합니다.

```php
function RegistIssue($CorpNum, $Taxinvoice, $UserID = null, $writeSpecification = false, $forceIssue = false, $memo = null, $emailSubject = null, $dealInvoiceMgtKey = null)
```

> 세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.\
> ※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.\
> 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- Taxinvoice `type: Taxinvoice` `length: -` `required: Y` `description: 전자세금계산서 정보`
  - issueType `type: String` `length: 3` `required: Y` `description: 발행형태 (택 1)`
    - `정발행`
    - `역발행`
    - `위수탁`
  - taxType `type: String` `length: 2` `required: Y` `description: 과세형태 (택 1)`
    - `과세`
    - `영세`
    - `면세`
  - chargeDirection `type: String` `length: 3` `required: Y` `description: 과금방향 (택 1)`
    - `정과금`: 공급자 과금
    - `역과금`: 공급받는자 과금
    - {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능\
      {issueType}="역발행" 경우 역과금 가능
  - serialNum `type: String` `length: 30` `required: N` `description: 일련번호`
  - kwon `type: Integer` `length: 4` `required: N` `description: 책번호 "권" 항목`
    - 정수만 입력 가능
  - ho `type: Integer` `length: 4` `required: N` `description: 책번호 "호" 항목`
    - 정수만 입력 가능
  - writeDate `type: String` `length: 8` `required: Y` `description: 작성일자`
    - 형식 : yyyyMMdd
  - purposeType `type: String` `length: 2` `required: Y` `description: 영수/청구 (택 1)`
    - `영수`
    - `청구`
    - `없음`
  - supplyCostTotal `type: String` `length: 18` `required: Y` `description: 공급가액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - taxTotal `type: String` `length: 18` `required: Y` `description: 세액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - totalAmount `type: String` `length: 18` `required: Y` `description: 합계금액`
    - 정수만 입력 가능(소수점 자동 절사)
  - cash `type: String` `length: 18` `required: N` `description: 현금`
  - chkBill `type: String` `length: 18` `required: N` `description: 수표`
  - credit `type: String` `length: 18` `required: N` `description: 외상`
  - note `type: String` `length: 18` `required: N` `description: 어음`
  - remark1 `type: String` `length: 150` `required: 조건부` `description: 비고1`
    - {invoiceeType}="외국인" 경우 외국인등록번호 또는 여권번호 필수 입력
  - remark2 `type: String` `length: 150` `required: N` `description: 비고2`
  - remark3 `type: String` `length: 150` `required: N` `description: 비고3`
  - invoicerMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="정발행" 경우 필수
  - invoicerCorpNum `type: String` `length: 10` `required: Y` `description: 공급자 사업자번호 ('-' 제외)`
  - invoicerTaxRegID `type: String` `length: 4` `required: N` `description: 공급자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoicerCorpName `type: String` `length: 200` `required: Y` `description: 공급자 상호`
  - invoicerCEOName `type: String` `length: 100` `required: Y` `description: 공급자 대표자 성명`
  - invoicerAddr `type: String` `length: 300` `required: N` `description: 공급자 주소`
  - invoicerBizType `type: String` `length: 100` `required: N` `description: 공급자 업태`
  - invoicerBizClass `type: String` `length: 100` `required: N` `description: 공급자 종목`
  - invoicerContactName `type: String` `length: 100` `required: N` `description: 공급자 담당자 성명`
  - invoicerDeptName `type: String` `length: 100` `required: N` `description: 공급자 담당자 부서명`
  - invoicerTEL `type: String` `length: 20` `required: N` `description: 공급자 담당자 연락처`
  - invoicerHP `type: String` `length: 20` `required: N` `description: 공급자 담당자 휴대폰`
  - invoicerEmail `type: String` `length: 100` `required: N` `description: 공급자 담당자 메일`
  - invoicerSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="정발행" 경우 세금계산서 발행시점에 알림문자 전송
  - invoiceeMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급받는자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="역발행" 경우 필수
  - invoiceeType `type: String` `length: -` `required: Y` `description: 공급받는자 유형 (택 1)`
    - `사업자`
    - `개인`
    - `외국인`
  - invoiceeCorpNum `type: String` `length: 13` `required: Y` `description: 공급받는자 등록번호 ('-' 제외)`
    - {invoiceeType}="사업자" 경우 사업자번호
    - {invoiceeType}="개인" 경우 주민등록번호
    - {invoiceeType}="외국인" 경우 "9999999999999"
  - invoiceeTaxRegID `type: String` `length: 4` `required: N` `description: 공급받는자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoiceeCorpName `type: String` `length: 200` `required: Y` `description: 공급받는자 상호`
  - invoiceeCEOName `type: String` `length: 100` `required: Y` `description: 공급받는자 대표자 성명`
  - invoiceeAddr `type: String` `length: 300` `required: N` `description: 공급받는자 주소`
  - invoiceeBizType `type: String` `length: 100` `required: N` `description: 공급받는자 업태`
  - invoiceeBizClass `type: String` `length: 100` `required: N` `description: 공급받는자 종목`
  - invoiceeContactName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 성명`
  - invoiceeDeptName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 부서명`
  - invoiceeTEL1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 연락처`
  - invoiceeHP1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 휴대폰`
  - invoiceeEmail1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 메일`
  - invoiceeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급받는자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급자 휴대폰번호 {invoicerHP}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="역발행" 경우 세금계산서 역발행 요청시점에 알림문자 전송
  - trusteeMgtKey `type: String` `length: 24` `required: 조건부` `description: 수탁자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="위수탁" 경우 필수
  - trusteeCorpNum `type: String` `length: 10` `required: 조건부` `description: 수탁자 사업자번호 ('-' 제외)`
    - {issueType}="위수탁" 경우 필수
  - trusteeTaxRegID `type: String` `length: 4` `required: N` `description: 수탁자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - trusteeCorpName `type: String` `length: 200` `required: 조건부` `description: 수탁자 상호`
    - {issueType}="위수탁" 경우 필수
  - trusteeCEOName `type: String` `length: 100` `required: 조건부` `description: 수탁자 대표자 성명`
    - {issueType}="위수탁" 경우 필수
  - trusteeAddr `type: String` `length: 300` `required: N` `description: 수탁자 주소`
  - trusteeBizType `type: String` `length: 100` `required: N` `description: 수탁자 업태`
  - trusteeBizClass `type: String` `length: 100` `required: N` `description: 수탁자 종목`
  - trusteeContactName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 성명`
  - trusteeDeptName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 부서명`
  - trusteeTEL `type: String` `length: 20` `required: N` `description: 수탁자 담당자 연락처`
  - trusteeHP `type: String` `length: 20` `required: N` `description: 수탁자 담당자 휴대폰`
  - trusteeEmail `type: String` `length: 100` `required: N` `description: 수탁자 담당자 메일`
  - trusteeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 수탁자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="위수탁" 경우 세금계산서 발행시점에 알림문자 전송
  - modifyCode `type: Integer` `length: 1` `required: 조건부` `description: 수정 사유코드`
    - 수정세금계산서 작성시 필수 [\[참고\] 수정세금계산서](https://developers.popbill.com/guide/taxinvoice/introduction/modified-taxinvoice)
  - orgNTSConfirmNum `type: String` `length: 24` `required: 조건부` `description: 당초 국세청승인번호`
    - 수정세금계산서 작성시 필수
  - businessLicenseYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 사업자등록증 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - bankBookYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 통장사본 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - detailList `type: List<TaxinvoiceDetail>` `length: 99` `required: N` `description: 품목 상세정보`
    - 최대 : 99개
    - serialNum `type: Integer` `length: 2` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 99
    - purchaseDT `type: String` `length: 8` `required: N` `description: 거래일자`
      - 형식 : yyyyMMdd
    - itemName `type: String` `length: 100` `required: N` `description: 품명`
    - spec `type: String` `length: 60` `required: N` `description: 규격`
    - qty `type: String` `length: 12` `required: N` `description: 수량`
      - -99999999.99 \~ 999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - unitCost `type: String` `length: 18` `required: N` `description: 단가`
      - -99999999999999.99 \~ 999999999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - supplyCost `type: String` `length: 18` `required: N` `description: 공급가액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - tax `type: String` `length: 18` `required: N` `description: 세액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - remark `type: String` `length: 100` `required: N` `description: 비고`
  - addContactList `type: List<TaxinvoiceAddContact>` `length: 5` `required: N` `description: 공급받는자 추가담당자 정보`
    - 여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
    - 최대 : 5명
    - serialNum `type: Integer` `length: 1` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 5
    - contactName `type: String` `length: 100` `required: N` `description: 담당자 성명`
    - email `type: String` `length: 100` `required: Y` `description: 메일`
  - memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
    - 대량(Bulk)발행 경우 사용
  - emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
    - 기본값 : 팝빌에서 설정한 안내메일 제목
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`
- writeSpecification `type: Boolean` `length: -` `required: N` `description: 거래명세서 동시작성 여부`
  - `true`: 사용
  - `false`: 미사용 : 기본값
  - 공급받는자 유형 {invoiceeType}="사업자" 경우만 가능
- forceIssue `type: Boolean` `length: -` `required: N` `description: 지연발행 가능여부`
  - `true`: 가능
  - `false`: 불가능 : 기본값
- memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
  - 기본값 : 팝빌에서 설정한 안내메일 제목 사용
- dealInvoiceMgtKey `type: String` `length: 24` `required: N` `description: 거래명세서 문서번호`
  - 기본값 : 세금계산서 문서번호와 동일하게 할당
  - {writeSpecification}=true 경우 할당

### 응답

**IssueResponse**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`
- ntsConfirmNum `type: String` `length: 24` `description: 국세청승인번호`
  - 전자세금계산서 발행 시점에 팝빌에서 자동으로 할당

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 2. BulkSubmit - 초대량 발행 접수

최대 100건의 세금계산서 발행을 한번의 요청으로 접수합니다.

```php
function BulkSubmit($CorpNum, $SubmitID, $taxinvoiceList, $ForceIssue = null, $UserID = null)
```

> 세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.\
> ※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.\
> 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- SubmitID `type: String` `length: 36` `required: Y` `description: 제출아이디`
  - 영문, 숫자, '-' 조합으로 구성
- taxinvoiceList `type: Taxinvoice[ ]` `length: -` `required: Y` `description: 전자세금계산서 목록`
  - 최대 : 100건
  - issueType `type: String` `length: 3` `required: Y` `description: 발행형태 (택 1)`
    - `정발행`
    - `역발행`
    - `위수탁`
  - taxType `type: String` `length: 2` `required: Y` `description: 과세형태 (택 1)`
    - `과세`
    - `영세`
    - `면세`
  - chargeDirection `type: String` `length: 3` `required: Y` `description: 과금방향 (택 1)`
    - `정과금`: 공급자 과금
    - `역과금`: 공급받는자 과금
    - {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능\
      {issueType}="역발행" 경우 역과금 가능
  - serialNum `type: String` `length: 30` `required: N` `description: 일련번호`
  - kwon `type: Integer` `length: 4` `required: N` `description: 책번호 "권" 항목`
    - 정수만 입력 가능
  - ho `type: Integer` `length: 4` `required: N` `description: 책번호 "호" 항목`
    - 정수만 입력 가능
  - writeDate `type: String` `length: 8` `required: Y` `description: 작성일자`
    - 형식 : yyyyMMdd
  - purposeType `type: String` `length: 2` `required: Y` `description: 영수/청구 (택 1)`
    - `영수`
    - `청구`
    - `없음`
  - supplyCostTotal `type: String` `length: 18` `required: Y` `description: 공급가액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - taxTotal `type: String` `length: 18` `required: Y` `description: 세액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - totalAmount `type: String` `length: 18` `required: Y` `description: 합계금액`
    - 정수만 입력 가능(소수점 자동 절사)
  - cash `type: String` `length: 18` `required: N` `description: 현금`
  - chkBill `type: String` `length: 18` `required: N` `description: 수표`
  - credit `type: String` `length: 18` `required: N` `description: 외상`
  - note `type: String` `length: 18` `required: N` `description: 어음`
  - remark1 `type: String` `length: 150` `required: 조건부` `description: 비고1`
    - {invoiceeType}="외국인" 경우 외국인등록번호 또는 여권번호 필수 입력
  - remark2 `type: String` `length: 150` `required: N` `description: 비고2`
  - remark3 `type: String` `length: 150` `required: N` `description: 비고3`
  - invoicerMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="정발행" 경우 필수
  - invoicerCorpNum `type: String` `length: 10` `required: Y` `description: 공급자 사업자번호 ('-' 제외)`
  - invoicerTaxRegID `type: String` `length: 4` `required: N` `description: 공급자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoicerCorpName `type: String` `length: 200` `required: Y` `description: 공급자 상호`
  - invoicerCEOName `type: String` `length: 100` `required: Y` `description: 공급자 대표자 성명`
  - invoicerAddr `type: String` `length: 300` `required: N` `description: 공급자 주소`
  - invoicerBizType `type: String` `length: 100` `required: N` `description: 공급자 업태`
  - invoicerBizClass `type: String` `length: 100` `required: N` `description: 공급자 종목`
  - invoicerContactName `type: String` `length: 100` `required: N` `description: 공급자 담당자 성명`
  - invoicerDeptName `type: String` `length: 100` `required: N` `description: 공급자 담당자 부서명`
  - invoicerTEL `type: String` `length: 20` `required: N` `description: 공급자 담당자 연락처`
  - invoicerHP `type: String` `length: 20` `required: N` `description: 공급자 담당자 휴대폰`
  - invoicerEmail `type: String` `length: 100` `required: N` `description: 공급자 담당자 메일`
  - invoicerSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="정발행" 경우 세금계산서 발행시점에 알림문자 전송
  - invoiceeMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급받는자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="역발행" 경우 필수
  - invoiceeType `type: String` `length: -` `required: Y` `description: 공급받는자 유형 (택 1)`
    - `사업자`
    - `개인`
    - `외국인`
  - invoiceeCorpNum `type: String` `length: 13` `required: Y` `description: 공급받는자 등록번호 ('-' 제외)`
    - {invoiceeType}="사업자" 경우 사업자번호
    - {invoiceeType}="개인" 경우 주민등록번호
    - {invoiceeType}="외국인" 경우 "9999999999999"
  - invoiceeTaxRegID `type: String` `length: 4` `required: N` `description: 공급받는자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoiceeCorpName `type: String` `length: 200` `required: Y` `description: 공급받는자 상호`
  - invoiceeCEOName `type: String` `length: 100` `required: Y` `description: 공급받는자 대표자 성명`
  - invoiceeAddr `type: String` `length: 300` `required: N` `description: 공급받는자 주소`
  - invoiceeBizType `type: String` `length: 100` `required: N` `description: 공급받는자 업태`
  - invoiceeBizClass `type: String` `length: 100` `required: N` `description: 공급받는자 종목`
  - invoiceeContactName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 성명`
  - invoiceeDeptName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 부서명`
  - invoiceeTEL1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 연락처`
  - invoiceeHP1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 휴대폰`
  - invoiceeEmail1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 메일`
  - invoiceeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급받는자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급자 휴대폰번호 {invoicerHP}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="역발행" 경우 세금계산서 역발행 요청시점에 알림문자 전송
  - trusteeMgtKey `type: String` `length: 24` `required: 조건부` `description: 수탁자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="위수탁" 경우 필수
  - trusteeCorpNum `type: String` `length: 10` `required: 조건부` `description: 수탁자 사업자번호 ('-' 제외)`
    - {issueType}="위수탁" 경우 필수
  - trusteeTaxRegID `type: String` `length: 4` `required: N` `description: 수탁자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - trusteeCorpName `type: String` `length: 200` `required: 조건부` `description: 수탁자 상호`
    - {issueType}="위수탁" 경우 필수
  - trusteeCEOName `type: String` `length: 100` `required: 조건부` `description: 수탁자 대표자 성명`
    - {issueType}="위수탁" 경우 필수
  - trusteeAddr `type: String` `length: 300` `required: N` `description: 수탁자 주소`
  - trusteeBizType `type: String` `length: 100` `required: N` `description: 수탁자 업태`
  - trusteeBizClass `type: String` `length: 100` `required: N` `description: 수탁자 종목`
  - trusteeContactName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 성명`
  - trusteeDeptName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 부서명`
  - trusteeTEL `type: String` `length: 20` `required: N` `description: 수탁자 담당자 연락처`
  - trusteeHP `type: String` `length: 20` `required: N` `description: 수탁자 담당자 휴대폰`
  - trusteeEmail `type: String` `length: 100` `required: N` `description: 수탁자 담당자 메일`
  - trusteeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 수탁자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="위수탁" 경우 세금계산서 발행시점에 알림문자 전송
  - modifyCode `type: Integer` `length: 1` `required: 조건부` `description: 수정 사유코드`
    - 수정세금계산서 작성시 필수 [\[참고\] 수정세금계산서](https://developers.popbill.com/guide/taxinvoice/introduction/modified-taxinvoice)
  - orgNTSConfirmNum `type: String` `length: 24` `required: 조건부` `description: 당초 국세청승인번호`
    - 수정세금계산서 작성시 필수
  - businessLicenseYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 사업자등록증 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - bankBookYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 통장사본 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - detailList `type: List<TaxinvoiceDetail>` `length: 99` `required: N` `description: 품목 상세정보`
    - 최대 : 99개
    - serialNum `type: Integer` `length: 2` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 99
    - purchaseDT `type: String` `length: 8` `required: N` `description: 거래일자`
      - 형식 : yyyyMMdd
    - itemName `type: String` `length: 100` `required: N` `description: 품명`
    - spec `type: String` `length: 60` `required: N` `description: 규격`
    - qty `type: String` `length: 12` `required: N` `description: 수량`
      - -99999999.99 \~ 999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - unitCost `type: String` `length: 18` `required: N` `description: 단가`
      - -99999999999999.99 \~ 999999999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - supplyCost `type: String` `length: 18` `required: N` `description: 공급가액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - tax `type: String` `length: 18` `required: N` `description: 세액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - remark `type: String` `length: 100` `required: N` `description: 비고`
  - addContactList `type: List<TaxinvoiceAddContact>` `length: 5` `required: N` `description: 공급받는자 추가담당자 정보`
    - 여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
    - 최대 : 5명
    - serialNum `type: Integer` `length: 1` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 5
    - contactName `type: String` `length: 100` `required: N` `description: 담당자 성명`
    - email `type: String` `length: 100` `required: Y` `description: 메일`
  - memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
    - 대량(Bulk)발행 경우 사용
  - emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
    - 기본값 : 팝빌에서 설정한 안내메일 제목
- ForceIssue `type: Boolean` `length: -` `required: N` `description: 지연발행 가능여부`
  - `true`: 가능
  - `false`: 불가능 : 기본값
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**BulkResponse**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`
- receiptID `type: String` `length: 36` `description: 접수아이디`
  - 접수 시점에 팝빌에서 자동으로 할당

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 3. GetBulkResult - 초대량 접수결과 확인

접수시 기재한 SubmitID를 사용하여 세금계산서 접수결과를 확인합니다.

- txState(접수상태)가 2(완료)일 때, 개별 세금계산서 발행결과(성공/실패) 확인이 가능합니다.

```php
function GetBulkResult($CorpNum, $SubmitID, $UserID = null)
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- SubmitID `type: String` `length: 36` `required: Y` `description: 파트너가 할당한 제출아이디`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**BulkTaxinvoiceResult**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`
- submitID `type: String` `length: 36` `description: 접수 시점에 고객사에서 할당한 제출아이디`
- submitCount `type: Integer` `length: -` `description: 세금계산서 접수 건수`
- successCount `type: Integer` `length: -` `description: 세금계산서 발행 성공 건수`
- failCount `type: Integer` `length: -` `description: 세금계산서 발행 실패 건수`
- txState `type: Integer` `length: 1` `description: 접수상태`
  - `0`: 접수
  - `1`: 처리중
  - `2`: 처리완료
- txResultCode `type: Integer` `length: -` `description: 접수 결과코드`
  - 성공 : 1
  - 실패 : 음의 정수 8자리 숫자값
  - [\[참고\] 오류코드](https://developers.popbill.com/error-code "_blank")
- txStartDT `type: String` `length: 14` `description: 발행처리 시작일시`
  - 형식 : yyyyMMddHHmmss
- txEndDT `type: String` `length: 14` `description: 발행처리 완료일시`
  - 형식 : yyyyMMddHHmmss
- receiptDT `type: String` `length: 14` `description: 접수일시`
  - 형식 : yyyyMMddHHmmss
- receiptID `type: String` `length: 36` `description: 접수아이디`
  - 접수 시점에 팝빌에서 자동으로 할당
- issueResult `type: BulkTaxinvoiceIssueResult[ ]` `length: -` `description: 발행결과`
  - invoicerMgtKey `type: String` `length: 24` `description: 공급자 문서번호`
    - 공급자의 문서 관리를 위해 파트너가 할당한 식별번호
  - trusteeMgtKey `type: String` `length: 24` `description: 수탁자 문서번호`
    - 파트너가 할당한 문서번호
  - code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
    - 성공 : 1
    - 실패 : 음의 정수 8자리 숫자값
    - [\[참고\] 오류코드](https://developers.popbill.com/error-code "_blank")
  - message `type: String` `length: -` `description: API 처리에 대한 응답메시지`
  - ntsconfirmNum `type: String` `length: 24` `description: 국세청승인번호`
    - 전자세금계산서 발행 시점에 팝빌에서 자동으로 할당
  - issueDT `type: String` `length: 14` `description: 발행일시`
    - 형식 : yyyyMMddHHmmss

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 4. Register - 임시저장

작성된 세금계산서 데이터를 팝빌에 저장합니다.

- “임시저장” 상태의 세금계산서는 [\[Issue - 발행\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Issue) 함수를 호출하여 “발행완료” 처리한 경우에만 국세청으로 전송됩니다.

```php
function Register($CorpNum, $Taxinvoice, $UserID = null, $writeSpecification = false)
```

> 세금계산서 파일첨부 기능을 구현하는 경우, [\[Register – 임시저장\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Register) → [\[AttachFile – 파일첨부\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#AttachFile) → [\[Issue – 발행\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Issue) 함수를 차례로 호출합니다.\
> 역발행 세금계산서를 저장하는 경우, 객체 Taxinvoice 의 변수 ‘chargeDirection’ 값을 통해 과금 주체를 지정할 수 있습니다.\
> ※ 정과금: 공급자 과금, 역과금: 공급받는자 과금\
> 임시저장된 세금계산서는 팝빌 사이트 ‘임시문서함’에서 확인 가능합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- Taxinvoice `type: Taxinvoice` `length: -` `required: Y` `description: 전자세금계산서 정보`
  - issueType `type: String` `length: 3` `required: Y` `description: 발행형태 (택 1)`
    - `정발행`
    - `역발행`
    - `위수탁`
  - taxType `type: String` `length: 2` `required: Y` `description: 과세형태 (택 1)`
    - `과세`
    - `영세`
    - `면세`
  - chargeDirection `type: String` `length: 3` `required: Y` `description: 과금방향 (택 1)`
    - `정과금`: 공급자 과금
    - `역과금`: 공급받는자 과금
    - {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능\
      {issueType}="역발행" 경우 역과금 가능
  - serialNum `type: String` `length: 30` `required: N` `description: 일련번호`
  - kwon `type: Integer` `length: 4` `required: N` `description: 책번호 "권" 항목`
    - 정수만 입력 가능
  - ho `type: Integer` `length: 4` `required: N` `description: 책번호 "호" 항목`
    - 정수만 입력 가능
  - writeDate `type: String` `length: 8` `required: Y` `description: 작성일자`
    - 형식 : yyyyMMdd
  - purposeType `type: String` `length: 2` `required: Y` `description: 영수/청구 (택 1)`
    - `영수`
    - `청구`
    - `없음`
  - supplyCostTotal `type: String` `length: 18` `required: Y` `description: 공급가액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - taxTotal `type: String` `length: 18` `required: Y` `description: 세액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - totalAmount `type: String` `length: 18` `required: Y` `description: 합계금액`
    - 정수만 입력 가능(소수점 자동 절사)
  - cash `type: String` `length: 18` `required: N` `description: 현금`
  - chkBill `type: String` `length: 18` `required: N` `description: 수표`
  - credit `type: String` `length: 18` `required: N` `description: 외상`
  - note `type: String` `length: 18` `required: N` `description: 어음`
  - remark1 `type: String` `length: 150` `required: 조건부` `description: 비고1`
    - {invoiceeType}="외국인" 경우 외국인등록번호 또는 여권번호 필수 입력
  - remark2 `type: String` `length: 150` `required: N` `description: 비고2`
  - remark3 `type: String` `length: 150` `required: N` `description: 비고3`
  - invoicerMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="정발행" 경우 필수
  - invoicerCorpNum `type: String` `length: 10` `required: Y` `description: 공급자 사업자번호 ('-' 제외)`
  - invoicerTaxRegID `type: String` `length: 4` `required: N` `description: 공급자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoicerCorpName `type: String` `length: 200` `required: Y` `description: 공급자 상호`
  - invoicerCEOName `type: String` `length: 100` `required: Y` `description: 공급자 대표자 성명`
  - invoicerAddr `type: String` `length: 300` `required: N` `description: 공급자 주소`
  - invoicerBizType `type: String` `length: 100` `required: N` `description: 공급자 업태`
  - invoicerBizClass `type: String` `length: 100` `required: N` `description: 공급자 종목`
  - invoicerContactName `type: String` `length: 100` `required: N` `description: 공급자 담당자 성명`
  - invoicerDeptName `type: String` `length: 100` `required: N` `description: 공급자 담당자 부서명`
  - invoicerTEL `type: String` `length: 20` `required: N` `description: 공급자 담당자 연락처`
  - invoicerHP `type: String` `length: 20` `required: N` `description: 공급자 담당자 휴대폰`
  - invoicerEmail `type: String` `length: 100` `required: N` `description: 공급자 담당자 메일`
  - invoicerSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="정발행" 경우 세금계산서 발행시점에 알림문자 전송
  - invoiceeMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급받는자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="역발행" 경우 필수
  - invoiceeType `type: String` `length: -` `required: Y` `description: 공급받는자 유형 (택 1)`
    - `사업자`
    - `개인`
    - `외국인`
  - invoiceeCorpNum `type: String` `length: 13` `required: Y` `description: 공급받는자 등록번호 ('-' 제외)`
    - {invoiceeType}="사업자" 경우 사업자번호
    - {invoiceeType}="개인" 경우 주민등록번호
    - {invoiceeType}="외국인" 경우 "9999999999999"
  - invoiceeTaxRegID `type: String` `length: 4` `required: N` `description: 공급받는자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoiceeCorpName `type: String` `length: 200` `required: Y` `description: 공급받는자 상호`
  - invoiceeCEOName `type: String` `length: 100` `required: Y` `description: 공급받는자 대표자 성명`
  - invoiceeAddr `type: String` `length: 300` `required: N` `description: 공급받는자 주소`
  - invoiceeBizType `type: String` `length: 100` `required: N` `description: 공급받는자 업태`
  - invoiceeBizClass `type: String` `length: 100` `required: N` `description: 공급받는자 종목`
  - invoiceeContactName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 성명`
  - invoiceeDeptName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 부서명`
  - invoiceeTEL1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 연락처`
  - invoiceeHP1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 휴대폰`
  - invoiceeEmail1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 메일`
  - invoiceeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급받는자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급자 휴대폰번호 {invoicerHP}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="역발행" 경우 세금계산서 역발행 요청시점에 알림문자 전송
  - trusteeMgtKey `type: String` `length: 24` `required: 조건부` `description: 수탁자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="위수탁" 경우 필수
  - trusteeCorpNum `type: String` `length: 10` `required: 조건부` `description: 수탁자 사업자번호 ('-' 제외)`
    - {issueType}="위수탁" 경우 필수
  - trusteeTaxRegID `type: String` `length: 4` `required: N` `description: 수탁자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - trusteeCorpName `type: String` `length: 200` `required: 조건부` `description: 수탁자 상호`
    - {issueType}="위수탁" 경우 필수
  - trusteeCEOName `type: String` `length: 100` `required: 조건부` `description: 수탁자 대표자 성명`
    - {issueType}="위수탁" 경우 필수
  - trusteeAddr `type: String` `length: 300` `required: N` `description: 수탁자 주소`
  - trusteeBizType `type: String` `length: 100` `required: N` `description: 수탁자 업태`
  - trusteeBizClass `type: String` `length: 100` `required: N` `description: 수탁자 종목`
  - trusteeContactName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 성명`
  - trusteeDeptName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 부서명`
  - trusteeTEL `type: String` `length: 20` `required: N` `description: 수탁자 담당자 연락처`
  - trusteeHP `type: String` `length: 20` `required: N` `description: 수탁자 담당자 휴대폰`
  - trusteeEmail `type: String` `length: 100` `required: N` `description: 수탁자 담당자 메일`
  - trusteeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 수탁자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="위수탁" 경우 세금계산서 발행시점에 알림문자 전송
  - modifyCode `type: Integer` `length: 1` `required: 조건부` `description: 수정 사유코드`
    - 수정세금계산서 작성시 필수 [\[참고\] 수정세금계산서](https://developers.popbill.com/guide/taxinvoice/introduction/modified-taxinvoice)
  - orgNTSConfirmNum `type: String` `length: 24` `required: 조건부` `description: 당초 국세청승인번호`
    - 수정세금계산서 작성시 필수
  - businessLicenseYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 사업자등록증 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - bankBookYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 통장사본 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - detailList `type: List<TaxinvoiceDetail>` `length: 99` `required: N` `description: 품목 상세정보`
    - 최대 : 99개
    - serialNum `type: Integer` `length: 2` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 99
    - purchaseDT `type: String` `length: 8` `required: N` `description: 거래일자`
      - 형식 : yyyyMMdd
    - itemName `type: String` `length: 100` `required: N` `description: 품명`
    - spec `type: String` `length: 60` `required: N` `description: 규격`
    - qty `type: String` `length: 12` `required: N` `description: 수량`
      - -99999999.99 \~ 999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - unitCost `type: String` `length: 18` `required: N` `description: 단가`
      - -99999999999999.99 \~ 999999999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - supplyCost `type: String` `length: 18` `required: N` `description: 공급가액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - tax `type: String` `length: 18` `required: N` `description: 세액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - remark `type: String` `length: 100` `required: N` `description: 비고`
  - addContactList `type: List<TaxinvoiceAddContact>` `length: 5` `required: N` `description: 공급받는자 추가담당자 정보`
    - 여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
    - 최대 : 5명
    - serialNum `type: Integer` `length: 1` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 5
    - contactName `type: String` `length: 100` `required: N` `description: 담당자 성명`
    - email `type: String` `length: 100` `required: Y` `description: 메일`
  - memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
    - 대량(Bulk)발행 경우 사용
  - emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
    - 기본값 : 팝빌에서 설정한 안내메일 제목
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`
- writeSpecification `type: Boolean` `length: -` `required: N` `description: 거래명세서 동시작성 여부`
  - `true`: 사용
  - `false`: 미사용 : 기본값
  - 공급받는자 유형 {invoiceeType}="사업자" 경우만 가능

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 5. Update - 수정

“임시저장” 상태의 세금계산서를 수정합니다.

```php
function Update($CorpNum, $MgtKeyType, $MgtKey, $Taxinvoice, $UserID = null, $writeSpecification = false)
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서번호 유형 (택 1)`
  - `SELL`: 매출
  - `BUY`: 매입
  - `TRUSTEE`: 위수탁
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Taxinvoice `type: Taxinvoice` `length: -` `required: Y` `description: 수정할 전자세금계산서 정보`
  - issueType `type: String` `length: 3` `required: Y` `description: 발행형태 (택 1)`
    - `정발행`
    - `역발행`
    - `위수탁`
  - taxType `type: String` `length: 2` `required: Y` `description: 과세형태 (택 1)`
    - `과세`
    - `영세`
    - `면세`
  - chargeDirection `type: String` `length: 3` `required: Y` `description: 과금방향 (택 1)`
    - `정과금`: 공급자 과금
    - `역과금`: 공급받는자 과금
    - {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능\
      {issueType}="역발행" 경우 역과금 가능
  - serialNum `type: String` `length: 30` `required: N` `description: 일련번호`
  - kwon `type: Integer` `length: 4` `required: N` `description: 책번호 "권" 항목`
    - 정수만 입력 가능
  - ho `type: Integer` `length: 4` `required: N` `description: 책번호 "호" 항목`
    - 정수만 입력 가능
  - writeDate `type: String` `length: 8` `required: Y` `description: 작성일자`
    - 형식 : yyyyMMdd
  - purposeType `type: String` `length: 2` `required: Y` `description: 영수/청구 (택 1)`
    - `영수`
    - `청구`
    - `없음`
  - supplyCostTotal `type: String` `length: 18` `required: Y` `description: 공급가액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - taxTotal `type: String` `length: 18` `required: Y` `description: 세액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - totalAmount `type: String` `length: 18` `required: Y` `description: 합계금액`
    - 정수만 입력 가능(소수점 자동 절사)
  - cash `type: String` `length: 18` `required: N` `description: 현금`
  - chkBill `type: String` `length: 18` `required: N` `description: 수표`
  - credit `type: String` `length: 18` `required: N` `description: 외상`
  - note `type: String` `length: 18` `required: N` `description: 어음`
  - remark1 `type: String` `length: 150` `required: 조건부` `description: 비고1`
    - {invoiceeType}="외국인" 경우 외국인등록번호 또는 여권번호 필수 입력
  - remark2 `type: String` `length: 150` `required: N` `description: 비고2`
  - remark3 `type: String` `length: 150` `required: N` `description: 비고3`
  - invoicerMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="정발행" 경우 필수
  - invoicerCorpNum `type: String` `length: 10` `required: Y` `description: 공급자 사업자번호 ('-' 제외)`
  - invoicerTaxRegID `type: String` `length: 4` `required: N` `description: 공급자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoicerCorpName `type: String` `length: 200` `required: Y` `description: 공급자 상호`
  - invoicerCEOName `type: String` `length: 100` `required: Y` `description: 공급자 대표자 성명`
  - invoicerAddr `type: String` `length: 300` `required: N` `description: 공급자 주소`
  - invoicerBizType `type: String` `length: 100` `required: N` `description: 공급자 업태`
  - invoicerBizClass `type: String` `length: 100` `required: N` `description: 공급자 종목`
  - invoicerContactName `type: String` `length: 100` `required: N` `description: 공급자 담당자 성명`
  - invoicerDeptName `type: String` `length: 100` `required: N` `description: 공급자 담당자 부서명`
  - invoicerTEL `type: String` `length: 20` `required: N` `description: 공급자 담당자 연락처`
  - invoicerHP `type: String` `length: 20` `required: N` `description: 공급자 담당자 휴대폰`
  - invoicerEmail `type: String` `length: 100` `required: N` `description: 공급자 담당자 메일`
  - invoicerSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="정발행" 경우 세금계산서 발행시점에 알림문자 전송
  - invoiceeMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급받는자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="역발행" 경우 필수
  - invoiceeType `type: String` `length: -` `required: Y` `description: 공급받는자 유형 (택 1)`
    - `사업자`
    - `개인`
    - `외국인`
  - invoiceeCorpNum `type: String` `length: 13` `required: Y` `description: 공급받는자 등록번호 ('-' 제외)`
    - {invoiceeType}="사업자" 경우 사업자번호
    - {invoiceeType}="개인" 경우 주민등록번호
    - {invoiceeType}="외국인" 경우 "9999999999999"
  - invoiceeTaxRegID `type: String` `length: 4` `required: N` `description: 공급받는자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoiceeCorpName `type: String` `length: 200` `required: Y` `description: 공급받는자 상호`
  - invoiceeCEOName `type: String` `length: 100` `required: Y` `description: 공급받는자 대표자 성명`
  - invoiceeAddr `type: String` `length: 300` `required: N` `description: 공급받는자 주소`
  - invoiceeBizType `type: String` `length: 100` `required: N` `description: 공급받는자 업태`
  - invoiceeBizClass `type: String` `length: 100` `required: N` `description: 공급받는자 종목`
  - invoiceeContactName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 성명`
  - invoiceeDeptName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 부서명`
  - invoiceeTEL1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 연락처`
  - invoiceeHP1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 휴대폰`
  - invoiceeEmail1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 메일`
  - invoiceeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급받는자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급자 휴대폰번호 {invoicerHP}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="역발행" 경우 세금계산서 역발행 요청시점에 알림문자 전송
  - trusteeMgtKey `type: String` `length: 24` `required: 조건부` `description: 수탁자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="위수탁" 경우 필수
  - trusteeCorpNum `type: String` `length: 10` `required: 조건부` `description: 수탁자 사업자번호 ('-' 제외)`
    - {issueType}="위수탁" 경우 필수
  - trusteeTaxRegID `type: String` `length: 4` `required: N` `description: 수탁자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - trusteeCorpName `type: String` `length: 200` `required: 조건부` `description: 수탁자 상호`
    - {issueType}="위수탁" 경우 필수
  - trusteeCEOName `type: String` `length: 100` `required: 조건부` `description: 수탁자 대표자 성명`
    - {issueType}="위수탁" 경우 필수
  - trusteeAddr `type: String` `length: 300` `required: N` `description: 수탁자 주소`
  - trusteeBizType `type: String` `length: 100` `required: N` `description: 수탁자 업태`
  - trusteeBizClass `type: String` `length: 100` `required: N` `description: 수탁자 종목`
  - trusteeContactName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 성명`
  - trusteeDeptName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 부서명`
  - trusteeTEL `type: String` `length: 20` `required: N` `description: 수탁자 담당자 연락처`
  - trusteeHP `type: String` `length: 20` `required: N` `description: 수탁자 담당자 휴대폰`
  - trusteeEmail `type: String` `length: 100` `required: N` `description: 수탁자 담당자 메일`
  - trusteeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 수탁자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="위수탁" 경우 세금계산서 발행시점에 알림문자 전송
  - modifyCode `type: Integer` `length: 1` `required: 조건부` `description: 수정 사유코드`
    - 수정세금계산서 작성시 필수 [\[참고\] 수정세금계산서](https://developers.popbill.com/guide/taxinvoice/introduction/modified-taxinvoice)
  - orgNTSConfirmNum `type: String` `length: 24` `required: 조건부` `description: 당초 국세청승인번호`
    - 수정세금계산서 작성시 필수
  - businessLicenseYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 사업자등록증 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - bankBookYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 통장사본 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - detailList `type: List<TaxinvoiceDetail>` `length: 99` `required: N` `description: 품목 상세정보`
    - 최대 : 99개
    - serialNum `type: Integer` `length: 2` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 99
    - purchaseDT `type: String` `length: 8` `required: N` `description: 거래일자`
      - 형식 : yyyyMMdd
    - itemName `type: String` `length: 100` `required: N` `description: 품명`
    - spec `type: String` `length: 60` `required: N` `description: 규격`
    - qty `type: String` `length: 12` `required: N` `description: 수량`
      - -99999999.99 \~ 999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - unitCost `type: String` `length: 18` `required: N` `description: 단가`
      - -99999999999999.99 \~ 999999999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - supplyCost `type: String` `length: 18` `required: N` `description: 공급가액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - tax `type: String` `length: 18` `required: N` `description: 세액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - remark `type: String` `length: 100` `required: N` `description: 비고`
  - addContactList `type: List<TaxinvoiceAddContact>` `length: 5` `required: N` `description: 공급받는자 추가담당자 정보`
    - 여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
    - 최대 : 5명
    - serialNum `type: Integer` `length: 1` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 5
    - contactName `type: String` `length: 100` `required: N` `description: 담당자 성명`
    - email `type: String` `length: 100` `required: Y` `description: 메일`
  - memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
    - 대량(Bulk)발행 경우 사용
  - emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
    - 기본값 : 팝빌에서 설정한 안내메일 제목
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`
- writeSpecification `type: Boolean` `length: -` `required: N` `description: 거래명세서 동시작성 여부`
  - `true`: 사용
  - `false`: 미사용 : 기본값
  - 공급받는자 유형 {invoiceeType}="사업자" 경우만 가능

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 6. Issue - 발행

“임시저장” 또는 “(역)발행대기” 상태의 세금계산서를 발행(전자서명)하며, “발행완료” 상태로 처리합니다. [\[참고\] 팝빌 국세청 전송 정책](https://developers.popbill.com/guide/taxinvoice/introduction/policy-of-send-to-nts)

- “발행완료”된 전자세금계산서는 국세청 전송 이전에 [\[CancelIssue – 발행취소\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#CancelIssue) 함수로 국세청 신고 대상에서 제외할 수 있습니다.

```php
function Issue($CorpNum, $MgtKeyType, $MgtKey, $Memo = null, $EmailSubject = null, $ForceIssue = false, $UserID = null)
```

> 세금계산서 발행을 위해서 공급자의 인증서가 팝빌 인증서버에 사전등록 되어야 합니다.\
> ※ 위수탁의 경우, 수탁자의 인증서 등록이 필요합니다.\
> 세금계산서 발행시 포인트가 과금되며, 공급받는자에게 발행 메일이 발송됩니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서번호 유형 (택 1)`
  - `SELL`: 매출
  - `BUY`: 매입
  - `TRUSTEE`: 위수탁
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- EmailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
  - 기본값 : 팝빌에서 설정한 안내메일 제목 사용
- ForceIssue `type: Boolean` `length: -` `required: N` `description: 지연발행 가능여부`
  - `true`: 가능
  - `false`: 불가능 : 기본값
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**IssueResponse**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`
- ntsConfirmNum `type: String` `length: 24` `description: 국세청승인번호`
  - 전자세금계산서 발행 시점에 팝빌에서 자동으로 할당

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 7. CancelIssue - 발행취소

국세청 전송 이전 “발행완료” 상태의 전자세금계산서를 “발행취소”하고 국세청 신고대상에서 제외합니다.

```php
function CancelIssue($CorpNum, $MgtKeyType, $MgtKey, $Memo = null, $UserID = null)
```

> [\[Delete – 삭제\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Delete) 함수를 호출하여 “발행취소” 상태의 전자세금계산서를 삭제하면, 문서번호 재사용이 가능합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서번호 유형 (택 1)`
  - `SELL`: 매출
  - `BUY`: 매입
  - `TRUSTEE`: 위수탁
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 8. RegistRequest - 역발행 즉시 요청

공급받는자가 작성한 세금계산서 데이터를 팝빌에 저장하고 공급자에게 송부하여 발행을 요청합니다.

- 역발행 요청된 세금계산서는 “(역)발행대기” 상태이며, 공급자가 팝빌 사이트 또는 함수를 호출하여 발행한 경우에만 국세청으로 전송됩니다.
- 공급자는 팝빌 사이트의 “매출 발행 대기함”에서 발행대기 상태의 역발행 세금계산서를 확인할 수 있습니다.\
  ※ [\[Register – 임시저장\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Register)과 [\[Request – 역발행 요청\]](https://developers.popbill.com/reference/taxinvoice/php/api/issue#Request)함수 기능을 한 번의 프로세스로 처리합니다.

```php
function RegistRequest($CorpNum, $Taxinvoice, $Memo = null, $UserID = null)
```

> 역발행 요청시 공급자에게 역발행 요청 메일이 발송됩니다.\
> 공급자가 역발행 세금계산서 발행시 포인트가 과금되며, 객체 Taxinvoice 의 변수 ‘chargeDirection’ 값에 따라 과금 주체를 변경할 수 있습니다.\
> ※ 정과금 : 공급자 과금, 역과금 : 공급받는자 과금

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- Taxinvoice `type: Taxinvoice` `length: -` `required: Y` `description: 전자세금계산서 정보`
  - issueType `type: String` `length: 3` `required: Y` `description: 발행형태 (택 1)`
    - `정발행`
    - `역발행`
    - `위수탁`
  - taxType `type: String` `length: 2` `required: Y` `description: 과세형태 (택 1)`
    - `과세`
    - `영세`
    - `면세`
  - chargeDirection `type: String` `length: 3` `required: Y` `description: 과금방향 (택 1)`
    - `정과금`: 공급자 과금
    - `역과금`: 공급받는자 과금
    - {issueType}="정발행", "역발행", "위수탁" 경우 정과금 가능\
      {issueType}="역발행" 경우 역과금 가능
  - serialNum `type: String` `length: 30` `required: N` `description: 일련번호`
  - kwon `type: Integer` `length: 4` `required: N` `description: 책번호 "권" 항목`
    - 정수만 입력 가능
  - ho `type: Integer` `length: 4` `required: N` `description: 책번호 "호" 항목`
    - 정수만 입력 가능
  - writeDate `type: String` `length: 8` `required: Y` `description: 작성일자`
    - 형식 : yyyyMMdd
  - purposeType `type: String` `length: 2` `required: Y` `description: 영수/청구 (택 1)`
    - `영수`
    - `청구`
    - `없음`
  - supplyCostTotal `type: String` `length: 18` `required: Y` `description: 공급가액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - taxTotal `type: String` `length: 18` `required: Y` `description: 세액 합계`
    - 정수만 입력 가능(소수점 자동 절사)
  - totalAmount `type: String` `length: 18` `required: Y` `description: 합계금액`
    - 정수만 입력 가능(소수점 자동 절사)
  - cash `type: String` `length: 18` `required: N` `description: 현금`
  - chkBill `type: String` `length: 18` `required: N` `description: 수표`
  - credit `type: String` `length: 18` `required: N` `description: 외상`
  - note `type: String` `length: 18` `required: N` `description: 어음`
  - remark1 `type: String` `length: 150` `required: 조건부` `description: 비고1`
    - {invoiceeType}="외국인" 경우 외국인등록번호 또는 여권번호 필수 입력
  - remark2 `type: String` `length: 150` `required: N` `description: 비고2`
  - remark3 `type: String` `length: 150` `required: N` `description: 비고3`
  - invoicerMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="정발행" 경우 필수
  - invoicerCorpNum `type: String` `length: 10` `required: Y` `description: 공급자 사업자번호 ('-' 제외)`
  - invoicerTaxRegID `type: String` `length: 4` `required: N` `description: 공급자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoicerCorpName `type: String` `length: 200` `required: Y` `description: 공급자 상호`
  - invoicerCEOName `type: String` `length: 100` `required: Y` `description: 공급자 대표자 성명`
  - invoicerAddr `type: String` `length: 300` `required: N` `description: 공급자 주소`
  - invoicerBizType `type: String` `length: 100` `required: N` `description: 공급자 업태`
  - invoicerBizClass `type: String` `length: 100` `required: N` `description: 공급자 종목`
  - invoicerContactName `type: String` `length: 100` `required: N` `description: 공급자 담당자 성명`
  - invoicerDeptName `type: String` `length: 100` `required: N` `description: 공급자 담당자 부서명`
  - invoicerTEL `type: String` `length: 20` `required: N` `description: 공급자 담당자 연락처`
  - invoicerHP `type: String` `length: 20` `required: N` `description: 공급자 담당자 휴대폰`
  - invoicerEmail `type: String` `length: 100` `required: N` `description: 공급자 담당자 메일`
  - invoicerSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="정발행" 경우 세금계산서 발행시점에 알림문자 전송
  - invoiceeMgtKey `type: String` `length: 24` `required: 조건부` `description: 공급받는자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="역발행" 경우 필수
  - invoiceeType `type: String` `length: -` `required: Y` `description: 공급받는자 유형 (택 1)`
    - `사업자`
    - `개인`
    - `외국인`
  - invoiceeCorpNum `type: String` `length: 13` `required: Y` `description: 공급받는자 등록번호 ('-' 제외)`
    - {invoiceeType}="사업자" 경우 사업자번호
    - {invoiceeType}="개인" 경우 주민등록번호
    - {invoiceeType}="외국인" 경우 "9999999999999"
  - invoiceeTaxRegID `type: String` `length: 4` `required: N` `description: 공급받는자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - invoiceeCorpName `type: String` `length: 200` `required: Y` `description: 공급받는자 상호`
  - invoiceeCEOName `type: String` `length: 100` `required: Y` `description: 공급받는자 대표자 성명`
  - invoiceeAddr `type: String` `length: 300` `required: N` `description: 공급받는자 주소`
  - invoiceeBizType `type: String` `length: 100` `required: N` `description: 공급받는자 업태`
  - invoiceeBizClass `type: String` `length: 100` `required: N` `description: 공급받는자 종목`
  - invoiceeContactName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 성명`
  - invoiceeDeptName1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 부서명`
  - invoiceeTEL1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 연락처`
  - invoiceeHP1 `type: String` `length: 20` `required: N` `description: 공급받는자 담당자 휴대폰`
  - invoiceeEmail1 `type: String` `length: 100` `required: N` `description: 공급받는자 담당자 메일`
  - invoiceeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 공급받는자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급자 휴대폰번호 {invoicerHP}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="역발행" 경우 세금계산서 역발행 요청시점에 알림문자 전송
  - trusteeMgtKey `type: String` `length: 24` `required: 조건부` `description: 수탁자 문서번호`
    - 문서 관리를 위해 파트너가 할당하는 고유 식별번호
    - 영문 대소문자, 숫자, 특수문자('-', '\_')만 입력 가능
    - {issueType}="위수탁" 경우 필수
  - trusteeCorpNum `type: String` `length: 10` `required: 조건부` `description: 수탁자 사업자번호 ('-' 제외)`
    - {issueType}="위수탁" 경우 필수
  - trusteeTaxRegID `type: String` `length: 4` `required: N` `description: 수탁자 종사업장 식별번호`
    - 종사업장 식별번호는 4자리 숫자로만 구성
  - trusteeCorpName `type: String` `length: 200` `required: 조건부` `description: 수탁자 상호`
    - {issueType}="위수탁" 경우 필수
  - trusteeCEOName `type: String` `length: 100` `required: 조건부` `description: 수탁자 대표자 성명`
    - {issueType}="위수탁" 경우 필수
  - trusteeAddr `type: String` `length: 300` `required: N` `description: 수탁자 주소`
  - trusteeBizType `type: String` `length: 100` `required: N` `description: 수탁자 업태`
  - trusteeBizClass `type: String` `length: 100` `required: N` `description: 수탁자 종목`
  - trusteeContactName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 성명`
  - trusteeDeptName `type: String` `length: 100` `required: N` `description: 수탁자 담당자 부서명`
  - trusteeTEL `type: String` `length: 20` `required: N` `description: 수탁자 담당자 연락처`
  - trusteeHP `type: String` `length: 20` `required: N` `description: 수탁자 담당자 휴대폰`
  - trusteeEmail `type: String` `length: 100` `required: N` `description: 수탁자 담당자 메일`
  - trusteeSMSSendYN `type: Boolean` `length: -` `required: N` `description: 수탁자 알림문자 전송 여부`
    - `true`: 전송
    - `false`: 미전송 : 기본값
    - 수신자 : 공급받는자 휴대폰번호 {invoiceeHP1}
    - 문자 전송 포인트가 차감(단, 전송실패 건은 환불)
    - {issueType}="위수탁" 경우 세금계산서 발행시점에 알림문자 전송
  - modifyCode `type: Integer` `length: 1` `required: 조건부` `description: 수정 사유코드`
    - 수정세금계산서 작성시 필수 [\[참고\] 수정세금계산서](https://developers.popbill.com/guide/taxinvoice/introduction/modified-taxinvoice)
  - orgNTSConfirmNum `type: String` `length: 24` `required: 조건부` `description: 당초 국세청승인번호`
    - 수정세금계산서 작성시 필수
  - businessLicenseYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 사업자등록증 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - bankBookYN `type: Boolean` `length: -` `required: N` `description: 팝빌에 등록된 통장사본 첨부 여부`
    - `true`: 첨부
    - `false`: 미첨부 : 기본값
    - 팝빌 사이트 또는 [\[GetSealURL - 인감 및 첨부문서 등록 팝업 URL\]](https://developers.popbill.com/reference/taxinvoice/php/api/etc#GetSealURL)을 이용하여 등록
  - detailList `type: List<TaxinvoiceDetail>` `length: 99` `required: N` `description: 품목 상세정보`
    - 최대 : 99개
    - serialNum `type: Integer` `length: 2` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 99
    - purchaseDT `type: String` `length: 8` `required: N` `description: 거래일자`
      - 형식 : yyyyMMdd
    - itemName `type: String` `length: 100` `required: N` `description: 품명`
    - spec `type: String` `length: 60` `required: N` `description: 규격`
    - qty `type: String` `length: 12` `required: N` `description: 수량`
      - -99999999.99 \~ 999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - unitCost `type: String` `length: 18` `required: N` `description: 단가`
      - -99999999999999.99 \~ 999999999999999.99 소수점 아래 2번째 자리까지 입력 가능
    - supplyCost `type: String` `length: 18` `required: N` `description: 공급가액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - tax `type: String` `length: 18` `required: N` `description: 세액`
      - 정수만 입력 가능
      - 마이너스 금액 입력 가능, 소수점 자동 절사
    - remark `type: String` `length: 100` `required: N` `description: 비고`
  - addContactList `type: List<TaxinvoiceAddContact>` `length: 5` `required: N` `description: 공급받는자 추가담당자 정보`
    - 여러 담당자에게 발행 안내 메일을 보내야할 경우 사용
    - 최대 : 5명
    - serialNum `type: Integer` `length: 1` `required: Y` `description: 일련번호`
      - 1부터 순차적으로 입력
      - 최대 : 5
    - contactName `type: String` `length: 100` `required: N` `description: 담당자 성명`
    - email `type: String` `length: 100` `required: Y` `description: 메일`
  - memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
    - 대량(Bulk)발행 경우 사용
  - emailSubject `type: String` `length: 300` `required: N` `description: 세금계산서 발행 안내메일 제목`
    - 기본값 : 팝빌에서 설정한 안내메일 제목
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 9. Request - 역발행 요청

공급받는자가 저장된 역발행 세금계산서를 공급자에게 송부하여 발행 요청합니다.

- 역발행 요청된 세금계산서는 “(역)발행대기” 상태이며, 공급자가 팝빌 사이트 또는 함수를 호출하여 발행한 경우에만 국세청으로 전송됩니다.
- 공급자는 팝빌 사이트의 “매출 발행 대기함”에서 발행대기 상태의 역발행 세금계산서를 확인할 수 있습니다.

```php
function Request($CorpNum, $MgtKeyType, $MgtKey, $Memo = null, $UserID = null)
```

> 역발행 요청시 공급자에게 역발행 요청 메일이 발송됩니다.\
> 공급자가 역발행 세금계산서 발행시 포인트가 과금됩니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서 번호 유형`
  - BUY(매입) 입력
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 10. CancelRequest - 역발행 요청취소

공급자가 요청받은 역발행 세금계산서를 발행하기 전, 공급받는자가 역발행요청을 취소합니다.

- 함수 호출시 “취소” 상태로 변경되고, 해당 역발행 세금계산서는 공급자에 의해 발행 될 수 없습니다.

```php
function CancelRequest($CorpNum, $MgtKeyType, $MgtKey, $Memo = null, $UserID = null)
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서 번호 유형`
  - BUY(매입) 입력
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 11. Refuse - 역발행 요청거부

공급자가 공급받는자에게 역발행 요청 받은 세금계산서의 발행을 거부합니다.

```php
function Refuse($CorpNum, $MgtKeyType, $MgtKey, $Memo = null, $UserID = null)
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서 번호 유형`
  - SELL(매출) 입력
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- Memo `type: String` `length: 200` `required: N` `description: 세금계산서 상태 이력을 관리하기 위한 메모`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 12. Delete - 삭제

삭제 가능한 상태의 세금계산서를 삭제합니다.\
※ 삭제 가능한 상태: “임시저장”, “발행취소”, “역발행거부”, “역발행취소”, “전송실패”

```php
function Delete($CorpNum, $MgtKeyType, $MgtKey, $UserID = null)
```

> 삭제 처리된 세금계산서의 문서번호는 재사용이 가능합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서번호 유형 (택 1)`
  - `SELL`: 매출
  - `BUY`: 매입
  - `TRUSTEE`: 위수탁
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`

## 13. SendToNTS - 국세청 즉시 전송

“발행완료” 상태의 전자세금계산서를 국세청에 즉시 전송하며, 함수 호출 후 최대 30분 이내에 전송 처리가 완료됩니다.

```php
function SendToNTS($CorpNum, $MgtKeyType, $MgtKey, $UserID = null)
```

> 함수 [\[GetInfo – 상태확인\]](https://developers.popbill.com/reference/taxinvoice/php/api/info#GetInfo) 또는 [Webhook](https://developers.popbill.com/reference/taxinvoice/php/webhook/introduction)을 통해 국세청 전송 결과를 확인 합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- MgtKeyType `type: ENumMgtKeyType` `length: -` `required: Y` `description: 문서번호 유형 (택 1)`
  - `SELL`: 매출
  - `TRUSTEE`: 위수탁
- MgtKey `type: String` `length: 24` `required: Y` `description: 파트너가 할당한 문서번호`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

- code `type: Integer` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: String` `length: -` `description: API 처리에 대한 응답메시지`

### 예외

**PopbillException**

- code `type: Integer` `length: -` `description: API 처리 실패에 대한 오류코드`
  - 음의 정수 8자리 숫자값 [\[참고\] 오류코드](https://developers.popbill.com/error-code)
- message `type: String` `length: -` `description: API 처리 실패에 대한 오류메시지`
