# 인증서 관리

## 1. GetTaxCertURL - 인증서 등록 팝업 URL

![인증서 등록 팝업 URL 미리보기](https://developers.popbill.com/images/reference/taxinvoice/getTaxCertURL.png)

**공동인증서를 등록하는 팝업 URL을 반환합니다.**

- 권장 사이즈 : width = 1,000px / height = 630px
- 반환되는 URL은 30초 동안만 사용이 가능합니다.
- 반환되는 URL에서만 유효한 세션을 포함하고 있습니다.

```java
String getTaxCertURL(String CorpNum, String UserID) throws PopbillException
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

String - 요청에 대한 응답 URL

### 예외

**PopbillException**

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

## 2. RegistTaxCert - 인증서 등록

- 전자세금계산서 발행에 필요한 공동인증서를 팝빌 인증서버에 등록합니다.
- 공동인증서는 팝빌에서 발급하는 ‘표준 인증서’, 은행에서 발급하는 ‘전자세금용 인증서’ 또는 ‘기업범용 인증서’만 등록 가능합니다.

```java
Response RegistTaxCert(String CorpNum, String CertPublicKey, String CertPrivateKey, String CertCipher, String UserID) throws PopbillException
```

> 공동인증서 정보는 통신 구간의 보안을 위해 필드 레벨 암호화(FLE)되어 처리됩니다.\
> ※ 통신구간 암호화 키 발급은 파트너 센터(1600-8536)로 문의하여 주시기 바랍니다.\
> 공동인증서 비밀번호의 안전한 관리를 위해 DB 저장시 컬럼 암호화 하여 저장합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- CertPublicKey `type: String` `length: -` `required: Y` `description: 공동인증서 공개키`
  - Base64 Encoded
- CertPrivateKey `type: String` `length: -` `required: Y` `description: 공동인증서 개인키`
  - Base64 Encoded
- CertCipher `type: String` `length: -` `required: Y` `description: 공동인증서 비밀번호`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

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

### 예외

**PopbillException**

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

## 3. RegistTaxCertPFX - PFX 인증서 등록

- 전자세금계산서 발행에 필요한 공동인증서를 팝빌 인증서버에 등록합니다.
- 공동인증서는 팝빌에서 발급하는 ‘표준 인증서’, 은행에서 발급하는 ‘전자세금용 인증서’ 또는 ‘기업범용 인증서’만 등록 가능합니다.

```java
Response RegistTaxCertPFX(String CorpNum, String PFX, String Password, String UserID) throws PopbillException
```

> 공동인증서 정보는 통신 구간의 보안을 위해 필드 레벨 암호화(FLE)되어 처리됩니다.\
> ※ 통신구간 암호화 키 발급은 파트너 센터(1600-8536)로 문의하여 주시기 바랍니다.\
> 공동인증서 비밀번호의 안전한 관리를 위해 DB 저장시 컬럼 암호화 하여 저장합니다.

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- PFX `type: String` `length: -` `required: Y` `description: 공동인증서 PFX 파일`
  - Base64 Encoded
- Password `type: String` `length: -` `required: Y` `description: 공동인증서 PFX 파일 비밀번호`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

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

### 예외

**PopbillException**

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

## 4. GetCertificateExpireDate - 인증서 만료일 확인

- 팝빌 인증서버에 등록된 공동인증서의 만료일을 확인합니다.

```java
Date getCertificateExpireDate(String CorpNum, String UserID) throws PopbillException
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

Date - 공동인증서 만료일자

### 예외

**PopbillException**

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

## 5. CheckCertValidation - 인증서 유효성 확인

- 팝빌 인증서버에 등록된 공동인증서의 유효성을 확인합니다.

```java
Response checkCertValidation(String CorpNum, String UserID) throws PopbillException
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**Response**

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

### 예외

**PopbillException**

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

## 6. GetTaxCertInfo - 인증서 정보 확인

- 팝빌 인증서버에 등록된 공동인증서의 정보를 확인합니다.

```java
TaxinvoiceCertificate GetTaxCertInfo(String CorpNum, String UserID) throws PopbillException
```

### 요청

**Parameters**

- CorpNum `type: String` `length: 10` `required: Y` `description: 팝빌회원 사업자번호 ('-' 제외)`
- UserID `type: String` `length: 50` `required: N` `description: 팝빌회원 아이디`

### 응답

**TaxinvoiceCertificate**

- regDT `type: String` `length: 14` `description: 등록일시`
  - 형식 : yyyyMMddHHmmss
  - 인증서를 팝빌 인증서버에 등록한 시간
- expireDT `type: String` `length: 14` `description: 만료일시`
  - 형식 : yyyyMMddHHmmss
  - 팝빌 인증서버에 등록된 인증서의 만료일시
- issuerDN `type: String` `length: 200` `description: 발급자 DN`
- subjectDN `type: String` `length: 200` `description: 인증서 DN`
- issuerName `type: String` `length: 12` `description: 인증서 종류`
  - `전자세금용 공동인증서`
  - `팝빌 특목용 공동인증서`
  - `기타`
- oid `type: String` `length: 30` `description: OID`
- regContactName `type: String` `length: 100` `description: 등록 담당자 성명`
  - 팝빌 인증서버에 인증서를 등록한 담당자 성명
- regContactID `type: String` `length: 50` `description: 등록 담당자 아이디`
  - 팝빌 인증서버에 인증서를 등록한 담당자 팝빌회원 아이디

### 예외

**PopbillException**

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