REST 방식을 이용한 카카오톡 비즈메시지 전송 API로 HTTPS 요청을 보낼 수 있는 모든 환경에서 자유롭게 연동하실 수 있습니다. 본 규격을 이용하여 카카오 비즈메시지 서비스 중 알림톡, 친구톡, 브랜드톡을 이용할 수 있습니다.
알림톡/친구톡/브랜드톡 API 연동에 대한 자세한 내용은 아래에서 확인하실 수 있으며, 연동 테스트 신청 및 서비스 이용 상담은 아래의 버튼을 눌러주세요.
※ 브랜드톡 서비스는 CBT 기간으로 현재 이용이 불가능 합니다.
기술정보센터
메시지 발송 주체인 카카오 채널을 카카오 메시지 센터에 등록 후, 발신 프로필 키(Sender Key)을 발급, 해당 키를 메시지에 같이 전송 해야 합니다.
알림톡의 경우, 메시지 발송을 위해, 템플릿과 템플릿 코드를 카카오 메시지 센터에 등록해야 합니다.
REST API는 HTTPS 요청을 보낼 수 있는 환경이라면 어디에서든 이용할 수 있습니다.
다양한 환경의 웹서버에서의 활용(Java, Ruby, Python 등)
iOS, Android 등 다양한 모바일 환경에서 활용
HTTPS METHOD
전송 요청을 위해 HTTPS POST 방식을 제공하며, 전송 응답은 JSON 방식을 사용합니다.
ENCODING
UTF-8 인코딩을 기본으로 제공합니다.
TIMEZONE
본 API에 대한 기준 시간은 한국 표준 시 KST(UTC+9)를 사용합니다.
API 설명
메시지 전송 API
- 메시지 발송을 요청하는 API입니다..
리포트 API
- 메시지 전송 결과를 확인할 수 있는 API입니다.
* 리포트를 수신 하기 위해서는 인포뱅크에서 제공하는 서버 IP에 대한 접근을 허용해야 합니다.
결과 송신 서버 IP 정보 : 211.233.70.224, 211.233.70.225
API URL 정보
인증(토큰 발급) API | https://msggw-auth.supersms.co:9440/auth/v1/token |
---|---|
메시지 전송 API | https://msggw.supersms.co:9443/v1/send/kko |
리포트 API (PUSH) | 인포뱅크에 등록한 리포트 URL 정보 |
- API Response 코드 : REQUEST 후, 바로 응답으로 수신하는 코드
- KAKAO 결과 코드: 알림 톡, 친구 톡 발송 시, 응답 받는 코드.
- MT Failover 결과 코드: MT Failover 적용 시, 수신 받을 수 있는 접수 실패, 리포트 응답코드
API Response 결과 코드
구분 | Http Status |
Error Code |
Error Text | Desc |
---|---|---|---|---|
성공 | 200 | A000 | Success | 접수 성공 * 발송 결과는 리포트 코드 참고 |
* A000는 발송이 아닌 접수 성공 입니다. 접수성공 이나 실제로 메시지를 수신하지 못하였을 경우 대부분 템플릿 불일치(3016)로 실패합니다. * 등록한 템플릿 내용과 실제 발송 내용을 비교하여 확인하시기 바랍니다.(버튼 포함) * 발송 결과를 수신하려면 “리포트 API(PUSH)” 연동해야 합니다. |
||||
인증 | 401 | A001 | Unauthorized client ID | 인가되지 않는 계정 |
401 | A002 | Not Existing client ID | 존재하지 않는 계정 | |
401 | A003 | Not allow MT failover | MT Failover 불가한 계정 | |
401 | A004 | Missing request header. Request Header must have ['X-IB-Client-Id'/'X-IB-Client-Passwd'] OR [Authorization] | Header에 인증 값('X-IB-Client-Id'/'X-IB-Client-Passwd' 또는 'Authorization') 누락 | |
401 | A005 | AccessToken is invalid | 유효하지 않은 인증 토큰 | |
404 | - | No message available | 잘못된 URI접근 | |
형식 오류 | 400 | A100 | response_method is null or Empty | response_method 값이 null |
400 | A101 | response_method is wrong | 잘못된 response_method값 | |
400 | A102 | senderKey is null or Empty or exceeded max senderKey-length |
senderKey가 빈값 | |
400 | A103 | Button's mandotory[Name/Type] is not included |
버튼의 필수 이름, 타입 누락 | |
400 | A104 | Button's mandotory is Empty or exceeded max button_name-length |
버튼 누락 | |
400 | A105 | Button Type is not inappropriate | 잘못된 버튼 타입 | |
400 | A106 | WL Button Type must have url_mobile |
WL 버튼 타입에 필요한 url_mobile 누락 | |
400 | A107 | AL Button Type must have Scheme_android |
AL 버튼 타입에 필요한 Scheme_android 누락 | |
400 | A108 | AL Button Type must have Scheme_ios |
AL 버튼 타입에 필요한 Scheme_ios 누락 | |
400 | A109 | senderId is null or Empty | 수신자 누락 | |
400 | A110 | To Field is null or Empty | 송신자 누락 | |
400 | A111 | content is null or Empty | 빈 메시지 내용 | |
400 | A112 | Image must have img_url | 이미지 사용시 img_url 누락 | |
400 | A113 | msgType is Empty | msgType 누락 | |
400 | A114 | msgType is wrong | 잘못된 MsgType | |
400 | A115 | template_code is null or empty or exceeded max template_code- length |
템플릿 코드 누락 | |
400 | A116 | Exceeded max content- length |
최대 메시지 길이 초과 | |
400 | A117 | Exceeded max senderID length | 최대 송신자 번호 길이 초과 | |
400 | A118 | Exceeded max To length | 최대 수신자 번호 길이 초과 | |
400 | A119 | exceeded max ad_flag-length | ad_flag 길이 초과 | |
400 | A120 | exceeded max user_key-lengthh | user_key 길이 초과 | |
400 | A121 | mt_failover is invalid | mt_failover 값 오류 | |
400 | A122 | exceeded max mt failover content- length |
MT Failover 메시지 길이 제한 오류 | |
400 | A123 | exceeded max wide-length | wide 길이 초과 | |
400 | A124 | FT type must have at least one of fields[to, user_key] | 친구톡 user_key, to 모두 누락 | |
400 | A125 | exceeded max app_user_id-length | user_id 길이 초과 | |
400 | A126 | app_user_id is empty | app_user_id 필드가 있으나 값이 없는 경우 | |
400 | A127 | AL type must have at least one of fields[to, app_user_id] | to/app_user_id 모두 없는 경우 | |
400 | A128 | user_key is empty | user_key 필드가 있으나 값이 없는 경우 | |
400 | A129 | Duplicate group code is empty | (중복 발송 체크 기능 사용 고객사) 중복 그룹 코드 누락 |
|
400 | A130 | Exceeded max payment_code-length | (과금 분리 코드 사용 고객사) 과금 분리 코드 길이 초과 |
|
400 | A131 | wide must have image field. | wide 사용 선택 했으나 이미지가 누락 된 경우 | |
400 | A132 | exceeded max title-length | 타이틀 길이 초과 | |
400 | A133 | 'F' content_type content is not required. | 브랜드톡 '고정형' 타입 사용 시 컨텐츠 입력 불가 | |
400 | A134 | failover_content is required to use failover in [BI/BW] type. | 브랜드톡 failover 사용시 failover_content필수 입력 | |
400 | A135 | request_timeout is null or out of range. [3600-86400] | 브랜드톡 request_timeout 필수 입력 | |
400 | A136 | exceeded max mt failover title-length | MT Failover 메시지 제목 길이 제한 오류 | |
400 | A137 | exceeded max mt failover file-key-length | MT Failover 파일키 길이 제한 오류 | |
400 | A138 | exceeded max ref-length | ref 길이 제한 오류 | |
400 | A139 | content_type is null or empty or exceeded max template_code-length | 브랜드톡 content_type 누락 또는 길이 초과 | |
400 | A140 | content_type is invalid | 브랜드톡 유효하지 않은 content_type | |
400 | A141 | exceeded max targeting-length | 브랜드톡 targeting 길이 초과 | |
400 | A142 | targeting is invalid | 브랜드톡 유효하지 않은 targeting | |
400 | A143 | 'F' content_type does not contain button field | 브랜드톡 '고정형' 타입에 button 필드 입력 한 경우 | |
400 | A144 | 'F' content_type does not contain brandtalk_variable field | 브랜드톡 '고정형' 타입에 변수 필드를 입력 한 경우 | |
400 | A145 | 'V' content_type must have at least one of fields[content, brandtalk_variable] | 브랜드톡 '변수형' 타입에 변수 필드를 누락 한 경우 | |
400 | A146 | 'V' content_type fields cannot be together [content, button], [brandtalk_variable] | 브랜드톡 '변수형' 타입에 전문형 & 변수분리형 필드를 혼용 한 경우 | |
400 | A147 | [BI/BW] button.name is not required | 브랜드톡 ‘변수형’ 타입에 button 필드의 name을 입력 한 경우 | |
400 | A148 | exceeded max currency_type-length | currency_type 길이 초과 | |
400 | A149 | BF Button Type must have biz_form_key | BF 버튼 비즈폼 키 누락 | |
400 | A150 | [FI/FW] type must have image field. | 친구톡이미지/와이드이미지 발송에 이미지가 누락 된 경우 | |
400 | A151 | P3 Button Type must have at least one of fields[oneclick_id, product_id] | 원클릭 결제 플러그인 (발송시 oneclick_id 또는 product_id를 필수로 전달해아 함) | |
400 | A152 | exceeded max header-length | header 길이 초과 | |
400 | A153 | item`s tltle or description is null or Empty | item의 타이틀/부가정보 누락 | |
400 | A154 | exceeded max item`s tltle or description length | item의 타이틀/부가정보 길이 초과 | |
400 | A201 | invalid json format | Json 형식 오류 | |
여신 | 401 | A200 | Exceeded the maximum number of messages that can be sent |
발송 가능 건수 초과 | 기타 | 500 | A999 | Unknown error | 알려지지 않은 에러 |
공통 내부 실패 결과 코드
발생구분 | Status | Error text | Desc |
---|---|---|---|
공통 | T900 | 알수 없는 에러 코드 | 알 수 없는 에러 코드 수신 |
공통 | T997 | 내부 파싱에러 | 시스템 내부 원인으로 파싱 에러 |
공통 | T998 | 내부 발송 취소 | 시스템 내부 원인으로 발송 취소 |
공통 | T999 | 내부 발송 실패 | 시스템 내부 원인으로 발송 실패 |
공통 | T910 | 내부 FAILOVER처리 실패 | 내부 FAILOVER 처리 실패 |
KAKAO 전송 결과 코드
Status | Error text | Desc |
---|---|---|
0000 | - | 정상 발송 |
1001 | NoJsonBody | Request Body가 Json형식이 아님 |
1002 | InvalidHubPartnerKey | 파트너 키가 유효하지 않음 |
1003 | InvalidSenderKey | 발신 프로필 키가 유효하지 않음 |
1004 | NoValueJsonElement | Request BODY(Json)에서 name을 찾을 수 없음 |
1005 | SenderNotFound | 발신프로필을 찾을 수 없음 |
1006 | DeletedSender | 삭제된 발신 프로필 |
1007 | StoppedSender | 차단 상태의 발신 프로필 |
1011 | ContractNotFound | 계약 정보를 찾을 수 없음 |
1012 | InvalidUserKeyException | 잘못된 형식의 유저 키 요청 |
1013 | InvalidAppLink | 유효하지 않은 app연결 |
1014 | InvalidBizNum | 유효하지 않은 사업자번호 |
1015 | TalkUserIdNotFonud | 유효하지 않은 app user id 요청 |
1016 | BizNumNotEqual | 사업자등록번호 불일치 |
1020 | InvalidReceiveUserException | 올바른 유저 식별자 값이 하나도 없는 경우 |
1021 | BlockedProfile | 차단 상태의 카카오톡 채널 (카카오톡 채널 운영툴에서 확인) |
1022 | DeactivatedProfile | 닫힘 상태의 카카오톡 채널 (카카오톡 채널 운영툴에서 확인) |
1023 | DeletedProfile | 삭제된 카카오톡 채널 (카카오톡 채널 운영툴에서 확인) |
1024 | DeletingProfile | 삭제대기 상태의 카카오톡 채널 (카카오톡 채널 운영툴에서 확인) |
1025 | SpammedProfile | 메시지차단 상태의 카카오톡 채널 (카카오톡 채널 운영툴에서 확인) |
1026 | UnableUseMessageType | 해당 msg_type에서 사용할 수 없는 response_method로 요청 (이미지알림톡(AI)는 realtime으로 발송 불가) |
1030 | InvalidParameterException | 잘못된 파라메터 요청 |
1033 | - | 템플릿 타입과 메시지타입 불일치 |
2003 | FailedToSendMessageByNoFriendshipException | 메시지 전송 실패 (테스트 서버에서 카카오톡 채널을 추가하지 않은 경우) |
2004 | FailedToMatchTemplateException | 템플릿 일치 확인 시 오류 발생 (카카오 내부 오류) |
2006 | FailedToMatchSerialNumberPrefixPattern | 시리얼넘버 형식 불일치 |
3000 | UnexceptedExcetpion | 예기치 않은 오류 발생 |
3005 | AckTimeoutException | 메시지를 발송 했으나, 수신확인 안됨 (성공 불 확실) |
3006 | FailedToSendMessageException | 카카오 내부 시스템 오류로 메시지 전송 실패 |
3008 | InvalidPhoneNumberException | 전화번호 오류 |
3010 | JsonParsseExcetpion | Json 파싱 오류 |
3011 | MessageNotFoundException | 메시지가 존재하지 않음 |
3012 | SerialNumberDuplicatedException | 메시지 일련번호가 중복됨 - 메시지 일련 번호는 고유의 값이 부여되어야 함 |
3013 | MessageEmptyException | 빈 메시지 |
3014 | MessageLengthOverLimitException | 메시지 길이 제한 오류 (텍스트 타입 1000자 초과, 이미지 타입 400자 초과) |
3015 | TemplateNotFoundException | 템플릿을 찾을 수 없음 |
3016 | NoMatchedTemplateException | 메시지 내용이 템플릿과 일치하지 않음 |
3018 | NoSendAvailableException | 메시지를 전송할 수 없음 |
3020 | SeenInfoNotFoundException | 메시지 확인 정보를 찾을 수 없음 |
3022 | NoSendAvailableTimeException | 메시지 발송 가능한 시간이 아님 (친구 톡/마케팅 메시지는 08시~ 20시까지 발송 가능) |
3024 | MessageInvaildImageException | 메시지에 포함된 이미지를 전송할 수 없음 |
3025 | ExceedMaxVariableLengthException | 변수 글자수 제한 초과 |
3026 | Button chat_extra(event)-InvalidExtra(EventName)Exception '([A-Za-z0-9_]{1,50})' | 상담/봇 전환 버튼 extra, event 글자수 제한 초과 |
3027 | NoMatchedTemplateButtonException | 메시지 버튼/바로연결이 템플릿과 일치하지 않음 |
3028 | NoMatchedTemplateTitleException | 메시지 강조 표기 타이틀이 템플릿과 일치하지 않음 |
3029 | ExceedMaxTitleLengthException | 메시지 강조 표기 타이틀 길이 제한 초과 (50자) |
3030 | NoMatchedTemplateWithMessageTypeException | 메시지 타입과 템플릿 강조유형이 일치하지 않음 |
3031 | NoMatchedTemplateHeaderException | 헤더가 템플릿과 일치하지 않음 |
3032 | ExceedMaxHeaderLengthException | 헤더 길이 제한 초과(16자) |
3033 | NoMatchedTemplateItemHighlightException | 아이템 하이라이트가 템플릿과 일치하지 않음 |
3034 | ExceedMaxItemHighlightTitleLengthException | 아이템 하이라이트 타이틀 길이 제한 초과(이미지 없는 경우 30자, 이미지 있는 경우 21자) |
3035 | ExceedMaxItemHighlightDescriptionLengthException | 아이템 하이라이트 디스크립션 길이 제한 초과(이미지 없는 경우 19자, 이미지 있는 경우 14자) |
3036 | NoMatchedTemplateItemListException | 아이템 리스트가 템플릿과 일치하지 않음 |
3037 | ExceedMaxItemDescriptionLengthException | 아이템 리스트의 아이템의 디스크립션 길이 제한 초과(23자) |
3038 | NoMatchedTemplateItemSummaryException | 아이템 요약정보가 템플릿과 일치하지 않음 |
3039 | ExceedMaxItemSummaryDescriptionLengthException | 아이템 요약정보의 디스크립션 길이 제한 초과(14자) |
3040 | InvalidItemSummaryDescriptionException | 아이템 요약정보의 디스크립션에 허용되지 않은 문자 포함(통화기호/코드, 숫자, 콤마, 소수점, 공백을 제외한 문자 포함) |
4000 | ResponseHistoryNotFoundException | 메시지 전송 결과를 찾을 수 없음 |
4001 | UnKnownMessageStatusError | 알수 없는 메시지 상태 |
5000 | InvalidTestUser | (테스트 발송) 관리자 혹은 일회성 인증을 받은 사용자가 아님 |
5001 | DailyTestLimitExceeded | (테스트 발송) 일일 발송량 초과 |
7011 | - | 시리얼 넘버 패턴 에러 |
7014 | - | 메시지 유효 시간 초과 에러 |
8512 | - | 수신자 타입 찾을 수 없음 |
8514 | - | request_id 찾을 수 없음 |
8520 | - | 지원하지 않는상품 타입 오류 |
8521 | - | 지원하지 않는 메시지 타입 오류 |
8522 | - | 지원하지 않는 텍스트 유형 오류 |
8523 | - | 지원하지 않는 response method 오류 |
8530 | - | 수신자 목록 사이즈 오류 |
8999 | - | 내부 서버 오류 |
9998 | 현재 서비스를 제공하고 있지 않습니다. | 시스템에 문제가 발생하여 담당자가 확인하고 있는 경우 |
9999 | 시스템에 알수 없는 문제 발생, 담당자 확인중 | 시스템에 문제가 발생하여. 담당자 확인중 |
KAKAO 전송 결과 코드(Polling)
타입 | Status | Desc |
---|---|---|
정상 | MS03 | 수신 완료(사용자 휴대폰이 메시지를 수신) (성공 / 과금) |
에러 | ME09 | 사용자에게 메시지를 발송했으나 수신여부 불투명 (성공불확실 / 비과금) |
MT Failover 접수 실패 코드
http://www.ibizplus.co.kr/technical/datacenter/rest#api03 API Response 결과 코드 및 API Response 수신번호 별 결과코드 참고
MT Failover 코드
http://www.ibizplus.co.kr/technical/datacenter/rest#api03 Report 전송 결과 코드 참고
발송 테스트
테스트를 위하여, 발신 프로필과 카카오톡 채널을 추가한 경우에만, 알림 톡 테스트메시지를 발송 할 수 있습니다.
기술지원 상담
Email support@infobank.net
EMMA 다운로드 | ||
---|---|---|
구분 | 상세 | DOWNLOAD |
시스템OS | Window 32bit (java 1.6이상) | DOWNLOAD |
Window 64bit (java 1.6이상) | DOWNLOAD | |
Unix (java 1.6이상) | DOWNLOAD | |
DBMS | MSSQL | DOWNLOAD |
MySQL (5.x이상, Procedure, InnoDB 필수) | DOWNLOAD | |
Maria | DOWNLOAD | |
Oracle(9i)이상 | DOWNLOAD | |
Tibero | DOWNLOAD | |
DB2 | DOWNLOAD | |
Sybase | DOWNLOAD | |
PostgreSQL | DOWNLOAD |