출금동의 API

웹사이트 또는 모바일로 신청한 자동이체 내역을 확인하고 카카오톡 앱을 사용하여 이용자의 개인정보(이름, 생년월일, 전자서명)로 전자서명하여 출금동의 증빙자료로 이용할 수 있는 카카오 자동이체 출금동의 API 입니다. 개발하는 웹/앱 방식에 따라 카카오톡 채널로 카카오 인증 메시지를 전송하여 인증하는 "채널메시지 인증"과 카카오 앱을 즉시 실행하여 카카오 인증 메시지 전송없이 비밀번호 입력만으로 인증하는 "앱투앱 인증" 방식 중 선택하여 연동할 수 있습니다.

자동이체 출금동의 증빙자료의 금융결제원 제출, 자동이체 출금은 이용기관에서 직접 처리해야 합니다.
전자서명 당사자와 자동이체 출금계좌 예금주의 동일인 체크 의무는 이용기관에게 있습니다.
자동이체 출금동의 증빙자료 금융결제원 제출방법은 어떻게 되나요?
  1. 1) 자동이체 출금동의 검증(VerifyCMS) 함수로 객체의 변수 "signedData"값을 반환받습니다.
  2. 2) 반환받은 "signedData"값을 base64방식으로 디코딩합니다.
  3. 3) 디코딩 후 binary형식으로 구성된 der확장자 파일을 금융결제원에 제출합니다.

1. RequestCMS - 자동이체 출금동의 요청

  • 카카오톡 이용자에게 자동이체 출금동의를 요청합니다.

def requestCMS(self, clientCode, cms):

Parameter

순번 변수명 타입 길이 필수 설명
clientCode str 12 Y 이용기관 코드
cms CMS - Y 자동이체 출금동의 요청 정보

Return CMSReceipt Throws BarocertException

2. GetCMSStatus - 자동이체 출금동의 상태확인

  • 자동이체 출금동의 요청 후 반환받은 접수아이디로 인증 진행 상태를 확인합니다.

def getCMSStatus(self, clientCode, receiptID):

Parameter

순번 변수명 타입 길이 필수 설명
clientCode str 12 Y 이용기관 코드
receiptID str 32 Y 접수 아이디

Return CMSStatus Throws BarocertException

3. VerifyCMS - 자동이체 출금동의 검증

  • 완료된 전자서명을 검증하고 전자서명값(signedData)을 반환 받습니다.

  • 카카오 보안정책에 따라 검증 API는 1회만 호출할 수 있습니다. 재시도시 오류가 반환됩니다.

  • 전자서명 완료일시로부터 10분 이후에 검증 API를 호출하면 오류가 반환됩니다.

이용기관 서버에서는 출금동의 검증을 통해 반환받은 이용자의 개인정보(CI, 성명, 생년월일, 휴대폰번호)와 전자서명을 요청한 이용자의 개인정보를 비교해 올바른 이용자인지 검증해야 합니다.
def verifyCMS(self, clientCode, receiptID):

Parameter

순번 변수명 타입 길이 필수 설명
clientCode str 12 Y 이용기관 코드
receiptID str 32 Y 접수 아이디

Return CMSResult Throws BarocertException

4. 객체정보

4.1. BarocertException

순번 변수명 타입 길이 필수 설명
Code int - Y API 처리에 대한 응답코드
message str - Y API 처리에 대한 응답메시지

4.2. CMS

순번 변수명 타입 길이 필수 설명
receiverHP str 11 Y 수신자 휴대폰번호
→ 하이픈(-) 제외하고 입력
receiverName str 80 Y 수신자 성명
receiverBirthday str 8 Y 수신자 생년월일
→ 형식: yyyyMMdd
reqTitle str 40 Y 인증요청 메시지 제목
extraMessage str 500 N 커스텀 메시지
expireIn int 4 Y 요청 만료시간
→ 최대: 1000초(s) / 권장: 300초(s)
requestCorp str 100 Y 청구기관명
bankName str 100 Y 출금은행명
bankAccountNum str 31 Y 출금계좌번호
bankAccountName str 100 Y 출금계좌 예금주명
bankAccountBirthday str 8 Y 출금계좌 예금주 생년월일
→ 형식: yyyyMMdd
bankServiceType str 4 Y 서비스 종류
  • CMSCMS
  • FIRM펌뱅킹
  • GIRO지로
appUseYN bool - N 앱투앱 인증 방식 이용 여부
  • True앱투앱 인증
  • False채널 메시지 인증 : 기본값
returnURL str 1000 조건부 복귀 URL
→ 앱투앱 인증 이용 호출할 URL 또는 앱스킴

appUseYN=True 경우 필수

4.3. CMSReceipt

순번 변수명 타입 길이 필수 설명
receiptID str 32 Y 접수아이디
scheme str - N 앱스킴

appUseYN=True 경우 반환

4.4. CMSStatus

순번 변수명 타입 길이 필수 설명
receiptID str 32 Y 접수아이디
clientCode str 12 Y 이용기관 코드
state int 1 Y 상태
  • 0대기
  • 1완료
  • 2만료
requestDT str 14 Y 전자서명 요청일시
→ 형식: yyyyMMddHHmmss
viewDT str 14 N 전자서명 조회일시
→ 형식: yyyyMMddHHmmss
completeDT str 14 N 전자서명 완료일시
→ 형식: yyyyMMddHHmmss
expireDT str 14 Y 전자서명 만료일시
→ 형식: yyyyMMddHHmmss
verifyDT str 14 N 전자서명 검증일시
→ 형식: yyyyMMddHHmmss

4.5. CMSResult

순번 변수명 타입 길이 필수 설명
receiptID str 32 Y 접수아이디
state int 1 Y 상태
  • 0대기
  • 1완료
  • 2만료
signedData str - Y 전자서명값
ci str - N AES 암호화 CI
receiverName str - Y AES 암호화 수신자 성명
receiverYear str - Y AES 암호화 수신자 출생년도
→ 형식 : yyyy
receiverDay str - Y AES 암호화 수신자 출생월일
→ 형식 : MMdd
receiverHP str - Y AES 암호화 수신자 휴대폰번호
receiverGender str - Y AES 암호화 수신자 성별
  • MALE남성
  • FEMALE여성