기본 정보
API URL
https://sens.apigw.ntruss.com/brandmessage/v2
API Header
| 항목 | Mandatory | 설명 |
|---|---|---|
| Content-Type | Mandatory | 요청 Body Content Type을 application/json으로 지정 (POST) |
| x-ncp-apigw-timestamp | Mandatory | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타낸 것 API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주 |
| x-ncp-iam-access-key | Mandatory | 포탈 또는 Sub Account에서 발급받은 Access Key ID |
| x-ncp-apigw-signature-v2 | Mandatory | 위 예제의 Body를 Access Key Id와 맵핑되는 SecretKey로 암호화한 서명 HMAC 암호화 알고리즘은 HmacSHA256 사용 |
NAVER CLOUD PLATFORM 인증키 및 Signature 생성 가이드 바로가기
메시지 발송 기본 정보
기본 정보
- SMS Failover는 아직 지원하지 않습니다. (26년 1Q 내 지원 예정)
- 예약 발송은 아직 지원하지 않습니다. (26년 1Q 내 지원 예정)
요청 URL
POST https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/messages
Content-Type: application/json; charset=utf-8
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
Headers
요청 Body
메시지 발송(자유형), 메시지 발송(기본형) 가이드 참조
응답 Body
{
"requestId":"string",
"requestTime":"string",
"statusCode":"string",
"statusName":"string",
"messages":[
{
"messageId":"string",
"countryCode":"string",
"to":"string",
"requestStatusCode":"string",
"requestStatusName":"string",
"requestStatusDesc":"string",
"useSmsFailover":"boolean"
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| requestId | Mandatory | String | 발송 요청 아이디 | |
| requestTime | Mandatory | DateTime | 발송 요청 시간 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| statusCode | Mandatory | String | 요청 상태 코드 | 202 - 성공 그외 - 실패 * HTTP Status 규격을 따름 |
| statusName | Mandatory | String | 요청 상태명 | success - 성공 processing - 처리중 reserved - 예약중 fail - 실패 |
| messages.messageId | Mandatory | String | 메시지 아이디 | |
| messages.countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages.to | Mandatory | String | 수신자번호 | |
| messages.requestStatusCode | Mandatory | String | 발송요청 상태 코드 | A000 - 성공 그외 코드 - 실패(Desc 항목에 실패 사유가 명시) |
| messages.requestStatusName | Mandatory | String | 발송요청 상태명 | success - 성공 fail - 실패 |
| messages.requestStatusDesc | Mandatory | String | 발송요청 상태 내용 | |
| messages.useSmsFailover | Mandatory | Boolean | SMS Failover 사용 여부 |
응답 Status
| HTTP Status | Desc |
|---|---|
| 202 | Accepted (발송 요청 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
메시지 발송 (자유형)
- 타겟팅 코드를 지정해 메시지 대상의 타입을 지정할 수 있습니다.
- M: 고객사의 광고성 정보 수신동의 유저(카카오톡 수신 동의)
- N: 고객사의 광고성 정보 수신동의 유저(카카오톡 수신 동의) - 채널 친구
- I: 고객사의 발송 요청 대상 ∩ 채널 친구
- 브랜드메시지 사용 신청이 완료된 채널에 한해 타겟팅 코드 M, N 발송을 사용할 수 있습니다.
- 타겟팅 코드 M, N 발송 시, 채널에 지정된 080 무료수신거부번호를 사용합니다.
- AC 버튼을 사용할 수 없습니다.
- 야간 발송 제한이 적용됩니다. (20:50 ~ 익일 08:00)
텍스트형(TEXT) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"content":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 텍스트형(TEXT) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].content | Mandatory | String | 최대 1,300자 줄바꿈 최대 99개 |
|
| messages[].buttons | Optional | List of Object | 버튼 정보 | 쿠폰 사용 시 최대 4개, 그 외 최대 5개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 14자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
이미지형(IMAGE) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"content":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"image":{
"imageId":"string",
"imageLink":"string"
},
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 이미지형(IMAGE) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].content | Mandatory | String | 최대 1,300자 줄바꿈 최대 99개 |
|
| messages[].buttons | Optional | List of Object | 버튼 정보 | 쿠폰 사용 시 최대 4개, 그 외 최대 5개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 14자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].image | Optional | Object | 이미지 | 이미지 업로드 참조 |
| messages[].image.imageId | Mandatory | String | 이미지 아이디 | |
| messages[].image.imageLink | Mandatory | String | 이미지 링크 | |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
와이드 이미지형(WIDE_IMAGE) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"content":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"image":{
"imageId":"string",
"imageLink":"string"
},
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 와이드이미지형(WIDE_IMAGE) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].content | Mandatory | String | 최대 1,300자 줄바꿈 최대 99개 |
|
| messages[].buttons | Optional | List of Object | 버튼 정보 | 최대 2개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].image | Optional | Object | 이미지 | 이미지 업로드 참조 |
| messages[].image.imageId | Mandatory | String | 이미지 아이디 | |
| messages[].image.imageLink | Mandatory | String | 이미지 링크 | |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
와이드 아이템 리스트형(WIDE_ITEM_LIST) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"headerContent":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"item":[
{
"title":"string",
"imageId":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 와이드 아이템 리스트형(WIDE_ITEM_LIST) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].headerContent | Mandatory | String | 헤더 | 최대 20자 |
| messages[].buttons | Optional | List of Object | 버튼 정보 | 최대 2개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].item | Mandatory | Object | ||
| messages[].item.list | Mandatory | List of Object | 와이드 리스트 | 최소 3개, 최대 4개 |
| messages[].item.list[].title | Mandatory | String | 아이템 제목 | 1번째 아이템 - Optional - 최대 25자 - 줄바꿈 최대 1개 2~4번째 아이템 - 최대 30자 - 줄바꿈 최대 1개 |
| messages[].item.list[].imageId | Mandatory | String | 이미지 아이디 | 1번째 아이템 - 메인 와이드 아이템 리스트 이미지 2~4번째 아이템 - 서브 와이드 아이템 리스트 이미지 |
| messages[].item.list[].linkMobile | Mandatory | String | 모바일 웹 링크 | 최대 1,000자 |
| messages[].item.list[].linPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].item.list[].schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 |
| messages[].item.list[].schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 |
커머스형(COMMERCE) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"additionalContent":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"image":{
"imageId":"string",
"imageLink":"string"
},
"commerce": {
"title":"string",
"regularPrice":"integer",
"discountPrice":"integer",
"discountRate":"integer",
"discountFixed":"integer"
},
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 커머스형(COMMERCE) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].additionalContent | Optional | String | 부가 내용 | 최대 34자 줄바꿈 최대 1개 |
| messages[].buttons | Mandatory | List of Object | 버튼 정보 | 최소 1개, 최대 2개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].image | Optional | Object | 이미지 | 이미지 업로드 참조 |
| messages[].image.imageId | Mandatory | String | 이미지 아이디 | |
| messages[].image.imageLink | Mandatory | String | 이미지 링크 | |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].commerce | Mandatory | Object | 커머스 정보 | |
| messages[].commerce.title | Mandatory | String | 상품 제목 | 최대 30자 |
| messages[].commerce.regularPrice | Mandatory | Integer | 상품 정상 가격 | 0 ~ 99,999,999 |
| messages[].commerce.discountPrice | Optional | Integer | 상품 할인 가격 | 0 ~ 99,999,999 |
| messages[].commerce.discountRate | Optional | Integer | 상품 할인율 | 0 ~ 100 할인 가격 사용시, 정액 할인 가격 or 상품 할인율 중 하나는 Mandatory |
| messages[].commerce.discountFixed | Optional | Integer | 상품 정액 할인 가격 | 0 ~ 999,999 할인 가격 사용시, 정액 할인 가격 or 상품 할인율 중 하나는 Mandatory |
캐러셀 커머스형(CAROUSEL_COMMERCE) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"carousel": {
"head": {
"headerContent":"string",
"content":"string",
"imageId":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"list": [
{
"additionalContent":"string",
"image":{
"imageId":"string",
"imageLink":"string"
},
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string",
"bizFormId":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"commerce": {
"title":"string",
"regularPrice":"integer",
"discountPrice":"integer",
"discountRate":"integer",
"discountFixed":"integer"
}
}
],
"tail": {
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 캐러셀 커머스형(CAROUSEL_COMMERCE) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].carousel | Mandatory | Object | 캐러셀 정보 | |
| messages[].carousel.head | Optional | Object | 캐러셀 인트로 정보 | |
| messages[].carousel.head.headerContent | Mandatory | String | 헤더 | 최대 20자 |
| messages[].carousel.head.content | Mandatory | String | 내용 | 최대 50자 |
| messages[].carousel.head.imageId | Mandatory | String | 이미지 아이디 | CAROUSEL_COMMERCE 타입 이미지만 사용 가능 캐러셀 리스트 이미지와 비율이 동일해야함 |
| messages[].carousel.head.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 schemeAndroid 또는 schemeIos 사용시, Mandatory |
| messages[].carousel.head.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].carousel.head.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 |
| messages[].carousel.head.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 |
| messages[].carousel.list | Mandatory | List of Object | 캐러셀 리스트 | 캐러셀 인트로(head)를 사용할 경우 최소 1개, 최대 5개 그 외에는 최소 2개, 최대 6개 |
| messages[].carousel.list[].additionalContent | Mandatory | String | 캐러셀 리스트 아이템 부가 내용 | 최대 34자 |
| messages[].carousel.list[].image | Mandatory | Object | 캐러셀 리스트 아이템 이미지 정보 | 이미지 업로드 참조 |
| messages[].carousel.list[].image.imageId | Mandatory | String | 이미지 아이디 | |
| messages[].carousel.list[].image.imageLink | Mandatory | String | 이미지 링크 | 최대 1,000자 |
| messages[].carousel.list[].buttons | Mandatory | List of Object | 버튼 정보 | 최소 1개, 최대 2개 |
| messages[].carousel.list[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].carousel.list[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].carousel.list[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].carousel.list[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].bizFormId | Optional | String | ||
| messages[].carousel.list[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].carousel.list[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].carousel.list[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].carousel.list[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.list[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].carousel.list[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.list[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.list[].commerce | Mandatory | Object | 커머스 정보 | |
| messages[].carousel.list[].commerce.title | Mandatory | String | 상품 제목 | 최대 30자 |
| messages[].carousel.list[].commerce.regularPrice | Mandatory | Integer | 상품 정상 가격 | 0 ~ 99,999,999 |
| messages[].carousel.list[].commerce.discountPrice | Optional | Integer | 상품 할인 가격 | 0 ~ 99,999,999 |
| messages[].carousel.list[].commerce.discountRate | Optional | Integer | 상품 할인율 | 0 ~ 100 할인 가격 사용시, 정액 할인 가격 or 상품 할인율 중 하나는 Mandatory |
| messages[].carousel.list[].commerce.discountFixed | Optional | Integer | 상품 정액 할인 가격 | 0 ~ 999,999 할인 가격 사용시, 정액 할인 가격 or 상품 할인율 중 하나는 Mandatory |
| messages[].carousel.tail | Optional | Object | 캐러셀 더보기 정보 | |
| messages[].carousel.tail.linkMobile | Mandatory | String | 모바일 웹 링크 | 최대 1,000자 |
| messages[].carousel.tail.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].carousel.tail.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 |
| messages[].carousel.tail.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 |
캐러셀 피드형(CAROUSEL_FEED) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"carousel": {
"list": [
{
"headerContent":"string",
"message":"string",
"image":{
"imageId":"string",
"imageLink":"string"
},
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string",
"bizFormId":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
],
"tail": {
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 캐러셀피드형(CAROUSEL_FEED) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].carousel | Mandatory | Object | 캐러셀 정보 | |
| messages[].carousel.list | Mandatory | List of Object | 캐러셀 리스트 | 최소 2개, 최대 6개 |
| messages[].carousel.list[].headerContent | Mandatory | String | 캐러셀 리스트 아이템 제목 | 최대 20자 |
| messages[].carousel.list[].message | Mandatory | String | 캐러셀 리스트 아이템 메시지 | 최대 180자 |
| messages[].carousel.list[].image | Mandatory | Object | 캐러셀 리스트 아이템 이미지 정보 | 이미지 업로드 참조 |
| messages[].carousel.list[].image.imageId | Mandatory | String | 이미지 아이디 | |
| messages[].carousel.list[].image.imageLink | Mandatory | String | 이미지 링크 | 최대 1,000자 |
| messages[].carousel.list[].buttons | Mandatory | List of Object | 버튼 정보 | 최대 1개, 최대 2개 |
| messages[].carousel.list[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].carousel.list[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].carousel.list[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].carousel.list[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].carousel.list[].buttons[].bizFormId | Optional | String | ||
| messages[].carousel.list[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].carousel.list[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].carousel.list[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].carousel.list[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.list[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].carousel.list[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.list[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].carousel.tail | Optional | Object | 캐러셀 더보기 정보 | |
| messages[].carousel.tail.linkMobile | Mandatory | String | 모바일 웹 링크 | 최대 1,000자 |
| messages[].carousel.tail.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].carousel.tail.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 |
| messages[].carousel.tail.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 |
프리미엄 동영상형(PREMIUM_VIDEO) 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"isAdult":"boolean",
"messages":[
{
"countryCode":"string",
"to":"string",
"content":"string",
"headerContent":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"video": {
"thumbnailId":"string",
"videoUrl":"string"
}
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 프리미엄 동영상형(PREMIUM_VIDEO) |
| isAdult | Optional | Boolean | 대상 연령 | 성인: true 전체: false (default) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].content | Optional | String | 최대 1,300자 줄바꿈 최대 99개 |
|
| messages[].headerContent | Optional | String | 헤더 | 최대 20자 |
| messages[].buttons | Optional | List of Object | 버튼 정보 | 최대 1개 |
| messages[].buttons[].type | Mandatory | String | 버튼 Type | |
| messages[].buttons[].name | Mandatory | String | 버튼명 | 최대 8자 |
| messages[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | WL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].linkPc | Optional | String | PC 웹 링크 | WL 타입일 경우, Optional이 최대 1,000자 |
| messages[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | AL 타입일 경우, Mandatory 최대 1,000자 |
| messages[].coupon | Optional | Object | 쿠폰 정보 | |
| messages[].coupon.title | Mandatory | String | 쿠폰 제목 | 5가지 형식만 사용 가능 - - 배송비 할인 쿠폰 - |
| messages[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| messages[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | 최대 1,000자 linkMobile 필드를 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.linkPc | Optional | String | PC 웹 링크 | 최대 1,000자 |
| messages[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | 최대 1,000자 schemeAndroid 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].coupon.schemeIos | Optional | String | iOS 앱 링크 | 최대 1,000자 schemeIos 필드에 채널 쿠폰 URL(형식: alimtalk=coupon://)을 사용할 경우 나머지 필드는 Optional |
| messages[].video | Mandatory | Object | 동영상 정보 | |
| messages[].video.thumbnailId | Mandatory | String | 동영상 썸네일용 이미지 아이디 | 최대 500자 |
| messages[].video.videoUrl | Mandatory | String | 카카오TV 동영상 URL | 최대 500자 카카오TV에 업로드된 동영상만 사용 가능 |
버튼 정보
| Type | Name | Mandatory | 비고 |
|---|---|---|---|
| WL | 웹 링크 | linkMobile | http:// 또는 https://로 시작하는 URL |
| AL | 앱 링크 | linkMobile, schemeIos, schemeAndroid 중 2개 | |
| BF | 비지니스 폼 | bizFormId | 버튼명(name)에 5가지 형식만 사용 가능 - 톡에서 설문하기 - 톡에서 응모하기 - 톡에서 예약하기 TEXT, IMAGE 템플릿의 경우 첫 번째, 그 외에는 마지막 버튼으로만 사용 가능 AC 버튼과 함께 사용하는 경우, AC 순서가 우선 (AC -> BF or BF -> AC) 최대 1개만 사용 가능 |
| AC | 채널 추가 | ||
| BK | 봇 키워드 | ||
| MD | 메시지 전달 | ||
| BC | 상담톡 전환 | 상담톡을 이용하는 채널만 사용 가능 | |
| BT | 챗봇 전환 | 카카오 오픈 빌더의 챗봇을 사용하는 채널만 사용 가능 |
메시지 발송 (기본형)
- 템플릿을 사용한 발송입니다.
- 타겟팅 코드를 지정해 메시지 대상의 타입을 지정할 수 있습니다.
- M: 고객사의 광고성 정보 수신동의 유저(카카오톡 수신 동의)
- N: 고객사의 광고성 정보 수신동의 유저(카카오톡 수신 동의) - 채널 친구
- I: 고객사의 발송 요청 대상 ∩ 채널 친구
- 브랜드메시지 사용 신청이 완료된 채널에 한해 타겟팅 코드 M, N 발송을 사용할 수 있습니다.
- 타겟팅 코드 M, N 발송 시, 채널에 지정된 080 무료수신거부번호를 사용합니다.
- BC, BT 버튼을 사용할 수 없습니다.
- 야간 발송 제한이 적용됩니다. (20:50 ~ 익일 08:00)
기본형 발송
요청 Body
{
"plusFriendId":"string",
"messageType":"string",
"templateCode":"string",
"targeting":"string",
"messages":[
{
"countryCode":"string",
"to":"string",
"templateParameters": "object"
}
]
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 텍스트형(TEXT) 이미지형(IMAGE) 와이드 이미지형(WIDE_IMAGE) 와이드 아이템 리스트형(WIDE_ITEM_LIST) 캐러셀 피드형(CAROUSEL_FEED) 캐러셀 커머스형(CAROUSEL_COMMERCE) 커머스형(COMMERCE) 프리미엄 동영상형(PREMIUM_VIDEO) |
| templateCode | Mandatory | String | 템플릿 코드 | |
| targeting | Optional | String | 타겟팅 타입 | M N I (defaut) |
| messages | Mandatory | List of Object | 메시지 정보 | 아래 항목들 참조 (messages.XXX) 최대 100개 |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].templateParameters | Optional | Object | 템플릿 파라미터 | 템플릿에 치환 변수 포함시, Mandatory |
메시지 조회
발송 요청 조회
메시지 발송 요청을 조회합니다.
요청 URL
GET https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/messages?requestId=
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
Parameters
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| requestId | Mandatory | String | 요청 아이디 | 발송 요청 아이디 |
| plusFriendId | Mandatory | String | 카카오 채널 | 등록된 채널 명 |
| messageType | Optional | String | 메시지 타입 | 텍스트형(TEXT) 이미지형(IMAGE) 와이드 이미지형(WIDE_IMAGE) 와이드 아이템 리스트형(WIDE_ITEM_LIST) 캐러셀 피드형(CAROUSEL_FEED) 캐러셀 커머스형(CAROUSEL_COMMERCE) 커머스형(COMMERCE) 프리미엄 동영상형(PREMIUM_VIDEO) |
| templateCode | Optional | String | 템플릿 코드 | |
| requestStartTime | Mandatory | String | 조회 시간 시작 시각 | yyyy-MM-dd'T'HH:mm:ss |
| requestEndTime | Mandatory | String | 조회 시간 종료 시각 | yyyy-MM-dd'T'HH:mm:ss |
| completeStartTime | Mandatory | String | 발송 완료 시작 시간 | yyyy-MM-dd'T'HH:mm:ss |
| completeEndTime | Mandatory | String | 발송 완료 종료 시간 | yyyy-MM-dd'T'HH:mm:ss |
| messageId | Optional | String | 메시지 아이디 | |
| requestStatusName | Optional | String | 요청 상태 | success, fail |
| messageStatusName | Optional | String | 요청 상태 | success, processing, fail |
| to | Optional | String | 메세지 수신 번호 | 붙임표 (-)를 제외한 번호 |
| nextToken | Optional | String | 다음 페이지 토큰 | 아래 참고 내용 참조 |
| pageSize | Optional | Integer | 페이지 크기 | default: 20, max: 100 requestId를 포함한 조회시, default: 100 |
참고
- 메시지 발송 이력은 최근 30일 이내의 이력만 조회할 수 있습니다.
- requestId 또는 requestStartTime + requestEndTime 또는 completeStartTime + completeEndTime 중에 하나는 필수입니다.
- requestStartTime + requestEndTime과 completeStartTime + completeEndTime은 동시에 사용할 수 없습니다.
- requestStartTime ~ requestEndTime의 조회 범위는 최대 31일로 제한됩니다.
- completeStartTime ~ completeEndTime의 조회 범위는 최대 24시간으로 제한됩니다.
- 조회 조건에 requestId가 포함되어있지않은 경우, plusFriendId는 필수입니다.
- nextToken
- 이전 요청에서
nextToken응답을 받은 경우에만 유효하며, 다음 페이지의 결과를 요청할 수 있음을 나타냅니다. 추가 결과가 있는 경우, 이전 응답의nextToken값을 이 Parameter에 설정하면 다음 페이지의 결과를 조회할 수 있습니다.
- 이전 요청에서
Headers
요청 Body
없음
응답 Body
{
"requestId": "string",
"statusCode": "string",
"statusName": "string",
"messages": [
{
"requestTime": "string",
"messageId": "string",
"messageType": "string",
"targeting": "string",
"countryCode": "string",
"to": "string",
"content": "string",
"plusFriendId": "string",
"completeTime": "string",
"requestStatusCode": "string",
"requestStatusName": "string",
"requestStatusDesc": "string",
"messageStatusCode": "string",
"messageStatusName": "string",
"messageStatusDesc": "string",
"isAdult": "boolean",
"useSmsFailover": "boolean"
}
],
"pageSize": "integer",
"pageIndex": "integer",
"itemCount": "integer",
"hasMore": "boolean"
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| requestId | Optional | String | 발송 요청 아이디 | requestId로 조회하는 경우에만 노출됨 |
| statusCode | Mandatory | String | 요청 상태 코드 | 202 - 성공 그외 - 실패 * HTTP Status 규격을 따름 |
| statusName | Mandatory | String | 요청 상태명 | success - 성공 processing - 발송중 reserved - 예약중 fail - 실패 |
| messages[].requestTime | Mandatory | DateTime | 발송 요청 시간 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| messages[].messageId | Mandatory | String | 메시지 아이디 | |
| messages[].countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| messages[].messageType | Mandatory | String | 메시지 타입 | 텍스트형(TEXT) 이미지형(IMAGE) 와이드 이미지형(WIDE_IMAGE) 와이드 아이템 리스트형(WIDE_ITEM_LIST) 캐러셀 피드형(CAROUSEL_FEED) 캐러셀 커머스형(CAROUSEL_COMMERCE) 커머스형(COMMERCE) 프리미엄 동영상형(PREMIUM_VIDEO) |
| messages[].targeting | Mandatory | String | 타겟팅 타입 | |
| messages[].to | Mandatory | String | 수신자번호 | |
| messages[].content | Mandatory | String | 메시지 내용 | |
| messages[].plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messages[].completeTime | Optional | DateTime | 발송 리포트(처리 완료) 시간 | yyyy-MM-dd'T'HH:mm:ss |
| messages[].requestStatusCode | Mandatory | String | 발송요청 상태 코드 | A000 - 성공 그외 코드 - 실패(Desc 항목에 실패 사유가 명시) |
| messages[].requestStatusName | Mandatory | String | 발송요청 상태명 | success - 성공 fail - 실패 |
| messages[].requestStatusDesc | Mandatory | String | 발송요청 상태 내용 | |
| messages[].messageStatusCode | Mandatory | String | 발송결과 상태 코드 | 0000 - 성공 그외 코드 - 실패(Desc 항목에 실패 사유가 명시) |
| messages[].messageStatusName | Mandatory | String | 발송결과 상태명 | success - 성공 processing - 처리중 * 발송요청 성공 후, 메시지 발송서버에서 처리중인 상태 * messageCode, messageDesc가 조회되지 않음 fail - 실패 |
| messages[].messageStatusDesc | Mandatory | String | 발송결과 상태 내용 | |
| messages[].isAdult | Mandatory | Boolean | 전체 연령 여부 | 성인: true 전체: false |
| messages[].useSmsFailover | Mandatory | Boolean | SMS Failover 사용 여부 | |
| pageSize | Mandatory | Integer | 페이지 사이즈 | |
| nextToken | Optional | String | 다음 페이지 토큰 | |
| itemCount | Mandatory | Integer | 조회한 페이지 내의 메시지 수 | |
| hasMore | Mandatory | Boolean | 다음 페이지 존재 여부 |
응답 Status
| HTTP Status | Desc |
|---|---|
| 200 | OK (조회 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
발송 결과 조회
메시지 발송 결과를 조회합니다.
요청 URL
GET https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/messages/{messageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
| messageId | Mandatory | String | 메시지 아이디 | 메시지 발송시 반환되는 메시지 식별자 |
Headers
요청 Body
없음
응답 Body
{
"messageId":"string",
"requestId":"string",
"requestTime":"string",
"completeTime":"string",
"plusFriendId":"string",
"messageType": "string",
"targeting": "string",
"countryCode":"string",
"to":"string",
"requestStatusCode":"string",
"requestStatusName":"string",
"requestStatusDesc":"string",
"messageStatusCode":"string",
"messageStatusName":"string",
"messageStatusDesc":"string",
"isAdult":"boolean",
"useSmsFailover":"boolean",
"content":"string",
"headerContent":"string",
"additionalContent":"string",
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeIos":"string",
"schemeAndroid":"string",
"bizFormId":"string"
}
],
"image":{
"imageId":"string",
"imageLink":"string"
},
"item":[
{
"title":"string",
"imageId":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
],
"carousel": {
"head": {
"headerContent":"string",
"content":"string",
"imageId":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"list": [
{
"headerContent":"string",
"message":"string",
"additionalContent":"string",
"image":{
"imageId":"string",
"imageLink":"string"
},
"buttons":[
{
"type":"string",
"name":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string",
"bizFormId":"string"
}
],
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"commerce": {
"title":"string",
"regularPrice":"integer",
"discountPrice":"integer",
"discountRate":"integer",
"discountFixed":"integer"
}
}
],
"tail": {
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
}
},
"commerce": {
"title":"string",
"regularPrice":"integer",
"discountPrice":"integer",
"discountRate":"integer",
"discountFixed":"integer"
},
"coupon": {
"title":"string",
"description":"string",
"linkMobile":"string",
"linkPc":"string",
"schemeAndroid":"string",
"schemeIos":"string"
},
"video": {
"thumbnailId":"string",
"videoUrl":"string"
},
"useSmsFailover": "boolean"
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| messageId | Mandatory | String | 메시지 아이디 | |
| requestId | Mandatory | String | 발송 요청 아이디 | |
| requestTime | Mandatory | DateTime | 발송 요청 시간 | yyyy-MM-dd'T'HH:mm:ss.SSS |
| completeTime | Optional | DateTime | 발송 리포트(처리 완료) 시간 | yyyy-MM-dd'T'HH:mm:ss |
| plusFriendId | Mandatory | String | 카카오톡 채널명 ((구)플러스친구 아이디) | |
| messageType | Mandatory | String | 메시지 타입 | 텍스트형(TEXT) 이미지형(IMAGE) 와이드 이미지형(WIDE_IMAGE) 와이드 아이템 리스트형(WIDE_ITEM_LIST) 캐러셀 피드형(CAROUSEL_FEED) 캐러셀 커머스형(CAROUSEL_COMMERCE) 커머스형(COMMERCE) 프리미엄 동영상형(PREMIUM_VIDEO) |
| targeting | Mandatory | String | 타겟팅 코드 | M, N, I |
| templateCode | Mandatory | String | 템플릿 코드 | |
| countryCode | Optional | String | 수신자 국가번호 | default: 82 |
| to | Mandatory | String | 수신자번호 | |
| requestStatusCode | Mandatory | String | 발송요청 상태 코드 | A000 - 성공 그외 코드 - 실패(Desc 항목에 실패 사유가 명시) |
| requestStatusName | Mandatory | String | 발송요청 상태명 | success - 성공 fail - 실패 |
| requestStatusDesc | Mandatory | String | 발송요청 상태 내용 | |
| messageStatusCode | Mandatory | String | 발송결과 상태 코드 | 0000 - 성공 그외 코드 - 실패(Desc 항목에 실패 사유가 명시) |
| messageStatusName | Mandatory | String | 발송결과 상태명 | success - 성공 processing - 처리중 * 발송요청 성공 후, 메시지 발송서버에서 처리중인 상태 * messageCode, messageDesc가 조회되지 않음 fail - 실패 |
| messageStatusDesc | Mandatory | String | 발송결과 상태 내용 | |
| isAdult | Mandatory | Boolean | 전체 연령 여부 | |
| content | Optional | String | ||
| headerContent | Optional | String | 헤더 | |
| additionalContent | Optional | String | 부가 내용 | |
| buttons | Optional | List of Object | 버튼 | 버튼 정보 참조 |
| buttons[].type | Mandatory | String | 버튼 Type | |
| buttons[].name | Mandatory | String | 버튼명 | |
| buttons[].linkMobile | Optional | String | 모바일 웹 링크 | |
| buttons[].linkPc | Optional | String | PC 웹 링크 | |
| buttons[].schemeAndroid | Optional | String | Android 앱 링크 | |
| buttons[].schemeIos | Optional | String | iOS 앱 링크 | |
| image | Optional | Object | 이미지 | |
| image.imageId | Mandatory | String | 이미지 아이디 | |
| image.imageLink | Optional | String | 이미지 링크 | |
| coupon | Optional | Object | 쿠폰 정보 | |
| coupon.title | Mandatory | String | 쿠폰 제목 | |
| coupon.description | Mandatory | String | 쿠폰 상세 설명 | 최대 18자 |
| coupon.linkMobile | Optional | String | 모바일 웹 링크 | |
| coupon.linkPc | Optional | String | PC 웹 링크 | |
| coupon.schemeAndroid | Optional | String | Android 앱 링크 | |
| coupon.schemeIos | Optional | String | iOS 앱 링크 | |
| video | Optional | Object | 동영상 정보 | |
| video.thumbnailId | Mandatory | String | 동영상 썸네일용 이미지 아이디 | |
| video.videoUrl | Mandatory | String | 카카오TV 동영상 URL | |
| item | Optional | Object | ||
| item.list | Mandatory | List of Object | 와이드 리스트 | |
| item.list[].title | Optional | String | 아이템 제목 | |
| item.list[].imageId | Mandatory | String | 이미지 아이디 | |
| item.list[].linkMobile | Mandatory | String | 모바일 웹 링크 | |
| item.list[].linPc | Optional | String | PC 웹 링크 | |
| item.list[].schemeAndroid | Optional | String | Android 앱 링크 | |
| item.list[].schemeIos | Optional | String | iOS 앱 링크 | |
| carousel | Optional | Object | 캐러셀 정보 | |
| carousel.head | Optional | Object | 캐러셀 인트로 정보 | |
| carousel.head.headerContent | Mandatory | String | 헤더 | |
| carousel.head.content | Mandatory | String | 내용 | |
| carousel.head.imageId | Mandatory | String | 이미지 아이디 | |
| carousel.head.linkMobile | Optional | String | 모바일 웹 링크 | |
| carousel.head.linkPc | Optional | String | PC 웹 링크 | |
| carousel.head.schemeAndroid | Optional | String | Android 앱 링크 | |
| carousel.head.schemeIos | Optional | String | iOS 앱 링크 | |
| carousel.list | Mandatory | List of Object | 캐러셀 리스트 | |
| carousel.list[].headerContent | Optional | String | 캐러셀 리스트 아이템 제목 | |
| carousel.list[].message | Mandatory | String | 캐러셀 리스트 아이템 메시지 | |
| carousel.list[].additionalContent | Optional | String | 캐러셀 리스트 아이템 부가 내용 | |
| carousel.list[].image | Mandatory | Object | 캐러셀 리스트 아이템 이미지 정보 | |
| carousel.list[].image.imageId | Mandatory | String | 이미지 아이디 | |
| carousel.list[].image.imageLink | Optional | String | 이미지 링크 | |
| carousel.list[].buttons | Mandatory | List of Object | 버튼 정보 | |
| carousel.list[].buttons[].type | Mandatory | String | 버튼 Type | |
| carousel.list[].buttons[].name | Mandatory | String | 버튼명 | |
| carousel.list[].buttons[].linkMobile | Optional | String | 모바일 웹 링크 | |
| carousel.list[].buttons[].linkPc | Optional | String | PC 웹 링크 | |
| carousel.list[].buttons[].schemeAndroid | Optional | String | Android 앱 링크 | |
| carousel.list[].buttons[].schemeIos | Optional | String | iOS 앱 링크 | |
| carousel.list[].buttons[].bizFormId | Optional | String | ||
| carousel.list[].coupon | Optional | Object | 쿠폰 정보 | |
| carousel.list[].coupon.title | Mandatory | String | 쿠폰 제목 | |
| carousel.list[].coupon.description | Mandatory | String | 쿠폰 상세 설명 | |
| carousel.list[].coupon.linkMobile | Optional | String | 모바일 웹 링크 | |
| carousel.list[].coupon.linkPc | Optional | String | PC 웹 링크 | |
| carousel.list[].coupon.schemeAndroid | Optional | String | Android 앱 링크 | |
| carousel.list[].coupon.schemeIos | Optional | String | iOS 앱 링크 | |
| carousel.list[].commerce | Optional | Object | 커머스 정보 | |
| carousel.list[].commerce.title | Mandatory | String | 상품 제목 | |
| carousel.list[].commerce.regularPrice | Mandatory | Integer | 상품 정상 가격 | |
| carousel.list[].commerce.discountPrice | Optional | Integer | 상품 할인 가격 | |
| carousel.list[].commerce.discountRate | Optional | Integer | 상품 할인율 | |
| carousel.list[].commerce.discountFixed | Optional | Integer | 상품 정액 할인 가격 | |
| carousel.tail | Optional | Object | 캐러셀 더보기 정보 | |
| carousel.tail.linkMobile | Mandatory | String | 모바일 웹 링크 | |
| carousel.tail.linkPc | Optional | String | PC 웹 링크 | |
| carousel.tail.schemeAndroid | Optional | String | Android 앱 링크 | |
| carousel.tail.schemeIos | Optional | String | iOS 앱 링크 | |
| commerce | Optional | Object | 커머스 정보 | |
| commerce.title | Mandatory | String | 상품 제목 | |
| commerce.regularPrice | Mandatory | Integer | 상품 정상 가격 | |
| commerce.discountPrice | Optional | Integer | 상품 할인 가격 | |
| commerce.discountRate | Optional | Integer | 상품 할인율 | |
| commerce.discountFixed | Optional | Integer | 상품 정액 할인 가격 | |
| useSmsFailover | Mandatory | Boolean | SMS Failover 사용 여부 |
응답 Status
| HTTP Status | Desc |
|---|---|
| 200 | OK (조회 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
이미지
이미지 업로드
브랜드메시지 발송에 사용할 이미지를 업로드합니다.
요청 URL
POST https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/images
Content-Type: multipart/form-data; boundary=a29b1180-70f5-42f7-afbe-0d68a15f2370
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
Headers
요청 Parameter
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| imageType | Mandatory | String | 이미지 타입 정보 참조 | |
| imageFile | Mandatory | File | 이미지 파일 |
응답 Body
{
"imageId":"string",
"imageType":"string",
"imageName":"string",
"imageUrl":"string",
"createTime":"string"
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| imageId | Mandatory | Strng | 이미지 아이디 | |
| imageType | Mandatory | String | 이미지 타입 정보 참조 | |
| imageName | Mandatory | String | 이미지 파일 이름 | |
| imageUrl | Mandatory | String | 이미지 URL | |
| createTime | Mandatory | DateTime | 이미지 업로드 시간 |
응답 Status
| HTTP Status | Desc |
|---|---|
| 200 | Ok (업로드 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
이미지 목록 조회
업로드된 이미지 목록을 조회합니다.
요청 URL
GET https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/images
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
Headers
Parameters
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| pageIndex | Optional | Integer | 페이지 인덱스 | default: 0 |
| pageSize | Optional | Integer | 페이지 사이즈 | default: 20 (1 ~ 100 사이의 숫자만 입력 가능) |
요청 Body
없음
응답 Body
{
"items": [
{
"imageId":"string",
"imageType":"string",
"imageName":"string",
"imageUrl":"string",
"createTime":"string"
}
],
"pageIndex": "integer",
"pageSize": "integer",
"itemCount": "integer",
"hasPrevious": "boolean",
"hasNext": "boolean",
"totalCount": "integer"
}
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| items | Mandatory | List of Object | ||
| items[].imageId | Mandatory | Strng | 이미지 아이디 | |
| items[].imageType | Mandatory | String | 이미지 타입 정보 참조 | |
| items[].imageName | Mandatory | String | 이미지 파일 이름 | |
| items[].imageUrl | Mandatory | String | 이미지 URL | |
| items[].createTime | Mandatory | DateTime | 이미지 업로드 시간 | |
| pageIndex | Mandatory | Integer | 페이지 인덱스 | |
| pageSize | Mandatory | Integer | 페이지 사이즈 | |
| itemCount | Mandatory | Integer | 조회된 아이템 개수 | |
| hasPrevious | Mandatory | Boolean | 이전 페이지 존재 여부 | |
| hasNext | Mandatory | Boolean | 다음 페이지 존재 여부 | |
| totalCount | Mandatory | Integer | 전체 개수 |
응답 Status
| HTTP Status | Desc |
|---|---|
| 200 | Ok (조회 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
이미지 단건 조회
업로드된 이미지를 단건 조회합니다.
요청 URL
GET https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/images/{imageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
| imageId | Mandatory | String | 이미지 아이디 | 업로드된 이미지 아이디 |
Headers
요청 Body
없음
응답 Body
{
"imageId":"string",
"imageType":"string",
"imageName":"string",
"imageUrl":"string",
"createTime":"string"
}
응답 Status
| HTTP Status | Desc |
|---|---|
| 200 | Ok (조회 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
이미지 삭제
업로드된 이미지를 삭제합니다.
요청 URL
DELETE https://sens.apigw.ntruss.com/brandmessage/v2/services/{serviceId}/images/{imageId}
x-ncp-apigw-timestamp: {Timestamp}
x-ncp-iam-access-key: {Sub Account Access Key}
x-ncp-apigw-signature-v2: {API Gateway Signature}
Path Variables
| 항목 | Mandatory | Type | 설명 | 비고 |
|---|---|---|---|---|
| serviceId | Mandatory | String | 서비스 아이디 | 프로젝트 등록 시 발급받은 서비스 아이디 |
| imageId | Mandatory | String | 이미지 아이디 | 업로드된 이미지 아이디 |
Headers
요청 Body
없음
응답 Body
없음
응답 Status
| HTTP Status | Desc |
|---|---|
| 204 | No Content (삭제 완료) |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
이미지 타입 정보
| 항목 | 설명 | 비고 |
|---|---|---|
| BASIC | TEXT, COMMERCE, PREMIUM_VIDEO 이미지 | 권장 사이즈: 800 x 400px(가로 500px 이상) 이미지 비율(width / height): 0.5 ~ 1.333 jpg, png 최대 5MB |
| WIDE | WIDE_IMAGE 이미지 | 권장 사이즈: 800 x 600px(가로 500px 이상) 이미지 비율(width / height): 0.5 ~ 1.0 jpg, png 최대 5MB |
| WIDE_ITEM_LIST_MAIN | WIDE_ITEM_LIST 첫 번째 아이템 이미지 | 가로 500px 이상 이미지 비율(width / height): 0.5 jpg, png 최대 5MB |
| WIDE_ITEM_LIST_SUB | WIDE_ITEM_LIST 두 번째 이후 아이템 이미지 | 가로 500px 이상 이미지 비율(width / height): 1.0 jpg, png 최대 5MB |
| CAROUSEL_FEED | CAROUSEL_FEED 이미지 | 권장 사이즈: 800 x 600px 또는 800 x 400px(가로 500px 이상) 이미지 비율(width / height) 0.5 ~ 1.333 jpg, png 최대 5MB |
| CAROUSEL_COMMERCE | CAROUSEL_COMMERCE 이미지 | 권장 사이즈: 800 x 600px 또는 800 x 400px(가로 500px 이상) 이미지 비율(width / height) 0.5 ~ 1.333 (전체 이미지 비율 동일) jpg, png 최대 5MB |
오류 코드
비즈메시지 수신 결과 코드
| 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)은 실시간으로 발송 불가) |
| 1027 | - | 채널 메시지 제재 상태로 인한 메시지 전송 실패 |
| 1030 | InvalidParameterException | 잘못된 파라메터 요청 |
| 1033 | - | 템플릿 타입과 메시지 타입 불일치 |
| 2000 | FailedToCheckFriendshipException | 톡채널과 친구 관계 확인 시 에러 (시스템 에러) |
| 2003 | FailedToSendMessageByNoFriendshipException | 메시지 전송 실패 (테스트 서버에서 카카오톡 채널을 추가하지 않은 경우) |
| 2004 | FailedToMatchTemplateException | 템플릿 일치 확인 시 오류 발생 (카카오 내부 오류) |
| 2005 | FailedToReadImageException | 카카오에서 이미지 메타 정보 읽어오는 중 에러 |
| 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 | 메시지를 전송할 수 없음 |
| 3019 | MessageNoUserException | 톡유저가 아님 |
| 3020 | MessageUserBlockedAlimTalkException | 알림톡 차단 |
| 3021 | MessageNotSupportedKakaotalkException | 톡 최소 버전 미지원 |
| 3022 | NoSendAvailableTimeException | 메시지 발송 가능한 시간이 아님 (친구 톡/마케팅 메시지는 08시~ 20시까지 발송 가능) |
| 3023 | MessageInvalidVideoException | 메시지에 포함된 비디오를 전송할 수 없음 (비디오 주소 또는 썸네일 이미지 주소가 올바르지 않거나 썸네일 이미지가 규격에 맞지 않음) |
| 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 | 아이템 요약 정보의 디스크립션에 허용되지 않은 문자 포함(통화기호/코드, 숫자, 콤마, 소수점, 공백을 제외한 문자 포함) |
| 3041 | MessageInvalidWideItemListLengthException | 와이드 아이템 리스트 개수 최소, 최대 개수 불일치 |
| 3042 | NoMatchedTemplateRepresentLinkException | 대표 링크가 템플릿과 일치하지 않음 |
| 3046 | ExceedMaxAdditionalContentLengthException | 부가 정보 최대 길이 제한 오류 |
| 3047 | ExceedMaxCommerceTitleLengthException | 커머스 정보 상품명 최대 길이 제한 오류 |
| 3050 | MessageNotSupportedUnsubscribeException | 수신 동의 거부 스펙 (N 타입) 미지원 |
| 3051 | InvalidateCarouselItemMinException or InvalidateCarouselItemMaxException | 캐러셀 아이템 리스트 개수 최소, 최대 개수 불일치 |
| 3052 | CarouselMessageLengthOverLimitException | 캐러셀 아이템 메시지 길이 초과 |
| 3056 | WideItemListTitleLengthOverLimitException | 와이드 아이템 리스트 타이틀 길이 제한 오류 |
| 3058 | CarouselHeaderLengthOverLimitException | 캐러셀 헤더 길이 제한 오류 |
| 3059 | MessageNotSupportedCouponException | 쿠폰 스펙 미지원 |
| 4000 | ResponseHistoryNotFoundException | 메시지 전송 결과를 찾을 수 없음 |
| 4001 | UnKnownMessageStatusError | 알수 없는 메시지 상태 |
| 7011 | - | 시리얼 넘버 패턴 에러 |
| 7014 | - | 메시지 유효 시간 초과 에러 |
| 8512 | - | 수신자 타입 찾을 수 없음 |
| 8514 | - | request_id 찾을 수 없음 |
| 8520 | - | 지원하지 않는 상품 타입 오류 |
| 8521 | - | 지원하지 않는 메시지 타입 오류 |
| 8522 | - | 지원하지 않는 텍스트 유형 오류 |
| 8523 | - | 지원하지 않는 response method 오류 |
| 8530 | - | 수신자 목록 사이즈 오류 |
| 8999 | - | 내부 서버 오류 |
| 9998 | 현재 서비스를 제공하고 있지 않습니다. | 시스템에 문제가 발생하여 담당자 확인 중 |
| 9999 | 시스템에 알 수 없는 문제 발생, 담당자 확인 중 | 시스템에 문제가 발생하여 담당자 확인 중 |
| B000 | Prepare to relay failed | 중계사 발송을 위한 사전 작업 실패 |
| B001 | Request to relay failed | 중계사 발송 실패 |
| B002 | Filtering for request to relay failed | 잘못된 요청으로 인해 필터링됨 |
| B003 | Invalid phone number format | 올바르지 않은 발신번호 포멧 |
| B004 | Quota Exceed | 쿼터 초과 |
| B005 | Message processing timeout exceed | 메시지 요청 시간과 처리 시간의 차이가 허용 범위를 벗어남 |
| B400 | Invalid Request | 메시지 형식 오류 |
| B999 | Unexpected server error | 예기치 못한 에러 |