공인인증서 만료일 확인, 등록여부 확인용도로 활용가능
            args
                CorpNum : 확인할 회원 사업자번호
            return
                등록시 만료일자, 미등록시 해당 PopbillException raise.
            raise
                PopbillException
439492
def getCertificateExpireDate(self, CorpNum):
        
        result = self._httpget('/Taxinvoice?cfg=CERT', CorpNum)
        return datetime.strptime(result.certificateExpiration, '%Y%m%d%H%M%S')
665336
@Override
    public Taxinvoice getDetailInfo(String CorpNum, MgtKeyType KeyType,
                                    String MgtKey) throws PopbillException {
        if (KeyType == null)
            throw new PopbillException(-99999999, "관리번호형태가 입력되지 않았습니다.");
        if (MgtKey == null || MgtKey.isEmpty())
            throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다.");

        return httpget("/Taxinvoice/" + KeyType.name() + "/" + MgtKey
                + "?Detail", CorpNum, null, Taxinvoice.class);
    }
917991
public String resendFAX(String corpNum, String receiptNum, String sendNum,
			String senderName, Receiver[] receivers, Date reserveDT,
			String userID, String title, String requestNum) throws PopbillException {
		
		if(receiptNum == null)
			throw new PopbillException(-99999999,"팩스 접수번호(receiptNum)가 입력되지 않았습니다.");
		if (receiptNum.length() != 18)
			throw new PopbillException(-99999999, "접수번호가 올바르지 않았습니다.");
		
		SendRequest request = new SendRequest();
		
		if (sendNum != null)
			request.snd = sendNum;
		
		if ( senderName != null)
			request.sndnm = senderName;
		
		if ( title != null)
			request.title = title;

		if (receivers != null) 
			request.rcvs = receivers;
		
		if (reserveDT != null) 
			request.sndDT = new SimpleDateFormat("yyyyMMddHHmmss", Locale.KOREA).format(reserveDT);
		
		if (requestNum != null) 
			request.requestNum = requestNum;
		
		String PostData = toJsonString(request);
		
		ReceiptResponse response = httppost("/FAX/"+receiptNum, corpNum, PostData, userID, ReceiptResponse.class);
		
		return response.receiptNum;
	}
1298082
@Override
	public Response update(String CorpNum, int ItemCode, String MgtKey,
			Statement statement) throws PopbillException {
		if (MgtKey == null || MgtKey.isEmpty())
			throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다.");
				
		return update(CorpNum, ItemCode, MgtKey, statement, null);
	}
218124
def exception(self, ncode):
        
        error = self.error_dictionary[ncode]
        error_msg = self._buffer[self._index - 1].split(None, 3)[3]
        exec('raise self.%s("%s: %s")' % (error, error, error_msg))
1274532
@Override
	public String getPopUpURL(String CorpNum, int ItemCode, String MgtKey) throws PopbillException {
		if (MgtKey == null || MgtKey.isEmpty())
			throw new PopbillException(-99999999, "관리번호 가 입력되지 않았습니다.");
	
		return getPopUpURL(CorpNum, ItemCode, MgtKey, null);
	}
703024
def getXML(self, CorpNum, NTSConfirmNum, UserID=None):
        
        if NTSConfirmNum == None or len(NTSConfirmNum) != 24:
            raise PopbillException(-99999999, "국세청승인번호(NTSConfirmNum)가 올바르지 않습니다.")

        return self._httpget('/HomeTax/Taxinvoice/' + NTSConfirmNum + '?T=xml', CorpNum, UserID)
454388
@Override
	public CorpState CheckCorpNum(String MemberCorpNum, String CheckCorpNum)
			throws PopbillException {
		return httpget("/CloseDown?CN=" + CheckCorpNum,
				MemberCorpNum, null, CorpState.class);
	}
563391
@Override
	public HTTaxinvoice getTaxinvoice(String CorpNum, String NTSConfirmNum)
			throws PopbillException {
		return getTaxinvoice(CorpNum, NTSConfirmNum, null);
	}
