고객의 동의를 받아야하는 계약・동의 원문이 다수여도 한 번의 서명으로 간편하게 인증을 끝낼 수 있습니다. 보험가입, 대출신청 등 다양하게 활용 가능합니다.
서버 인증을 위한 Access Token을 발급받는 API 입니다. 인증 방식 살펴보기
이미 유효한 토큰을 가지고 있는 상태에서 새로운 토큰 발급 API 를 반복 호출하지 마세요.
EndPoint
POST /token
요청
curl --request POST 'https://oauth2.cert.toss.im/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=test_a8e23336d673ca70922b485fe806eb2d' \
--data-urlencode 'client_secret=test_418087247d66da09fda1964dc4734e453c7cf66a7a9e3' \
--data-urlencode 'scope=ca'
요청 헤더
- Content-Type 필수 · String
application/x-www-form-urlencoded
요청 파라미터
- grant_type 필수
client_credentials
- scope 필수
ca
- client_id 필수
고객사에 발급된 클라이언트 아이디
- client_secret 필수
고객사에 발급된 클라이언트 시크릿
응답
{
"access_token": "eyJraWQiOiJjZXJ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJ0ZXN0X2E4ZTIzMzM2ZDY3M2NhNzA5MjJiNDg1ZmU4MDZlYjJkIiwiYXVkIjoidGVzdF9hOGUyMzMzNmQ2NzNjYTcwOTIyYjQ4NWZlODA2ZWIyZCIsIm5iZiI6MTY0OTIyMjk3OCwic2NvcGUiOlsiY2EiXSwiaXNzIjoiaHR0cHM6XC9cL2NlcnQudG9zcy5pbSIsImV4cCI6MTY4MDc1ODk3OCwiaWF0IjoxNjQ5MjIyOTc4LCJqdGkiOiI4MDNjNDBjOC1iMzUxLTRmOGItYTIxNC1iNjc5MmNjMzBhYTcifQ.cjDZ0lAXbuf-KAgi3FlG1YGxvgvT3xrOYKDTstfbUz6CoNQgvd9TqI6RmsGZuona9jIP6H12Z1Xb07RIfAVoTK-J9iC5_Yp8ZDdcalsMNj51pPP8wso86rn-mKsrx1J5Rdi3GU58iKt0zGr4KzqSxUJkul9G4rY03KInwvl692HU19kYA9y8uTI4bBX--UPfQ02G0QH9HGTPHs7lZsISDtyD8sB2ikz5p7roua7U467xWy4BnRleCEWO2uUaNNGnwd7SvbjhmsRZqohs9KzDUsFjVhSiRNdHL53XJQ5zFHwDF92inRZFLu6Dw8xttPtNHwAD1kT84uXJcVMfEHtwkQ",
"scope": "ca",
"token_type": "Bearer",
"expires_in": 31536000
}
전자서명을 시작하기 위한 API로서 토스 인증 서버에서 txId
를 발급합니다.
EndPoint
POST /api/v2/sign/docs/request
Case1. 앱 푸쉬를 이용해서 서명 요청하기
curl --location --request POST 'https://cert.toss.im/api/v2/sign/docs/request' \
--header 'Authorization: Bearer eyJraWQiOiJjZXJ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJ0ZXN0X2E4ZTIzMzM2ZDY3M2NhNzA5MjJiNDg1ZmU4MDZlYjJkIiwiYXVkIjoidGVzdF9hOGUyMzMzNmQ2NzNjYTcwOTIyYjQ4NWZlODA2ZWIyZCIsIm5iZiI6MTY0OTIyMjk3OCwic2NvcGUiOlsiY2EiXSwiaXNzIjoiaHR0cHM6XC9cL2NlcnQudG9zcy5pbSIsImV4cCI6MTY4MDc1ODk3OCwiaWF0IjoxNjQ5MjIyOTc4LCJqdGkiOiI4MDNjNDBjOC1iMzUxLTRmOGItYTIxNC1iNjc5MmNjMzBhYTcifQ.cjDZ0lAXbuf-KAgi3FlG1YGxvgvT3xrOYKDTstfbUz6CoNQgvd9TqI6RmsGZuona9jIP6H12Z1Xb07RIfAVoTK-J9iC5_Yp8ZDdcalsMNj51pPP8wso86rn-mKsrx1J5Rdi3GU58iKt0zGr4KzqSxUJkul9G4rY03KInwvl692HU19kYA9y8uTI4bBX--UPfQ02G0QH9HGTPHs7lZsISDtyD8sB2ikz5p7roua7U467xWy4BnRleCEWO2uUaNNGnwd7SvbjhmsRZqohs9KzDUsFjVhSiRNdHL53XJQ5zFHwDF92inRZFLu6Dw8xttPtNHwAD1kT84uXJcVMfEHtwkQ' \
--header 'Content-Type: application/json' \
# 세션 키는 매 요청 시 새로 생성해야 합니다.
--data-raw '{
"requestType" : "USER_PERSONAL",
"triggerType" : "PUSH",
"userName": "v1$dee37038-24d3-44df-960d-6ca9d456c310$XRoDvtmNauTj/tIdBnvyWt9J1GT77z7Kow==",
"userPhone": "v1$dee37038-24d3-44df-960d-6ca9d456c310$h5KzYWcms2VfiR2cGsoVO0infPotGpbYYIoh",
"userBirthday": "v1$dee37038-24d3-44df-960d-6ca9d456c310$hpq6YWEksWlV6F9actErr8TSl7mLqTfD",
"sessionKey" : "v1$dee37038-24d3-44df-960d-6ca9d456c310$OLw0wMAqvXRXUnuUB+SAlCANzztg8ztUE2/Lb/ydWJDbXuQCVyWwirDKBUewTRsPBBzszY6fY/utN0wNZw3h9YDAvwqpB4e36fNxHUQdzOKw3qm3bNNk0GwNHqcw5CjmzXdwmmGYNfsCq619vzvJxrqSJAhB+kYU4AWZsjfZf56EsyCHyjXswiL4XXGcj/AMD71Fq9wCv61L/Aja+xxLDZJFA1skAqMyk7WWm/Vv0CZOqflqUVodJKzOEPl3/xLQapEbjnLK4nIVnajJtsgEiW/SFWM8o1Q+bdKlAV5yVEcfZzpu9A67XoPnLxmeH2+fybS6gjOgZQ2nXDD+gQ5s4kBBoXIvUphvtyf2Ct7YDvu8M7gfi2Vr+gz6816jmLwZnUCJv3GM1t7a05MDHY50C7D+2oK19W+DquELcbRuLSsl3N19BFk9vtzH3DuTU3Kic3b/nVkIJac50oYS1/ceSF6PNHW2yVtcipsCPa2E/e4ZEfJpJLeSOVj4/d80mhaorldCZ4KyNruw2n0kLpXQI4/cojfZ5qkppYa9veECF28UNo5dbeCs9/ZPtziQ8sgNejt89pEwP7WvGBGvYQK/Oc7VaIij34POPXAYxSPY6c/+Tw0IWPymx6m93WFTZMbeoWrisyYq3KOSv/SUBU1yezEOD00DuVW4btnVNTHFeGg=",
"serviceName": "토스 서비스 이용약관",
"docList": [
{
"docTitle" : "통합 금융정보 서비스 약관",
"doc" : "본 약관은 주식회사 비바리퍼블리카(이하 회사)가 제공하는 통합 금융정보 서비스 또는 전자문서 서비스(이하 서비스)의 이용과 관련하여, 회사와 회원 간의 권리와 의무 및 책임사항과 서비스 이용조건 및 절차 등 기본적 사항을 규정함을 목적으로 합니다.(이하생략)",
"docType": "TEXT",
"docEncrypted" : false,
"signatureType": "PKCS7",
"order" : 1
},
{
"docTitle" : "이용자의 권리 및 유의사항",
"doc" : "회원은 개인신용정보의 주체이며, 당사에서는 정보주체인 회원의 권리를 보호하기 위해 아래와 같은 이용자 보호 제도를 시행하고 있습니다.(이하생략)",
"docType": "TEXT",
"docEncrypted" : false,
"signatureType": "PKCS7",
"order" : 2
}
]
}'
Case 2. 토스 서버에서 생성하는 앱스킴을 이용해서 서명 요청하기
curl --location --request POST 'https://cert.toss.im/api/v2/sign/docs/request' \
--header 'Authorization: Bearer eyJraWQiOiJjZXJ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJ0ZXN0X2E4ZTIzMzM2ZDY3M2NhNzA5MjJiNDg1ZmU4MDZlYjJkIiwiYXVkIjoidGVzdF9hOGUyMzMzNmQ2NzNjYTcwOTIyYjQ4NWZlODA2ZWIyZCIsIm5iZiI6MTY0OTIyMjk3OCwic2NvcGUiOlsiY2EiXSwiaXNzIjoiaHR0cHM6XC9cL2NlcnQudG9zcy5pbSIsImV4cCI6MTY4MDc1ODk3OCwiaWF0IjoxNjQ5MjIyOTc4LCJqdGkiOiI4MDNjNDBjOC1iMzUxLTRmOGItYTIxNC1iNjc5MmNjMzBhYTcifQ.cjDZ0lAXbuf-KAgi3FlG1YGxvgvT3xrOYKDTstfbUz6CoNQgvd9TqI6RmsGZuona9jIP6H12Z1Xb07RIfAVoTK-J9iC5_Yp8ZDdcalsMNj51pPP8wso86rn-mKsrx1J5Rdi3GU58iKt0zGr4KzqSxUJkul9G4rY03KInwvl692HU19kYA9y8uTI4bBX--UPfQ02G0QH9HGTPHs7lZsISDtyD8sB2ikz5p7roua7U467xWy4BnRleCEWO2uUaNNGnwd7SvbjhmsRZqohs9KzDUsFjVhSiRNdHL53XJQ5zFHwDF92inRZFLu6Dw8xttPtNHwAD1kT84uXJcVMfEHtwkQ' \
--header 'Content-Type: application/json' \
# 세션 키는 매 요청 시 새로 생성해야 합니다.
--data-raw '{
"requestType" : "USER_CI",
"triggerType" : "APP_SCHEME",
"userCi" : "v1$27d72275-2957-4eff-8e62-7413e42f15ab$GnebSTUmqL6jpXVam1UwdsMDE4375ikDePjAiEPAhQ/RhmFdJZFXTz0aCIi53yQnxM+nGdNIk6V2ERaO8NCRQhnVAGOhMlNBlgLqRo2Cc30hNciJDo6yAo6b1thcamTG+TjrD63TkOY=",
"sessionKey" : "v1$27d72275-2957-4eff-8e62-7413e42f15ab$I3fvkHr8DeSv/8WcIZfSLjfAiN83zz0W8tnjXw0aHeZA8CHGwV0N+tj+4YIT3B0QhICkHLBTiMVitzAkBHV3PYkQz5U5hKtBmUCM1uqCY2VxUQ+Mmc5GzDH/tKU9Tu648/oTeQhqtNOgi9hPm2/7v8Tu0zlqBO7TXRZhVfDqxAGwGWnJErxbxrEOYvibU8jkKGFRMGhUsrlYfdUEANVkbYrYMY/a06BC6sOHs5OVv5B3mKlTmvGBR8002CTLAOy0reqzpMFWO9EfkwuLYRIvXvu7zgf7bcjKPRXg/q0G+4bq9qExWd8YZ2tvmewcr+oJkkq5m2R8YJsoJgClmPogpICGHLISqbUtZ+01CUTguJffuEucBOsy5bWUBU9ocPmiytASwFFYcjXWKApTsUpXyY+DxPMGkC3X+W4xCLM2DY8iPvqmXK6On/9NTlQyyjcBuOijJgFlU9YPvi5mz4h8KVLmNVr9E1aZyQtbUa9Fo1eLAP//jO3PGPyA3EwqLllwpl5zn+RkEvFSny8RPQtlQbalVcMlEmq/bDO8seWHz/wcNi7+OxUzTiJGqIH19btCBMgSC8p+Hgn+EWXLKPcZDemSidbhtQF+Rw1YaYoiiuV1uPgWqa1B07YdL+W0yMTB4v+TKbUzWLEIwZOgAxAvVUjOUdrBuGwGPZ1McfiyIfU=",
"serviceName": "토스 서비스 이용약관",
"docList": [
{
"docTitle" : "통합 금융정보 서비스 약관",
"doc" : "본 약관은 주식회사 비바리퍼블리카(이하 회사)가 제공하는 통합 금융정보 서비스 또는 전자문서 서비스(이하 서비스)의 이용과 관련하여, 회사와 회원 간의 권리와 의무 및 책임사항과 서비스 이용조건 및 절차 등 기본적 사항을 규정함을 목적으로 합니다.(이하생략)",
"docType": "TEXT",
"docEncrypted" : false,
"signatureType": "PKCS7",
"order" : 1
},
{
"docTitle" : "이용자의 권리 및 유의사항",
"doc" : "회원은 개인신용정보의 주체이며, 당사에서는 정보주체인 회원의 권리를 보호하기 위해 아래와 같은 이용자 보호 제도를 시행하고 있습니다.(이하생략)",
"docType": "TEXT",
"docEncrypted" : false,
"signatureType": "PKCS7",
"order" : 2
}
]
}'
요청 파라미터
- requestType String
USER_PERSONAL : 고객의 이름, 생년월일, 전화번호 정보를 기반으로 인증 요청 (암호화된 userName, userPhone, userBirthday 정보 필수)
USER_CI : 고객사에서 관리하는 고객의 CI 정보를 기반으로 인증 요청 (암호화된 userCi 정보 필수)
USER_CI 값으로 요청되는 경우 서명 결과조회 API 응답에서 CI, DI를 수신할 수 없습니다.
- triggerType 필수 · String
- PUSH : 토스 앱 푸쉬를 이용해서 고객의 토스 앱으로 직접 푸쉬를 발송하고 인증을 진행하는 방식
- APP_SCHEME : 토스 인증 서버에서 인증 결과로 전달하는 OS별 앱스킴을 고객사 서버에서 직접 호출하고 인증을 진행하는 방식
- userName String
requestType이
USER_PERSONAL
인 경우에만 필수로 전달하는 고객의 이름평문이 아닌 반드시 암호화된 값으로 전달해야 합니다. 개인정보 암복호화 확인하기
- userPhone String
requestType이
USER_PERSONAL
인 경우에만 필수로 전달하는 고객의 휴대폰번호로 문자 포함없이 순수한 숫자형태로 전달 필요평문이 아닌 반드시 암호화된 값으로 전달해야 합니다. 개인정보 암복호화 확인하기
- userBirthday String
requestType이
USER_PERSONAL
인 경우에만 필수로 전달하는 고객의 생년월일 8자리 YYYYMMDD형식평문이 아닌 반드시 암호화된 값으로 전달해야 합니다. 개인정보 암복호화 확인하기
- sessionKey String
API에서 사용자의 개인정보 전달이 필요한 경우 즉, requestType이
USER_PERSONAL
또는USER_CI
인 경우는 필수 파라미터인증 요청과 응답을 AES 암복호화 할 때 사용되는 세션 키로 매 요청 시 마다 새로 생성해서 암호화된 개인정보와 함께 전달해야 합니다. 세션키 생성 방법 확인하기
- userCi String
requestType이 USER_CI인 경우에만 필수로 전달하는 고객의 CI
평문이 아닌 반드시 암호화된 값으로 전달해야 합니다. 개인정보 암복호화 확인하기
- serviceName 필수 · String
고객의 토스 앱 인증화면에 보이는 서비스 이름으로 계약서 제목 또는 동의문 제목을 포함하면 좋습니다.
최대 50자 까지 가능합니다.
- docList Array
전자서명 원문 이력이 담기는 배열입니다.
- docTitle String
고객의 토스 앱 인증화면에 보이는 계약・동의 문서의 제목
- doc String
고객의 토스 앱 인증화면에서 문서의 제목(docTitle)을 눌렀을 때 나오는 상세한 계약・동의 원문 내용
최대 2,000자 이내의 내용을 권장합니다. 누군가를 특정할 수 있는 개인정보가 포함된 원문이라면 보안을 위해 원문 암호화가 필요합니다.
개인정보 암복호화 확인하기 - docType String
원문의 형태
TEXT : 원문 내용을 그대로 보여주는 텍스트 형태
HTML : 원문 내용을 HTML 형태로 보여주는 형태
PDF : PDF 서명을 위해 원문 내용을 보여주지 않고 hash값만 서명하는 형태
- docEncrypted String
원문 암호화 여부
원문(doc)에 고객 개인정보를 포함한다면
true
로 선언하고,doc
에 포함된 원문은 모두 암호화된 값으로 전달해야 합니다. 그 외의 경우는 기본이false
입니다. - signatureType String
전자서명 방식으로 기본은
PKCS7
으로 고정PDF 등 원문의 크기가 큰 전자서명을 사용하는 경우
PKCS7_NO_CONTENT_WITH_ATTR
으로 선언하고 해당 PDF 컨텐츠를 hash한 후에 원문(doc)을 반드시 base64 encode 요청값으로 전달해야 합니다. - order 필수 · Number
고객의 토스 앱 인증화면에 보여지는 원문의 순서
1
부터 숫자 형태로 나열을 시작 - expireSeconds Number
인증을 할 수 있는 유효시간으로 최대 1800(초)으로 설정 가능
성공응답
// Case1. 앱 푸쉬를 이용해서 서명 요청한 경우의 결과 데이터
// 결과가 조회되는 시점과 동시에 인증 요청으로 전달된 사용자의 토스 앱으로 푸시가 발송됩니다.
{
"resultType": "SUCCESS",
"success": {
"txId": "67ac897f-3a0e-466d-a6f7-c7e4272fd5a9",
"appScheme": null,
"androidAppUri": null,
"iosAppUri": null,
"requestedDt": "2022-03-13T17:52:22+09:00"
}
}
// Case 2. 토스 서버에서 생성하는 앱 스킴을 이용해서 서명 요청한 경우의 결과 데이터
// 생성된 앱스킴 그대로 호출해야 합니다.
{
"resultType": "SUCCESS",
"success": {
"txId": "573ca50b-dfba-4b40-86b7-51bd8759fd1b",
"appScheme": "supertoss://toss-cert/v2/sign/docs?txId=573ca50b-dfba-4b40-86b7-51bd8759fd1b&_minVerAos=5.36.0&_minVerIos=5.10.0",
"androidAppUri": "intent://toss-cert/v2/sign/docs?txId=573ca50b-dfba-4b40-86b7-51bd8759fd1b&_minVerAos=5.36.0&_minVerIos=5.10.0#Intent;scheme=supertoss;package=viva.republica.toss;end",
"iosAppUri": "https://ul.toss.im?scheme=supertoss%3A%2F%2Ftoss-cert%2Fv2%2Fsign%2Fdocs%3FtxId%3D573ca50b-dfba-4b40-86b7-51bd8759fd1b%26_minVerAos%3D5.36.0%26_minVerIos%3D5.10.0",
"requestedDt": "2022-03-13T17:52:22+09:00"
}
}
실패응답
{
"resultType": "FAIL",
"error": {
"errorType": 0,
"errorCode": "CE0003",
"reason": "잘못된 요청입니다.",
"data": {},
"title": null
},
"success": null
}
응답 파라미터
- resultType 필수 · String
요청 결과 (성공: SUCCESS, 실패: FAIL) - errorCode String
요청이 실패한 경우 반환되는 에러코드 (인증 에러코드 확인하기) - reason String
에러코드에 해당하는 에러 메시지 - txId String
서명 요청 트랜잭션 아이디로 거래를 고유할 수 있는 값특정 거래를 고유할 수 있는 값이므로 반드시 저장 관리해야 합니다.
- requestedDt String
서명 요청 시간ISO 8601 형식인
YYYY-MM-DDThh:mm:ss±hh:mm
를 사용합니다. - appScheme String
triggerType이
APP_SCHEME
인 경우에만 전달되는 토스인증 앱 스킴 - androidAppUri String
triggerType이
APP_SCHEME
인 경우에만 전달되는 안드로이드 인증 앱 스킴 값으로 appScheme과 같은 역할을 하지만,Chrome Intent
를 사용하기 때문에 고객사의 추가 기능 구현없이 토스 앱 설치 유무를 판별할 수 있는 장점이 있습니다.
클라이언트에서 호출하는 코드는 아래 가이드를 참고해주세요.
ㄴAndroid Chrome Intent 실행하는 코드
토스앱이 설치되어 있으면 앱스킴을 실행하고 설치 되어있지 않다면 플레이 스토어로 이동해서 토스앱 설치를 유도하는 코드입니다.
val intent = Intent.parseUri(androidAppUri, Intent.URI_INTENT_SCHEME)
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
val marketIntent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("market://details?id=" + intent.`package`)
}
startActivity(marketIntent)
}
- iosAppUri String
triggerType이
APP_SCHEME
인 경우에만 전달되는 iOS 인증 앱 스킴 값으로 appScheme과 같은 역할을 하지만,Universal Link
를 사용하기 때문에 안드로이드와 마찬가지로 고객사의 추가 기능 구현 없이 토스 앱 설치 유무를 판별할 수 있는 장점이 있습니다.
클라이언트에서 호출하는 코드는 아래 가이드를 참고해주세요.
ㄴiOS Universal Link 실행하는 코드
토스앱이 설치되어 있으면 앱스킴을 실행하고 설치 되어있지 않다면 앱 스토어로 이동해서 토스앱 설치를 유도하는 코드입니다.
if let appURL = URL(string: "universal link string") {
UIApplication.shared.open(appURL) { success in
if success {
print("The URL was delivered successfully.")
} else {
print("The URL failed to open.")
}
}
} else {
print("Invalid URL specified.")
}
사용자의 전자서명 상태를 확인하기 위한 API로서 txId
로 현재의 인증 진행 상태를 확인할 수 있습니다.
사용자의 인증 진행상태를 조회하는 용도로 사용할 수 있고, 상태조회 API의 결과 값으로 인증완료 상태를 처리하지 마세요. 토스에서는 결과조회 API를 기준으로 인증완료를 판별합니다.
EndPoint
POST /api/v2/sign/docs/status
요청
curl --location --request POST 'https://cert.toss.im/api/v2/sign/docs/status' \
--header 'Authorization: Bearer eyJraWQiOiJjZXJ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJ0ZXN0X2E4ZTIzMzM2ZDY3M2NhNzA5MjJiNDg1ZmU4MDZlYjJkIiwiYXVkIjoidGVzdF9hOGUyMzMzNmQ2NzNjYTcwOTIyYjQ4NWZlODA2ZWIyZCIsIm5iZiI6MTY0OTIyMjk3OCwic2NvcGUiOlsiY2EiXSwiaXNzIjoiaHR0cHM6XC9cL2NlcnQudG9zcy5pbSIsImV4cCI6MTY4MDc1ODk3OCwiaWF0IjoxNjQ5MjIyOTc4LCJqdGkiOiI4MDNjNDBjOC1iMzUxLTRmOGItYTIxNC1iNjc5MmNjMzBhYTcifQ.cjDZ0lAXbuf-KAgi3FlG1YGxvgvT3xrOYKDTstfbUz6CoNQgvd9TqI6RmsGZuona9jIP6H12Z1Xb07RIfAVoTK-J9iC5_Yp8ZDdcalsMNj51pPP8wso86rn-mKsrx1J5Rdi3GU58iKt0zGr4KzqSxUJkul9G4rY03KInwvl692HU19kYA9y8uTI4bBX--UPfQ02G0QH9HGTPHs7lZsISDtyD8sB2ikz5p7roua7U467xWy4BnRleCEWO2uUaNNGnwd7SvbjhmsRZqohs9KzDUsFjVhSiRNdHL53XJQ5zFHwDF92inRZFLu6Dw8xttPtNHwAD1kT84uXJcVMfEHtwkQ' \
--header 'Content-Type: application/json' \
--data-raw '{
"txId": "e7d6d2ff-856d-4b75-8558-05ef88a98b01"
}'
요청 파라미터
- txId 필수 · String
상태 확인이 필요한 인증 요청 트랜잭션 아이디
성공응답
{
"resultType": "SUCCESS",
"success": {
"txId": "e7d6d2ff-856d-4b75-8558-05ef88a98b01",
"status": "REQUESTED",
"requestedDt": "2022-02-20T20:22:39+13:00"
}
}
실패응답
{
"resultType": "FAIL",
"error": {
"errorType": 0,
"errorCode": "CE3100",
"reason": "존재하지 않는 요청입니다",
"data": {},
"title": null
},
"success": null
}
응답 파라미터
- resultType 필수 · String
요청 결과 (성공: SUCCESS, 실패: FAIL)
- errorCode String
요청이 실패한 경우 반환되는 에러코드 (인증 에러코드 확인하기)
- reason String
에러코드에 해당하는 에러 메시지
- txId String
상태를 조회한 인증 요청 트랜잭션 아이디 - status String
인증 상태의 종류REQUESTED
: 토스 인증서버에서 사용자의 토스 앱으로 인증이 요청된 상태IN_PROGRESS
: 사용자가 인증을 진행 중인 상태COMPLETED
: 고객이 인증을 완료한 상태EXPIRED
: 유효시간 만료로 인증 진행이 불가한 상태
- requestedDt String
최초 서명 요청된 시간ISO 8601 형식인
YYYY-MM-DDThh:mm:ss±hh:mm
를 사용합니다.
사용자의 서명 결과를 확인하기 위한 API로서 txId
로 결과를 조회할 수 있습니다.
사용자 인증을 끝마친 후 60분(1시간) 이내 결과조회를 끝내야 합니다. 60분을 초과한 경우 결과조회가 제한되며 인증요청 API부터 다시 시작해야 합니다.
EndPoint
POST /api/v2/sign/docs/result
Case1. 앱 푸쉬 또는 앱 스킴으로 인증된 거래 결과 조회하기
curl --location --request POST 'https://cert.toss.im/api/v2/sign/docs/result' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJraWQiOiJjZXJ0IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJ0ZXN0X2E4ZTIzMzM2ZDY3M2NhNzA5MjJiNDg1ZmU4MDZlYjJkIiwiYXVkIjoidGVzdF9hOGUyMzMzNmQ2NzNjYTcwOTIyYjQ4NWZlODA2ZWIyZCIsIm5iZiI6MTY0OTIyMjk3OCwic2NvcGUiOlsiY2EiXSwiaXNzIjoiaHR0cHM6XC9cL2NlcnQudG9zcy5pbSIsImV4cCI6MTY4MDc1ODk3OCwiaWF0IjoxNjQ5MjIyOTc4LCJqdGkiOiI4MDNjNDBjOC1iMzUxLTRmOGItYTIxNC1iNjc5MmNjMzBhYTcifQ.cjDZ0lAXbuf-KAgi3FlG1YGxvgvT3xrOYKDTstfbUz6CoNQgvd9TqI6RmsGZuona9jIP6H12Z1Xb07RIfAVoTK-J9iC5_Yp8ZDdcalsMNj51pPP8wso86rn-mKsrx1J5Rdi3GU58iKt0zGr4KzqSxUJkul9G4rY03KInwvl692HU19kYA9y8uTI4bBX--UPfQ02G0QH9HGTPHs7lZsISDtyD8sB2ikz5p7roua7U467xWy4BnRleCEWO2uUaNNGnwd7SvbjhmsRZqohs9KzDUsFjVhSiRNdHL53XJQ5zFHwDF92inRZFLu6Dw8xttPtNHwAD1kT84uXJcVMfEHtwkQ' \
# 세션 키는 매 요청 시 새로 생성해야 합니다.
--data-raw '{
"txId" : "67ac897f-3a0e-466d-a6f7-c7e4272fd5a9",
"sessionKey" : "v1$0df719b9-8f15-4a0a-bb3f-333cb86d6324$aog+SKCvnFByl4sTNiCMWwSXW1f+XB7pfOa3dYhQUK/E78KmXoorbEa1HUzq8bConDFA4ebnAr+dsWugwLJ7KlUVwHWJu6ukXIHDxJ3Fcj8UxpTsIilQbq/uihi+gJXWfY/RJ11JTHgZiE0QhKKSD8qImLbil5YcGIrcpBC/WH5WwVlipyAhmeACgwtqWCU0V92Kzy7m7+NnHDcnleg5ibKSMjKF+T6ZT9HR3Ahtrpjl1kVYwmWhmBcXsVXTUpm5rzemwaWkq0LjjIn6hRN66KrdZ0AO847jIx+jw1OEsIwOyFdoV+Jd/FGfw+QTZfz7KELG2Nn1rHXc2KaeV8nysJA/OLZDk4XM8+rj5OYA75VSgmg2kpgLfkeG+wNEr2fheecL3tIN2vQRLVJZb3lJejoL7AU+jOGPzUE6omKnXVvEkrU81WvxWlbO/ICjU6v72qrwf3p72uwrytkPaXedZ30XpECCUKBHRJBR3UpLdJj3mvafQynO8g3uau1WF3x/xPFTcQFG9uhpxCU0tOjTAZs55+Dds+oNVctzqj6c+8P5K6DWGcN8Qw3m9Cc+Q97Ci+otcGdf889yCBmNI44E2pj07lWiFyGktrZpW9dORnSRDj6dgqeNF4mcpDFSrSIy2V1NnLgt6lHaGuHL3/Jcy792uLpFhM7qTTltSZybKg4="
}'
요청 파라미터
- txId 필수 · String
결과 확인이 필요한 서명 요청 트랜잭션 아이디
- sessionKey String
API에서 사용자의 개인정보 전달이 필요한 경우 즉,
앱 푸쉬
또는앱 스킴
방식으로 인증을 진행한 경우txId
와 함께 sessionKey를 전달해야 합니다. 토스 서버에서 결과조회의 응답으로 암호화된 개인정보를 전달하기 때문입니다.인증 요청과 응답을 AES 암복호화 할 때 사용되는 세션 키로 매 요청 시 마다 새로 생성해서 암호화된 개인정보와 함께 전달해야 하고, 인증 요청에서 사용된 세션 키를 재 사용하지 마세요.
세션키 생성 방법 확인하기
성공응답
// 결과조회 응답에서는 인증을 호출하는 방식에 상관없이 동일한 바디 파라미터를 제공합니다.
{
"resultType": "SUCCESS",
"success": {
"txId": "67ac897f-3a0e-466d-a6f7-c7e4272fd5a9",
"status": "COMPLETED",
"docList": [
{
"docType": "TEXT",
"docTitle": "통합 금융정보 서비스 약관",
"doc": "본 약관은 주식회사 비바리퍼블리카(이하 회사)가 제공하는 통합 금융정보 서비스 또는 전자문서 서비스(이하 서비스)의 이용과 관련하여, 회사와 회원 간의 권리와 의무 및 책임사항과 서비스 이용조건 및 절차 등 기본적 사항을 규정함을 목적으로 합니다.(이하생략)",
"docEncrypted": false,
"signatureType": "PKCS7",
"order": 1
},
{
"docType": "TEXT",
"docTitle": "이용자의 권리 및 유의사항",
"doc": "회원은 개인신용정보의 주체이며, 당사에서는 정보주체인 회원의 권리를 보호하기 위해 아래와 같은 이용자 보호 제도를 시행하고 있습니다.(이하생략)",
"docEncrypted": false,
"signatureType": "PKCS7",
"order": 2
}
],
"signedDocList": [
{
"signedDoc": "MIIJuwYJKoZIhvcNAQcCoIIJrDCCCagCAQExDzANBglghkgBZQMEAgEFADCCAXUGCSqGSIb3DQEHAaCCAWYEggFi67O4IOyVveq0gOydgCDso7zsi53tmozsgqwg67mE67CU66as7Y2867iU66as7Lm0KOydtO2VmCDtmozsgqwp6rCAIOygnOqzte2VmOuKlCDthrXtlakg6riI7Jy17KCV67O0IOyEnOu5hOyKpCDrmJDripQg7KCE7J6Q66y47IScIOyEnOu5hOyKpCjsnbTtlZgg7ISc67mE7IqkKeydmCDsnbTsmqnqs7wg6rSA66Co7ZWY7JesLCDtmozsgqzsmYAg7ZqM7JuQIOqwhOydmCDqtozrpqzsmYAg7J2Y66y0IOuwjyDssYXsnoTsgqztla3qs7wg7ISc67mE7IqkIOydtOyaqeyhsOqxtCDrsI8g7KCI7LCoIOuTsSDquLDrs7jsoIEg7IKs7ZWt7J2EIOq3nOygle2VqOydhCDrqqnsoIHsnLzroZwg7ZWp64uI64ukLijsnbTtlZjsg53rnrUpoIIGJTCCBiEwggQJoAMCAQICA3pZxDANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQGDAJLUjEbMBkGA1UECgwSVml2YSBSZXB1YmxpY2EgSW5jMRIwEAYDVQQLDAlUb3NzIENlcnQxETAPBgNVBAMMCFRvc3MgQ0ExMB4XDTIyMDQyNTA3MzQyMFoXDTI1MDQyNDE0NTk1OVowfDELMAkGA1UEBhMCS1IxGzAZBgNVBAoMElZpdmEgUmVwdWJsaWNhIEluYzESMBAGA1UECwwJVG9zcyBDZXJ0MSgwJgYKCZImiZPyLGQBAQwYNzAwMjcyMzIwMjExMTMwODAyMDA5OTkxMRIwEAYDVQQDDAnquYDsiJjruYgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgG8i/qNNSk4yyckgpVni474LqYLyuceA8cWTLpPO/XuhBxWuKfRRlt1eI65Qzj8e2krzrQqyIj6dc9EsqnRzU1PEcetUV1iqnTrUIBSxlP9cQY7zebjT+4qEGjnyNiFhpaGnyxoo0ZEZqWbb2Yu8WYdsEcBEtaJdF354Vb7x4aXDVFoSzck1w8pRV8FCKk0i0HXEmbFW2kG7X4v7asWXBX7U6mqdvqYs6sjGi3dfUNNaHBMWsbUOwR6T6toZM6glNiNuE9jWE+JjurmjOB1lJaXMAzh5D2gGMJXwYEd3euZ8b8JAvsYO3DeX8Q7yWaJko1PYLdnngTmIzYtZLayQjAgMBAAGjggHVMIIB0TB+BgNVHSMEdzB1gBQg4QRigDoQWELcVIGyTH6M9feqH6FapFgwVjELMAkGA1UEBgwCS1IxGzAZBgNVBAoMElZpdmEgUmVwdWJsaWNhIEluYzESMBAGA1UECwwJVG9zcyBDZXJ0MRYwFAYDVQQDDA1Ub3NzIFJvb3QgQ0ExggECMB0GA1UdDgQWBBSq/VHMrgMQr9tcFckcVAcWxTR5IDAOBgNVHQ8BAf8EBAMCBsAwgYsGA1UdIAEB/wSBgDB+MHwGCyqDGoybIgUBAQEDMG0wKwYIKwYBBQUHAgEWH2h0dHA6Ly9jYS5jZXJ0LnRvc3MuaW0vY3BzLmh0bWwwPgYIKwYBBQUHAgIwMh4wAFQAaABpAHMAIABpAHMAIABUAG8AcwBzACAAYwBlAHIAdABpAGYAaQBjAGEAdABlMFsGA1UdHwRUMFIwUKBOoEyGSmh0dHA6Ly9jYS5jZXJ0LnRvc3MuaW0vY3JsL3Rvc3NfY3JsX2RwMnAyNjczLmNybD9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AuY2VydC50b3NzLmltLzANBgkqhkiG9w0BAQsFAAOCAgEAExkwdFG9hmzM8ZMUqwpuNSj6JKDVc5IQIfRh9a0P+YPRJKxaifwhZG50VvSL8fRGwAgz3BjZpA893EBSDFPFq23sGcPRRmRQtfmFaY5OSEUHr/7U5MuEuVz/weXPSpax1MGcTfNgPhelaxgPQTR/SQ6YBqbex5sVOhGyuKkVDXv71duBD0WFNqkXXKQMN/djDK+bmnlpMbBCoVcaVWCqfvSYDLaDmiA8y6pY1F0aQrtFNNO+tDosEASHYciFUXzV4nNNNL2Cx1VQ2JrIg8yNiubuGG0uyQ21R563uYZ9iTWIoT24aSdSoEsowxYBXSysD45Ux9OabJuqBJov526HW/wEBd1jN1GsAdou8hiEkXOPDuRUNCScAqRvbUL454tuzJjkO2zJB74GwbsHn1Liypn8IeJsPXVWRxcjFPzQUeR95iWSGym2H5sAgi6PRdMiIRy0HLZb/ghZ5oIc2RTiM8MryqG4HQLoTab58hNlv45ckQ4YxExWB6CpKDUlBxMNrF9a72ugYHj0FsULoOY9zcImvMRKYNbA4ddygbReNwt6iU17dvXTuCABvgnrUO12BVLHthAw5IOHaB2PhBkjYWb3xI2l4iT6kBs1pFwqde1Ar9JGrWTNvrz6l9WN3bVCuBeuUK0+1zXnzKU9jRCB5/yOi5d2Jyr0yi4vD2YbHpoxggHuMIIB6gIBATBYMFExCzAJBgNVBAYMAktSMRswGQYDVQQKDBJWaXZhIFJlcHVibGljYSBJbmMxEjAQBgNVBAsMCVRvc3MgQ2VydDERMA8GA1UEAwwIVG9zcyBDQTECA3pZxDANBglghkgBZQMEAgEFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIyMDQyNTE2MTYxM1owLwYJKoZIhvcNAQkEMSIEIKFyiY3XzzElBlqL7p0xvvX6MmvFlNysGL/eGtVgFCa3MA0GCSqGSIb3DQEBAQUABIIBAIqMZf98hvuYKi1LACZNhIRIno0loA9M5KPeDZli9dHA75A1mraZ3E/Gz5/PSr2Xn/VoPVuTcZxvCUrnevDLyTV8taxuhylnb6c7K6omL/AEhBWag+kxjaK8SxMCL3+zEZ7364ui9AL6MVXmQLm120+UaNijnP30Pej7z6aVIioSu/iqSsvbuREGQRd57m8ZvttDVo3ioKzTfVSMtBJ8CJyfMQyYHxtaN4mYVT44m6fl4LZfG9ONZvBpwxtul0pjIfsiY+070DcQRLSlD6hklxn0cwwa9hZU4OvsoHLmXX4Jdla+V1JeHnnvw4zQnwP97V08woYs7vZ3UctpLcPu0uM=",
"signatureType": "PKCS7",
"order": 1
},
{
"signedDoc": "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",
"signatureType": "PKCS7",
"order": 2
}
],
"randomValue": null,
"userCiToken": null,
"completedDt": "2022-04-26T01:16:14+09:00",
"requestedDt": "2022-04-26T01:16:00+09:00",
"personalData": {
"ci": "v1$b88f8717-8e76-4276-bed0-f769a8baf7be$X3g52aAyCBirz0UVp1oNRq0SfGtj66vGtUT3rp1aSdm1h//xmpm7vdf48fbGI2i7VTBj6TKG2rqanP6Yo9MiTQu63C8kLWayzWAMp+RLyXLovvnFb9SxxdblRtZbj5KRNlBWK9t2VXI=",
"name": "v1$b88f8717-8e76-4276-bed0-f769a8baf7be$9oiJBRei1KI/SgXtXGmkfNHu+pdAUHXBxA==",
"birthday": "v1$b88f8717-8e76-4276-bed0-f769a8baf7be$LQgw26ExChwWi8cQQz6GrdMAdMZGyaEI",
"gender": "v1$b88f8717-8e76-4276-bed0-f769a8baf7be$WnREqd1HM/Ci7p+3KIqROusVkYeSAQ==",
"nationality": "v1$b88f8717-8e76-4276-bed0-f769a8baf7be$UH5Kqd3dPV1daxw0i23eMWjeXcXC",
"ci2": null,
"di": "v1$2e161d9d-e620-443e-9a27-8db41cc96cf9$6GKr2zaUWWfI6rpJ6/AV9U4W0S4nhAMFIFLkt5CS6N8Gjb1Oc/dpitkMSSvLroDO5b6zdl9bufGSQ6SiVQdlYN2OWYFBr/Hb4e4AYwQpFxDbpi9ksYt52aFa3G2DwaNOQMUBkyQ1IWc=",
"ciUpdate": null
}
}
}
실패응답
{
"resultType": "FAIL",
"error": {
"errorType": 0,
"errorCode": "CE3101",
"reason": "최종 결과는 2회만 조회할 수 있습니다.",
"data": {},
"title": null
},
"success": null
}
응답 파라미터
- resultType 필수 · String
요청 결과 (성공: SUCCESS, 실패: FAIL)
- errorCode String
요청이 실패한 경우 반환되는 에러코드 (인증 에러코드 확인하기)
- reason String
에러코드에 해당하는 에러 메시지
- txId String
결과를 조회한 서명 요청 트랜잭션 아이디 - status String
COMPLETED
결과 조회가 정상적으로 됐을 때 반환되는 상태
- docList Array
전자서명 원문 이력이 담기는 배열입니다.
- docType String
원문의 형태복수 전자서명 요청에서 선언한
TEXT
또는HTML
입니다. - docTitle String
복수 전자서명 요청에서 전달한 전자서명 원문 제목
- doc String
복수 전자서명 요청에서 전달한 원문 내용
- docEncrypted Boolean
복수 전자서명 요청에서 전달한 원문 암호화 여부
- signatureType String
전자서명 방식으로 기본은
PKCS7
으로 고정 - order Number
복수 전자서명 요청에서 전달한 원문의 순서
- signedDoc Array
전자서명 결과 이력이 담기는 배열입니다.
- signedDoc String
사용자가 서명한 전자서명 정보Base64인코딩된 DER값으로 사용자 식별을 위해
인증서 유효성 확인하는 방법 알아보기txId
와 함께 반드시 저장 관리 해야 합니다. - signatureType String
전자서명 방식으로 기본은
PKCS7
으로 고정 - order String
전자서명된 원문의 순서
- randomValue String
현재 버전에서 미사용으로
null
고정 - userCiToken String
현재 버전에서 미사용으로
null
고정 - completedDt String
사용자가 서명을 끝마친 시간ISO 8601 형식인
YYYY-MM-DDThh:mm:ss±hh:mm
를 사용합니다. - requestedDt String
최초 서명 요청된 시각ISO 8601 형식인
YYYY-MM-DDThh:mm:ss±hh:mm
를 사용합니다. - personalData Object
인증을 진행한 사용자의 개인정보입니다.
토스 테스트 환경에서는 아래 모든 개인정보를 제공하지만 실제 토스 앱으로 테스트한 사용자의 개인정보가 아닌 토스가 생성한 가상 인물의 개인정보를 암호화해서 전달합니다.라이브 환경에서는 사업자가 바로 신청하기에서 신청한 개인정보만
String
형태로 전달됩니다. - ci String
암호화된 사용자의 ci
- name String
암호화된 사용자의 이름
- birthday String
암호화된 사용자의 생년월일 8자리
- gender String
암호화된 사용자의 성별정보로
MALE
또는FEMALE
- nationality String
암호화된 사용자의 국적정보로
LOCAL
또는FOREIGNER
- ci2 String
예측할 수 없는 상황에서 ci 유출 대응을 위한 임시 파리미터로
null
고정 - di String
암호화된 사용자의 di
- ciUpdate String
예측할 수 없는 상황에서 ci 유출 대응을 위한 임시 파리미터로
null
고정