78511
@Override
    public TaxinvoiceInfo[] getInfos(String CorpNum, MgtKeyType KeyType,
                                     String[] MgtKeyList) throws PopbillException {
        if (KeyType == null)
            throw new PopbillException(-99999999, "관리번호형태가 입력되지 않았습니다.");
        if (MgtKeyList == null || MgtKeyList.length == 0)
            throw new PopbillException(-99999999, "관리번호 목록이 입력되지 않았습니다.");

        String PostData = toJsonString(MgtKeyList);

        return httppost("/Taxinvoice/" + KeyType.name(), CorpNum, PostData,
                null, TaxinvoiceInfo[].class);
    }
1144500
public Response checkCertValidation(String CorpNum) throws PopbillException{
		if (CorpNum == null || CorpNum.isEmpty())
			throw new PopbillException(-99999999, "연동회원 사업자번호(CorpNum)가 입력되지 않았습니다.");
		
		return httpget("/HomeTax/Cashbill/CertCheck", CorpNum, null, Response.class); 
	}
1147
@Override
	public Response issue(String CorpNum, String MgtKey, String Memo,
			String UserID) throws PopbillException {
		if (MgtKey == null || MgtKey.isEmpty())
			throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다.");

		String PostData = toJsonString(new MemoRequest(Memo));

		return httppost("/Cashbill/" + MgtKey, CorpNum, PostData,
				UserID, "ISSUE", Response.class);
	}
693523
@Override
	public boolean checkMgtKeyInUse(String CorpNum, int ItemCode, String MgtKey)
			throws PopbillException {
		if (MgtKey == null || MgtKey.isEmpty())
			throw new PopbillException(-99999999, "관리번호가 입력되지 않았습니다.");
		
		try{
			StatementInfo info = httpget("/Statement/" + ItemCode + "/" + MgtKey, 
					CorpNum, null, StatementInfo.class);
			
			return (info.getItemKey() == null || info.getItemKey().isEmpty()) == false;
			
			} catch(PopbillException PE){
			if(PE.getCode() == -12000004)
				return false;
			throw PE;
		}
		
	}
1090704
@Override
	public StatementInfo[] getInfos(String CorpNum, int ItemCode,
			String[] MgtKeyList) throws PopbillException {
		if (MgtKeyList == null)
			throw new PopbillException(-99999999, "관리번호 배열이 입력되지 않았습니다.");
		
		String PostData = toJsonString(MgtKeyList);
		
		return httppost("/Statement/" + ItemCode, CorpNum, 
					PostData, null, StatementInfo[].class);
	}
1340763
public String requestJob(String CorpNum, QueryType queryType, String SDate, String EDate, String UserID) throws PopbillException {
		
		if (SDate == null || SDate.isEmpty())
			throw new PopbillException(-99999999, "시작일자가 입력되지 않았습니다.");
		if (EDate == null || EDate.isEmpty())
			throw new PopbillException(-99999999, "종료일자가 입력되지 않았습니다.");
		
		JobIDResponse response = httppost("/HomeTax/Cashbill/" + queryType.name() 
				+"?SDate=" + SDate +"&EDate=" + EDate ,CorpNum, null, UserID, JobIDResponse.class);
		
		return response.jobID;
	}
229583
def getInfos(self, CorpNum, MgtKeyList):
        
        if MgtKeyList == None or len(MgtKeyList) < 1:
            raise PopbillException(-99999999, "관리번호가 입력되지 않았습니다.")

        postData = self._stringtify(MgtKeyList)

        return self._httppost('/Cashbill/States', postData, CorpNum)
1315275
@Override
	public Response checkIsMember(String CorpNum, String LinkID)
			throws PopbillException {

		return httpget("/Join?CorpNum=" + CorpNum + "&LID=" + LinkID, null,
				null, Response.class);
	}