비즈뿌리오 KAPI
공통 사항
카카오 비즈메시지 관리 API (KAPI) — 카카오톡 채널의 알림톡 템플릿·발신프로필·이미지·그룹 등 발송 자원을 관리하는 API.
연동 규격
| 항목 | 값 |
|---|---|
| 프로토콜 | HTTPS |
| 도메인 | https://kapi.ppurio.com/ |
| 메서드 | POST 전용 |
| 인코딩 | UTF-8 |
| Content-Type | application/json; charset=utf-8 |
| 인증 | 요청 본문 bizId + apiKey (Authorization 헤더 없음) |
| 권장 응답 대기 시간 | 15~40초 |
인증 흐름
KAPI 는 별도 토큰 발급 절차가 없습니다. 매 요청마다 bizId 와 apiKey 를 본문에 포함합니다. 단, 발신프로필 등록을 위한 카카오 채널 인증 토큰 (Yellow ID 휴대폰 SMS 수신) 은 별도이며 프로필 API 를 참고하세요.
공통 응답 형식
{ "code": "200", "message": "...", "data": { ... } }
| 필드 | 설명 |
|---|---|
code |
결과 코드 (200 = 성공, 그 외 코드 정의 참고) |
message |
결과 메시지 |
data |
성공 시 응답 본문 (엔드포인트별 상이) |
Rate Limit
- 본 API 자체에 별도 명시된 Rate Limit 은 없으나, 비정상 다회 호출 시 일시 차단될 수 있습니다.
- 발송 자체는 비즈뿌리오 본 계정의 메시지 API Rate Limit 을 적용받습니다.
자원 ↔ 발송 연결
KAPI 는 발송을 수행하지 않습니다. 발송은 POST /v3/message (메시지 API) 또는 BIZCLIENT 의 biz_msg 테이블 INSERT 로 수행하며, KAPI 로 등록·관리한 자원이 발송 페이로드에 사용됩니다.
| KAPI 에서 등록·관리 | 카카오 발송에서 사용 |
|---|---|
알림톡 템플릿 (templateCode) |
content.at.templatecode / content.ai.templatecode |
발신프로필 키 (senderKey) |
content.at.senderkey / content.ai.senderkey / content.ut.senderkey |
브랜드메시지 템플릿 (templateCode) |
content.ut.templatecode (카카오 브랜드) |
이미지 키 (imageId / imageUrl) |
발송 페이로드 내 이미지 URL/key |
그룹 태그 키 (groupTagKey) |
통계 분류 키 |
추가 사항
- 템플릿 상태 변화
serviceStatus:REG→REQ→REJ|STP|RDY→ACT→DMT/BLKstatus:S(중지) /A(정상) /R(대기)inspectionStatus:REG→REQ→REJ|APR(승인)
- 발신 프로필 키 타입 (
senderKeyType):S일반 발신프로필 (기본값) /G발신프로필 그룹
알림톡 템플릿
알림톡 템플릿 CRUD · 검수 · 사용 중지 · 휴면 해제 · 전환 · 공용 템플릿 (17개 엔드포인트)
템플릿 등록
템플릿을 신규 등록합니다. 사전에 발신프로필 또는 발신프로필 그룹이 등록되어 있어야 합니다.
등록 직후 상태는 serviceStatus: REG(등록) / status: R(대기).
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | — | 템플릿 코드 (영문/숫자/ _/-, 빈 값이면 자동 생성) |
| templateName | string | 필수 | 템플릿 이름 |
| templateMessageType | string | 필수 | BA=기본형 / EX=부가정보형 / AD=채널추가형 / MI=복합형 = BA | EX | AD | MI |
| templateEmphasizeType | string | 필수 | NONE / TEXT(강조표기형) / IMAGE(이미지형) / ITEM_LIST(아이템리스트형) = NONE | TEXT | IMAGE | ITEM_LIST |
| templateContent | string | 필수 | 템플릿 내용 |
| templatePreviewMessage | string(40) | — | 미리보기 메시지 (최대 40자) |
| templateExtra | string | — | 부가정보 — templateMessageType이 EX/MI일 때 필수 |
| templateImageName | string | — | 이미지 파일명 — templateEmphasizeType이 IMAGE일 때 필수 |
| templateImageUrl | string | — | 이미지 링크 — templateEmphasizeType이 IMAGE일 때 필수 |
| templateTitle | string | — | 강조 표기 핵심 정보 — templateEmphasizeType이 TEXT일 때 필수 |
| templateSubtitle | string | — | 강조 표기 보조 문구 — templateEmphasizeType이 TEXT일 때 필수 |
| templateHeader | string(16) | — | 헤더 (최대 16자) |
| templateItemHighlight | object | — | 아이템 하이라이트 |
| └title | string | — | 타이틀 (최대 30자, 썸네일 이미지 있으면 21자) |
| └description | string | — | 상세 설명 (최대 19자, 썸네일 이미지 있으면 13자) |
| └imageUrl | string(500) | — | 썸네일 이미지 주소 (최대 500자) |
| templateItem | object | — | 아이템 정보 — templateEmphasizeType이 ITEM_LIST일 때 list 필수 |
| └list | array<object>(2~10) | — | 아이템 배열 (2~10개) |
| └title | string(6) | 필수 | 타이틀 |
| └description | string(23) | 필수 | 부가정보 |
| └summary | object | — | 아이템 요약 정보 |
| └title | string(6) | — | 요약 타이틀 |
| └description | string(14) | — | 가격정보 — 변수·화폐 단위·숫자·쉼표·마침표만 |
| templateRepresentLink | object | — | 대표 링크 (각 필드 최대 500자) |
| └linkAnd | string(500) | — | Mobile Android 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkMo | string(500) | — | Mobile 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkIos | string(500) | — | Mobile iOS 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkPc | string(500) | — | PC 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| categoryCode | string | 필수 | 템플릿 카테고리 코드 |
| securityFlag | boolean | — | 보안 템플릿 여부 (OTP 등). true 시 메인 디바이스 외 메시지 텍스트 미노출 |
| buttons | array<object>(~5) | — | 버튼 배열 (최대 5개, 바로연결 사용 시 2개) |
| └name | string | 필수 | 버튼명 — AC: "채널추가" 고정 / TN: "전화 연결"·"고객센터 연결"·"상담원 연결" 중 하나 |
| └linkType | string | 필수 | 버튼 링크타입 (DS:배송조회, WL:웹링크, AL:앱링크, BK:봇키워, MD: 메시지전달, AC: 채널추가, BC: 상담톡전환, BT: 봇전환, P1: 이미지 보안전송 플러그인, P2 : 개인정보이용 플러그인, P3: 원클릭 결제 플러그인, TN: 전화하기, MP: 지도보기) = DS | WL | AL | BK | MD | AC | BC | BT | P1 | P2 | P3 | TN | MP |
| └linkAnd | string | — | Android 앱 링크 (AL 사용 시 필수, AL은 tell:// 신규 등록 불가) |
| └linkIos | string | — | iOS 앱 링크 (AL 사용 시 필수) |
| └linkMo | string | — | 모바일 웹 링크 (WL 사용 시 필수) |
| └linkPc | string | — | PC 웹 링크 (WL 사용 시 선택) |
| └pluginId | string | — | 플러그인 ID (P1/P2/P3 사용 시 필수) |
| └telNumber | string | — | 전화번호 (TN 사용 시 필수) |
| quickReplies | array<object>(~10) | — | 바로연결 배열 (최대 10개, 상담톡 채널만) |
| └name | string | 필수 | 바로연결명 |
| └linkType | string | 필수 | 바로연결 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, MD: 메시지전달, BC : 상담톡전환, BT: 봇전환) = WL | AL | BK | MD | BC | BT |
| └linkAnd | string | — | Android 앱 링크 주소 (AL 사용시 필수) |
| └linkIos | string | — | IOS 앱 링크 주소 (AL 사용시 필수) |
| └linkMo | string | — | 모바일 웹 링크 주소 (WL 사용시 필수) |
| └linkPc | string | — | PC 웹 링크 주소 (WL 사용시 선택) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/add" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"senderKeyType": "S",
"templateName": "봇키워드 버튼 템플릿",
"templateContent": "봇키워드 테스트",
"templateMessageType": "MI",
"templateExtra": "부가정보",
"templateEmphasizeType": "NONE",
"categoryCode": "001001",
"buttons": [
{
"name": "주문 확인",
"linkType": "WL",
"linkMo": "https://example.com/order"
}
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 템플릿 상세 + 상태·검수·차단·휴면·댓글 |
| └senderKey | string | — | 발신 프로필 키 |
| └senderKeyType | string | — | S=일반 / G=그룹 = S | G |
| └templateCode | string | — | 템플릿 코드 (영문, 숫자, 언더바(_), 하이픈(-)만 입력 가능, 최대 30자, 빈 값일 경우 자동 생성) |
| └templateName | string | — | 템플릿 이름 |
| └templateMessageType | string | — | BA=기본형 / EX=부가정보형 / AD=채널추가형 / MI=복합형 = BA | EX | AD | MI |
| └templateEmphasizeType | string | — | NONE / TEXT(강조표기형) / IMAGE(이미지형) / ITEM_LIST(아이템리스트형) = NONE | TEXT | IMAGE | ITEM_LIST |
| └templateContent | string | — | 템플릿 내용 |
| └templatePreviewMessage | string | — | 미리보기 메시지 |
| └templateExtra | string | null | — | 부가정보 (EX/MI 타입일 때) |
| └templateImageName | string | null | — | 이미지 파일명 (IMAGE 타입일 때) |
| └templateImageUrl | string | null | — | 이미지 링크 (IMAGE 타입일 때) |
| └templateTitle | string | null | — | 강조 표기 핵심 정보 (TEXT 타입일 때) |
| └templateSubtitle | string | null | — | 강조 표기 보조 문구 (TEXT 타입일 때) |
| └templateHeader | string | null | — | 헤더 (ITEM_LIST 타입일 때) |
| └templateItemHighlight | object | null | — | 아이템 하이라이트 (ITEM_LIST 타입일 때) |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └imageUrl | string | null | — | 썸네일 이미지 주소 |
| └templateItem | object | null | — | 아이템 정보 (ITEM_LIST 타입일 때) |
| └list | array<object> | — | 아이템 목록 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └summary | object | null | — | 아이템 요약 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └templateRepresentLink | object | null | — | 대표 링크 |
| └linkPc | string | null | — | PC 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkMo | string | null | — | Mobile 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkAnd | string | null | — | Mobile Android 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkIos | string | null | — | Mobile iOS 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └categoryCode | string | — | 템플릿 카테고리 코드 |
| └securityFlag | boolean | — | 보안 템플릿 여부 |
| └inspectionStatus | string | — | REG / REQ / REJ / APR(승인) = REG | REQ | REJ | APR |
| └createdAt | string | — | 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └status | string | — | S(중지) / A(정상) / R(대기/발송전) = S | A | R |
| └block | boolean | — | 템플릿 차단 여부 |
| └dormant | boolean | — | 휴면 여부 |
| └buttons | array<object> | — | 버튼 목록 (최대 5개) |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └quickReplies | array<object> | — | 바로연결 목록 (최대 10개) — 버튼과 동일 구조 |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └comments | array<object> | — | 댓글 배열 |
| └content | string | — | 댓글 내용 |
| └createdAt | string | — | 등록일 |
| └status | string | — | REQ(등록) / INQ(문의) / APR(승인) / REJ(반려) / REP(답변) = REQ | INQ | APR | REJ | REP |
| └userName | string | — | 댓글 작성자 |
| └attachment | array<object> | — | 첨부파일 |
{
"code": "200",
"message": "string",
"data": {
"senderKey": "662be6bf96868232ec4fbXXXXXXXXXXXXX",
"senderKeyType": "S",
"templateCode": "BA_NONE_O",
"templateName": "기본형_선택안함_O",
"templateMessageType": "BA",
"templateEmphasizeType": "NONE",
"templateContent": "테스트(test) 기본형_선택안함_O",
"templatePreviewMessage": "기본형_선택안함_O 미리보기",
"templateExtra": "*차량 이용 시, 주차가능 여부를 반드시 문의하시기 바랍니다.",
"templateImageName": "이미지",
"templateImageUrl": "https://mud-kage.kakao.com/dn/sample/img_l.jpg",
"templateTitle": "회원 가입 안내",
"templateSubtitle": "Sample",
"templateHeader": "헤더",
"templateItemHighlight": {
"title": "타이틀",
"description": "설명",
"imageUrl": "https://mud-kage.kakao.com/dn/sample/img_l.jpg"
},
"templateItem": {
"list": [
{
"title": "타이틀",
"description": "설명"
}
],
"summary": {
"title": "타이틀",
"description": "100원"
}
},
"templateRepresentLink": {
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "https://www.bizppurio.com/",
"linkIos": "https://www.bizppurio.com/"
},
"categoryCode": "999999",
"securityFlag": true,
"inspectionStatus": "APR",
"createdAt": "2025-06-10 18:28:03",
"modifiedAt": "2025-06-11 11:01:55",
"status": "A",
"block": true,
"dormant": true,
"buttons": [
{
"name": "버튼1",
"linkType": "WL",
"ordering": 1,
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "string",
"linkIos": "string",
"pluginId": "string",
"bizFormId": "string",
"telNumber": "string"
}
],
"quickReplies": [
{
"name": "버튼1",
"linkType": "WL",
"ordering": 1,
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "string",
"linkIos": "string",
"pluginId": "string",
"bizFormId": "string",
"telNumber": "string"
}
],
"comments": [
{
"content": "string",
"createdAt": "string",
"status": "REQ",
"userName": "string",
"attachment": [
{}
]
}
]
}
}템플릿 코드 유효성 검증
등록하려는 템플릿 코드의 유효성을 검증합니다. 영문/숫자/_/-만 허용, 최대 30자.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/codeCheck" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 목록 조회
발신프로필에 등록된 템플릿 목록을 페이지네이션으로 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | S=일반(default) / G=그룹 = S | G |
| page | integer | — | 페이지 번호 |
| count | integer | — | 페이지당 개수 |
| keyword | string(2~50) | — | 검색 키워드 |
| startDate | string | — | 생성일 시작 (yyyyMMddHHmmss) |
| endDate | string | — | 생성일 종료 |
| templateStatus | string | — | 템플릿 상태 필터 = REG | REQ | REJ | STP | RDY | ACT | DMT | BLK |
| categoryCodeList | array<string> | — | 카테고리 코드 배열 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/list" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"page": 1,
"count": 30,
"categoryCodeList": [
"002001"
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| totalCount | integer | 필수 | 전체 건수 |
| totalPage | integer | 필수 | 전체 페이지 수 |
| currentPage | integer | 필수 | 현재 페이지 |
| data | object | 필수 | 성공 시 반환 데이터 |
| └list | array<object> | — | 성공 시 템플릿 목록 |
| └senderKey | string | — | 발신프로필 키 |
| └senderKeyType | string | — | 발신프로필 키 타입 = S | G |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └categoryCode | string | — | 템플릿 카테고리 코드 |
| └createdAt | string | — | 등록일 |
| └modifiedAt | string | — | 수정일 |
| └serviceStatus | string | — | 템플릿 상태 (REG: 등록, REQ: 검수요청, REJ: 반려, STP: 차단, RDY: 발송전, ACT: 정상, DMT: 휴면, BLK: 차단) = REG | REQ | REJ | STP | RDY | ACT | DMT | BLK |
{
"code": "200",
"message": "string",
"totalCount": 0,
"totalPage": 0,
"currentPage": 0,
"data": {
"list": [
{
"senderKey": "string",
"senderKeyType": "S",
"templateCode": "string",
"templateName": "string",
"categoryCode": "string",
"createdAt": "string",
"modifiedAt": "string",
"serviceStatus": "REG"
}
]
}
}템플릿 상세 조회
등록된 템플릿의 모든 필드 + 상태 · 검수 · 차단 · 휴면 · 댓글 정보를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/detail" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "662be6bf96868232ec4fbXXXXXXXXXXXXX",
"templateCode": "BA_NONE_O"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 템플릿 상세 + 상태·검수·차단·휴면·댓글 |
| └senderKey | string | — | 발신 프로필 키 |
| └senderKeyType | string | — | S=일반 / G=그룹 = S | G |
| └templateCode | string | — | 템플릿 코드 (영문, 숫자, 언더바(_), 하이픈(-)만 입력 가능, 최대 30자, 빈 값일 경우 자동 생성) |
| └templateName | string | — | 템플릿 이름 |
| └templateMessageType | string | — | BA=기본형 / EX=부가정보형 / AD=채널추가형 / MI=복합형 = BA | EX | AD | MI |
| └templateEmphasizeType | string | — | NONE / TEXT(강조표기형) / IMAGE(이미지형) / ITEM_LIST(아이템리스트형) = NONE | TEXT | IMAGE | ITEM_LIST |
| └templateContent | string | — | 템플릿 내용 |
| └templatePreviewMessage | string | — | 미리보기 메시지 |
| └templateExtra | string | null | — | 부가정보 (EX/MI 타입일 때) |
| └templateImageName | string | null | — | 이미지 파일명 (IMAGE 타입일 때) |
| └templateImageUrl | string | null | — | 이미지 링크 (IMAGE 타입일 때) |
| └templateTitle | string | null | — | 강조 표기 핵심 정보 (TEXT 타입일 때) |
| └templateSubtitle | string | null | — | 강조 표기 보조 문구 (TEXT 타입일 때) |
| └templateHeader | string | null | — | 헤더 (ITEM_LIST 타입일 때) |
| └templateItemHighlight | object | null | — | 아이템 하이라이트 (ITEM_LIST 타입일 때) |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └imageUrl | string | null | — | 썸네일 이미지 주소 |
| └templateItem | object | null | — | 아이템 정보 (ITEM_LIST 타입일 때) |
| └list | array<object> | — | 아이템 목록 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └summary | object | null | — | 아이템 요약 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └templateRepresentLink | object | null | — | 대표 링크 |
| └linkPc | string | null | — | PC 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkMo | string | null | — | Mobile 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkAnd | string | null | — | Mobile Android 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkIos | string | null | — | Mobile iOS 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └categoryCode | string | — | 템플릿 카테고리 코드 |
| └securityFlag | boolean | — | 보안 템플릿 여부 |
| └inspectionStatus | string | — | REG / REQ / REJ / APR(승인) = REG | REQ | REJ | APR |
| └createdAt | string | — | 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └status | string | — | S(중지) / A(정상) / R(대기/발송전) = S | A | R |
| └block | boolean | — | 템플릿 차단 여부 |
| └dormant | boolean | — | 휴면 여부 |
| └buttons | array<object> | — | 버튼 목록 (최대 5개) |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └quickReplies | array<object> | — | 바로연결 목록 (최대 10개) — 버튼과 동일 구조 |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └comments | array<object> | — | 댓글 배열 |
| └content | string | — | 댓글 내용 |
| └createdAt | string | — | 등록일 |
| └status | string | — | REQ(등록) / INQ(문의) / APR(승인) / REJ(반려) / REP(답변) = REQ | INQ | APR | REJ | REP |
| └userName | string | — | 댓글 작성자 |
| └attachment | array<object> | — | 첨부파일 |
{
"code": "200",
"message": "요청 성공",
"data": {
"senderKey": "662be6bf96868232ec4fbXXXXXXXXXXXXX",
"senderKeyType": "S",
"templateCode": "BA_NONE_O",
"templateName": "기본형_선택안함_O",
"templateMessageType": "BA",
"templateEmphasizeType": "NONE",
"templateContent": "테스트(test) 기본형_선택안함_O",
"templatePreviewMessage": "기본형_선택안함_O 미리보기",
"templateExtra": null,
"templateImageName": null,
"templateImageUrl": null,
"templateTitle": null,
"templateSubtitle": null,
"templateHeader": null,
"templateItemHighlight": null,
"templateItem": null,
"templateRepresentLink": {
"linkAnd": "https://www.bizppurio.com/",
"linkIos": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkPc": "https://www.bizppurio.com/"
},
"categoryCode": "999999",
"securityFlag": false,
"inspectionStatus": "APR",
"createdAt": "2025-06-10 18:28:03",
"modifiedAt": "2025-06-11 11:01:55",
"status": "A",
"block": false,
"dormant": false,
"buttons": [
{
"name": "버튼1",
"linkType": "WL",
"ordering": 1,
"linkAnd": null,
"linkIos": null,
"linkMo": "https://www.bizppurio.com/",
"linkPc": "https://www.bizppurio.com/",
"pluginId": null,
"bizFormId": null,
"telNumber": null
},
{
"name": "버튼2",
"linkType": "WL",
"ordering": 2,
"linkAnd": null,
"linkIos": null,
"linkMo": "https://www.bizppurio.com/",
"linkPc": "https://www.bizppurio.com/",
"pluginId": null,
"bizFormId": null,
"telNumber": null
}
],
"quickReplies": [],
"comments": [
{
"content": "안녕하세요. 카카오톡 알림톡 검수 담당자입니다.\n\n신청하신 메시지 테스트 템플릿으로 확인하여 승인되었습니다.\n\n감사합니다.",
"createdAt": "2025-06-11 10:48:52",
"status": "APR",
"userName": "검수자",
"attachment": []
}
]
}
}템플릿 수정
템플릿 내용을 수정합니다.
⚠️ 템플릿 상태가 **대기(R)**이고 검수상태가 등록(REG) 또는 **반려(REJ)**인 경우에만 수정 가능합니다.
templateCode는 기존 코드를 가리키며, 코드 자체를 변경하려면 newTemplateCode를 추가로 전달합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | — | 템플릿 코드 (영문/숫자/ _/-, 빈 값이면 자동 생성) |
| templateName | string | 필수 | 템플릿 이름 |
| templateMessageType | string | 필수 | BA=기본형 / EX=부가정보형 / AD=채널추가형 / MI=복합형 = BA | EX | AD | MI |
| templateEmphasizeType | string | 필수 | NONE / TEXT(강조표기형) / IMAGE(이미지형) / ITEM_LIST(아이템리스트형) = NONE | TEXT | IMAGE | ITEM_LIST |
| templateContent | string | 필수 | 템플릿 내용 |
| templatePreviewMessage | string(40) | — | 미리보기 메시지 (최대 40자) |
| templateExtra | string | — | 부가정보 — templateMessageType이 EX/MI일 때 필수 |
| templateImageName | string | — | 이미지 파일명 — templateEmphasizeType이 IMAGE일 때 필수 |
| templateImageUrl | string | — | 이미지 링크 — templateEmphasizeType이 IMAGE일 때 필수 |
| templateTitle | string | — | 강조 표기 핵심 정보 — templateEmphasizeType이 TEXT일 때 필수 |
| templateSubtitle | string | — | 강조 표기 보조 문구 — templateEmphasizeType이 TEXT일 때 필수 |
| templateHeader | string(16) | — | 헤더 (최대 16자) |
| templateItemHighlight | object | — | 아이템 하이라이트 |
| └title | string | — | 타이틀 (최대 30자, 썸네일 이미지 있으면 21자) |
| └description | string | — | 상세 설명 (최대 19자, 썸네일 이미지 있으면 13자) |
| └imageUrl | string(500) | — | 썸네일 이미지 주소 (최대 500자) |
| templateItem | object | — | 아이템 정보 — templateEmphasizeType이 ITEM_LIST일 때 list 필수 |
| └list | array<object>(2~10) | — | 아이템 배열 (2~10개) |
| └title | string(6) | 필수 | 타이틀 |
| └description | string(23) | 필수 | 부가정보 |
| └summary | object | — | 아이템 요약 정보 |
| └title | string(6) | — | 요약 타이틀 |
| └description | string(14) | — | 가격정보 — 변수·화폐 단위·숫자·쉼표·마침표만 |
| templateRepresentLink | object | — | 대표 링크 (각 필드 최대 500자) |
| └linkAnd | string(500) | — | Mobile Android 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkMo | string(500) | — | Mobile 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkIos | string(500) | — | Mobile iOS 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkPc | string(500) | — | PC 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| categoryCode | string | 필수 | 템플릿 카테고리 코드 |
| securityFlag | boolean | — | 보안 템플릿 여부 (OTP 등). true 시 메인 디바이스 외 메시지 텍스트 미노출 |
| buttons | array<object>(~5) | — | 버튼 배열 (최대 5개, 바로연결 사용 시 2개) |
| └name | string | 필수 | 버튼명 — AC: "채널추가" 고정 / TN: "전화 연결"·"고객센터 연결"·"상담원 연결" 중 하나 |
| └linkType | string | 필수 | 버튼 링크타입 (DS:배송조회, WL:웹링크, AL:앱링크, BK:봇키워, MD: 메시지전달, AC: 채널추가, BC: 상담톡전환, BT: 봇전환, P1: 이미지 보안전송 플러그인, P2 : 개인정보이용 플러그인, P3: 원클릭 결제 플러그인, TN: 전화하기, MP: 지도보기) = DS | WL | AL | BK | MD | AC | BC | BT | P1 | P2 | P3 | TN | MP |
| └linkAnd | string | — | Android 앱 링크 (AL 사용 시 필수, AL은 tell:// 신규 등록 불가) |
| └linkIos | string | — | iOS 앱 링크 (AL 사용 시 필수) |
| └linkMo | string | — | 모바일 웹 링크 (WL 사용 시 필수) |
| └linkPc | string | — | PC 웹 링크 (WL 사용 시 선택) |
| └pluginId | string | — | 플러그인 ID (P1/P2/P3 사용 시 필수) |
| └telNumber | string | — | 전화번호 (TN 사용 시 필수) |
| quickReplies | array<object>(~10) | — | 바로연결 배열 (최대 10개, 상담톡 채널만) |
| └name | string | 필수 | 바로연결명 |
| └linkType | string | 필수 | 바로연결 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, MD: 메시지전달, BC : 상담톡전환, BT: 봇전환) = WL | AL | BK | MD | BC | BT |
| └linkAnd | string | — | Android 앱 링크 주소 (AL 사용시 필수) |
| └linkIos | string | — | IOS 앱 링크 주소 (AL 사용시 필수) |
| └linkMo | string | — | 모바일 웹 링크 주소 (WL 사용시 필수) |
| └linkPc | string | — | PC 웹 링크 주소 (WL 사용시 선택) |
| newTemplateCode | string(30) | — | 수정하려는 템플릿 코드 (영문/숫자/ _/-, 최대 30자) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/update" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateName": "주문 완료 안내 (아이템리스트)",
"templateMessageType": "MI",
"templateEmphasizeType": "ITEM_LIST",
"templateContent": "#{고객명}님, 주문이 완료되었습니다.\n주문 내역을 확인해 주세요.",
"templateExtra": "본 메시지는 주문 고객에게 발송됩니다.",
"templateHeader": "주문 완료",
"categoryCode": "001001",
"templateItemHighlight": {
"title": "주문번호",
"description": "#{주문번호}"
},
"templateItem": {
"list": [
{
"title": "상품명",
"description": "#{상품명}"
},
{
"title": "결제금액",
"description": "#{결제금액}원"
}
],
"summary": {
"title": "합계",
"description": "#{합계금액}원"
}
},
"buttons": [
{
"name": "주문 상세보기",
"linkType": "WL",
"linkMo": "https://m.example.com/orders",
"linkPc": "https://example.com/orders"
}
],
"newTemplateCode": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 템플릿 상세 + 상태·검수·차단·휴면·댓글 |
| └senderKey | string | — | 발신 프로필 키 |
| └senderKeyType | string | — | S=일반 / G=그룹 = S | G |
| └templateCode | string | — | 템플릿 코드 (영문, 숫자, 언더바(_), 하이픈(-)만 입력 가능, 최대 30자, 빈 값일 경우 자동 생성) |
| └templateName | string | — | 템플릿 이름 |
| └templateMessageType | string | — | BA=기본형 / EX=부가정보형 / AD=채널추가형 / MI=복합형 = BA | EX | AD | MI |
| └templateEmphasizeType | string | — | NONE / TEXT(강조표기형) / IMAGE(이미지형) / ITEM_LIST(아이템리스트형) = NONE | TEXT | IMAGE | ITEM_LIST |
| └templateContent | string | — | 템플릿 내용 |
| └templatePreviewMessage | string | — | 미리보기 메시지 |
| └templateExtra | string | null | — | 부가정보 (EX/MI 타입일 때) |
| └templateImageName | string | null | — | 이미지 파일명 (IMAGE 타입일 때) |
| └templateImageUrl | string | null | — | 이미지 링크 (IMAGE 타입일 때) |
| └templateTitle | string | null | — | 강조 표기 핵심 정보 (TEXT 타입일 때) |
| └templateSubtitle | string | null | — | 강조 표기 보조 문구 (TEXT 타입일 때) |
| └templateHeader | string | null | — | 헤더 (ITEM_LIST 타입일 때) |
| └templateItemHighlight | object | null | — | 아이템 하이라이트 (ITEM_LIST 타입일 때) |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └imageUrl | string | null | — | 썸네일 이미지 주소 |
| └templateItem | object | null | — | 아이템 정보 (ITEM_LIST 타입일 때) |
| └list | array<object> | — | 아이템 목록 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └summary | object | null | — | 아이템 요약 |
| └title | string | — | 타이틀 (최대 30자까지 입력 가능, 썸네일 이미지가 있을 경우 21자까지 입력) |
| └description | string | — | 상세 설명 (최대 19자까지 입력 가능, 썸네일 이미지가 있을 경우 13자까지 입력) |
| └templateRepresentLink | object | null | — | 대표 링크 |
| └linkPc | string | null | — | PC 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkMo | string | null | — | Mobile 환경에서 버튼 클릭 시 이동할 URL (최대 500자) |
| └linkAnd | string | null | — | Mobile Android 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └linkIos | string | null | — | Mobile iOS 환경에서 버튼 클릭 시 실행할 Application Custom Scheme (최대 500자) |
| └categoryCode | string | — | 템플릿 카테고리 코드 |
| └securityFlag | boolean | — | 보안 템플릿 여부 |
| └inspectionStatus | string | — | REG / REQ / REJ / APR(승인) = REG | REQ | REJ | APR |
| └createdAt | string | — | 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └status | string | — | S(중지) / A(정상) / R(대기/발송전) = S | A | R |
| └block | boolean | — | 템플릿 차단 여부 |
| └dormant | boolean | — | 휴면 여부 |
| └buttons | array<object> | — | 버튼 목록 (최대 5개) |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └quickReplies | array<object> | — | 바로연결 목록 (최대 10개) — 버튼과 동일 구조 |
| └name | string | — | 버튼 이름 |
| └linkType | string | — | WL=웹링크 / AL=앱링크 / DS=배송조회 / BK=봇키워드 / MD=메시지전달 / BT=봇전환 / BC=상담톡전환 / AC=채널추가 = WL | AL | DS | BK | MD | BT | BC | AC |
| └ordering | integer | — | 버튼 순서 |
| └linkPc | string | null | — | PC 웹링크 (WL) |
| └linkMo | string | null | — | 모바일 웹링크 (WL) |
| └linkAnd | string | null | — | 안드로이드 앱링크 (AL) |
| └linkIos | string | null | — | iOS 앱링크 (AL) |
| └pluginId | string | null | — | 플러그인 ID |
| └bizFormId | string | null | — | 비즈니스폼 ID |
| └telNumber | string | null | — | 전화번호 |
| └comments | array<object> | — | 댓글 배열 |
| └content | string | — | 댓글 내용 |
| └createdAt | string | — | 등록일 |
| └status | string | — | REQ(등록) / INQ(문의) / APR(승인) / REJ(반려) / REP(답변) = REQ | INQ | APR | REJ | REP |
| └userName | string | — | 댓글 작성자 |
| └attachment | array<object> | — | 첨부파일 |
{
"code": "200",
"message": "string",
"data": {
"senderKey": "662be6bf96868232ec4fbXXXXXXXXXXXXX",
"senderKeyType": "S",
"templateCode": "BA_NONE_O",
"templateName": "기본형_선택안함_O",
"templateMessageType": "BA",
"templateEmphasizeType": "NONE",
"templateContent": "테스트(test) 기본형_선택안함_O",
"templatePreviewMessage": "기본형_선택안함_O 미리보기",
"templateExtra": "*차량 이용 시, 주차가능 여부를 반드시 문의하시기 바랍니다.",
"templateImageName": "이미지",
"templateImageUrl": "https://mud-kage.kakao.com/dn/sample/img_l.jpg",
"templateTitle": "회원 가입 안내",
"templateSubtitle": "Sample",
"templateHeader": "헤더",
"templateItemHighlight": {
"title": "타이틀",
"description": "설명",
"imageUrl": "https://mud-kage.kakao.com/dn/sample/img_l.jpg"
},
"templateItem": {
"list": [
{
"title": "타이틀",
"description": "설명"
}
],
"summary": {
"title": "타이틀",
"description": "100원"
}
},
"templateRepresentLink": {
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "https://www.bizppurio.com/",
"linkIos": "https://www.bizppurio.com/"
},
"categoryCode": "999999",
"securityFlag": true,
"inspectionStatus": "APR",
"createdAt": "2025-06-10 18:28:03",
"modifiedAt": "2025-06-11 11:01:55",
"status": "A",
"block": true,
"dormant": true,
"buttons": [
{
"name": "버튼1",
"linkType": "WL",
"ordering": 1,
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "string",
"linkIos": "string",
"pluginId": "string",
"bizFormId": "string",
"telNumber": "string"
}
],
"quickReplies": [
{
"name": "버튼1",
"linkType": "WL",
"ordering": 1,
"linkPc": "https://www.bizppurio.com/",
"linkMo": "https://www.bizppurio.com/",
"linkAnd": "string",
"linkIos": "string",
"pluginId": "string",
"bizFormId": "string",
"telNumber": "string"
}
],
"comments": [
{
"content": "string",
"createdAt": "string",
"status": "REQ",
"userName": "string",
"attachment": [
{}
]
}
]
}
}템플릿 삭제
템플릿을 삭제합니다.
⚠️ 템플릿 상태가 **대기(R)**이고 검수상태가 등록(REG) 또는 **반려(REJ)**인 경우에만 삭제 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/delete" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 카테고리 전체 조회
템플릿 등록 시 사용할 카테고리 목록 전체를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/category/all" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | 필수 | 성공 시 카테고리 목록 |
| └code | string | — | 카테고리 코드 |
| └name | string | — | 카테고리 이름 |
| └groupName | string | — | 카테고리 그룹 이름 |
| └Inclusion | string | — | 카테고리 적용 대상 템플릿 설명 |
| └exclusion | string | — | 카테고리 제외 대상 템플릿 설명 |
{
"code": "200",
"message": "string",
"data": [
{
"code": "string",
"name": "string",
"groupName": "string",
"Inclusion": "string",
"exclusion": "string"
}
]
}템플릿 카테고리 단건 조회
카테고리 코드에 해당하는 특정 템플릿 카테고리를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| categoryCode | string | 필수 | 카테고리 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/category" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"categoryCode": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 카테고리 정보 |
| └code | string | — | 카테고리 코드 |
| └name | string | — | 카테고리 이름 |
| └groupName | string | — | 카테고리 그룹 이름 |
| └inclusion | string | — | 카테고리 적용 대상 템플릿 설명 |
| └exclusion | string | — | 카테고리 제외 대상 템플릿 설명 |
{
"code": "200",
"message": "string",
"data": {
"code": "string",
"name": "string",
"groupName": "string",
"inclusion": "string",
"exclusion": "string"
}
}템플릿 검수 요청
템플릿 검수를 요청합니다.
⚠️ 템플릿 상태가 **대기(R)**이고 검수상태가 **등록(REG)**인 경우에만 요청 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
| comment | string(500) | — | 의견 또는 문의사항 (최대 500자) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/request" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001",
"comment": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 검수 요청 (파일 첨부)
검수 요청과 함께 첨부파일을 함께 전송합니다.
| 파일 사양 | 값 |
|---|---|
| 지원 포맷 | png, jpg, jpeg, gif, pdf, hwp, doc, docx |
| 개당 크기 제한 | 50 MB |
| 첨부 개수 | 다수 가능 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string | 필수 | 템플릿 코드 |
| comment | string(500) | 필수 | 의견 또는 문의사항 (최대 500자) |
| attachment | array<string <binary>> | — | 업로드할 파일 (다수 가능) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/request_with_file" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001",
"comment": "검수 요청합니다. 첨부파일 확인 부탁드립니다."
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 검수 요청 취소
⚠️ 템플릿 상태가 **대기(R)**이고 검수상태가 **검수 요청(REQ)**인 경우에만 요청 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/cancel_request" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 사용 중지
⚠️ 템플릿 상태가 **대기(R) 또는 정상(A)**이고 검수상태가 **승인(APR)**인 경우에만 요청 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/stop" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 사용 중지 해제
⚠️ 템플릿 상태가 **중지(S)**이고 검수상태가 **승인(APR)**인 경우에만 요청 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/reuse" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 승인 취소
승인된 템플릿이 대기(R) 상태일 때 승인 취소가 가능합니다.
취소 시 상태가 **등록(REG)**으로 변경되며 재 검수 요청 가능.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/cancel_approval" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 휴면 해제
장기간 미사용으로 휴면된 템플릿을 해제합니다. 해제 후 30일간 사용하지 않으면 재 휴면 처리됩니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/release" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}템플릿 전환 (채널 추가 버튼 부여)
기등록된 템플릿(BA / EX)을 "채널 추가 버튼" 및 **"채널 추가 안내 문구"**가 포함된 템플릿으로 전환합니다.
| 변환 | BA → AD / EX → MI |
|---|---|
| 채널 추가 버튼 | 무조건 맨 처음으로 추가 |
전환 실패 조건
- 템플릿에 버튼이 이미 5개인 경우
- 채널 추가 안내 문구(36자) 추가로 본문 964자 초과
- 기존 템플릿에 바로연결이 있으면서 버튼이 2개인 경우
- 휴면 등 비정상 상태의 템플릿
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| templateCode | string | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/convertAddCh" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}공용 템플릿 목록 조회
공용 템플릿 목록을 조회합니다. 세부 내용은 템플릿 상세 조회에서 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| since | string | — | 기준 시간 (yyyyMMddHHmmss). 기본: 요청 시간 1일 전 |
| page | integer | — | 요청 페이지 번호 (기본값: 1) |
| count | integer | — | 페이지 별 템플릿 개수 (기본값: 100) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/template/public/list" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"since": "string",
"page": 1,
"count": 100
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| hasNext | boolean | — | 다음 페이지 존재 여부 |
| data | array<object> | 필수 | 성공 시 반환 데이터 |
| └templateCode | string(30) | — | 템플릿 코드 |
| └templateName | string(200) | — | 템플릿 이름 |
| └status | string | — | 공용 템플릿 상태 (S: 중지, A: 정상, R: 대기/발송전) = S | A | R |
| └categoryCode | string | — | 템플릿 카테고리코드 |
| └releaseDate | string | — | 제공일자 (8자) |
| └previewImageUrl | string | — | 발송 샘플 이미지 URL |
{
"code": "200",
"message": "string",
"hasNext": true,
"data": [
{
"templateCode": "string",
"templateName": "string",
"status": "S",
"categoryCode": "string",
"releaseDate": "string",
"previewImageUrl": "string"
}
]
}파일
알림톡 템플릿용·발송용·하이라이트 이미지 업로드 (3개 엔드포인트, multipart/form-data)
알림톡 템플릿 등록용 이미지 업로드
이미지 알림톡 또는 아이템 리스트 알림톡 템플릿 등록 시 사용될 이미지를 업로드합니다.
| 항목 | 값 |
|---|---|
| 파일 포맷 | jpg, png |
| 최대 크기 | 500 KB |
| 가로 사이즈 | 500px 이상 |
| 가로:세로 비율 | 2:1 |
응답의 image URL을 템플릿 등록의 templateImageUrl에 사용.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/image/alimtalk/template" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}알림톡 발송 이미지 업로드
이미지 알림톡 또는 아이템 리스트 알림톡 발송 시 사용될 이미지를 업로드합니다.
| 항목 | 값 |
|---|---|
| 파일 포맷 | jpg, png |
| 최대 크기 | 500 KB |
| 가로 사이즈 | 500px 이상 |
| 가로:세로 비율 | 2:1 이상 3:4 이하 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/image/alimtalk" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}알림톡 아이템 하이라이트 이미지 업로드
아이템 리스트 알림톡 발송 시 사용될 아이템 하이라이트 썸네일 이미지를 업로드합니다.
| 항목 | 값 |
|---|---|
| 파일 포맷 | jpg, png |
| 최대 크기 | 500 KB |
| 가로 사이즈 | 108px 이상 |
| 가로:세로 비율 | 1:1 (정사각형) |
응답의 image URL을 템플릿 등록의 templateItemHighlight.imageUrl에 사용.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/image/alimtalk/itemHighlight" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}프로필
발신프로필 등록·조회·휴면 해제, 무료수신거부, 광고성 수신동의 증적 (11개 엔드포인트)
발신프로필 인증토큰 요청
발신프로필 등록을 위한 카카오톡 채널 인증 토큰을 요청합니다.
토큰은 Yellow ID(카카오톡 채널 관리자)의 휴대폰번호로 수신됩니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| phoneNumber | string | 필수 | 토큰을 수신할 휴대폰번호 (Yellow ID 핸드폰번호와 일치) |
| yellowId | string | 필수 | 카카오톡 채널 (@ID) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/token" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"phoneNumber": "01012345678",
"yellowId": "@my_channel"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}발신프로필 카테고리 전체 조회
발신프로필 등록 시 사용할 카테고리 목록 전체를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/category/all" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | 필수 | 성공 시 카테고리 목록 |
| └code | string | — | 카테고리 코드 |
| └name | string | — | 카테고리 이름 |
{
"code": "200",
"message": "string",
"data": [
{
"code": "string",
"name": "string"
}
]
}발신프로필 카테고리 단건 조회
카테고리 코드에 해당하는 특정 발신프로필 카테고리를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| categoryCode | string | 필수 | 카테고리 코드 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/category" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"categoryCode": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 카테고리 정보 |
| └code | string | — | 카테고리 코드 |
| └name | string | — | 카테고리 이름 |
{
"code": "200",
"message": "string",
"data": {
"code": "string",
"name": "string"
}
}발신프로필 등록
발신프로필 인증토큰 요청으로 받은 토큰을 사용하여 발신프로필을 등록합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| token | string | 필수 | 수신받은 인증 토큰 |
| phoneNumber | string | 필수 | 토큰을 수신할 휴대폰번호 (Yellow ID의 핸드폰번호와 일치) |
| yellowId | string | 필수 | 카카오톡 채널 (@ID) |
| categoryCode | string | 필수 | 카테고리 코드 |
| unsubscribePhoneNumber | string(13) | — | 무료수신거부 전화번호 (예: 080-1111-2222) |
| unsubscribeAuthNumber | string(10) | — | 무료수신거부 인증번호 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/create" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"token": "12345678",
"phoneNumber": "01012345678",
"yellowId": "@my_channel",
"categoryCode": "00100010001",
"unsubscribePhoneNumber": "080-1111-2222",
"unsubscribeAuthNumber": "00000"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 발신프로필 정보 |
| └senderKey | string | — | 발급된 발신프로필 키 |
{
"code": "200",
"message": "string",
"data": {
"senderKey": "string"
}
}발신프로필 조회
발신프로필 정보를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 발신프로필 상세 정보 |
| └senderKey | string | — | 조회된 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 UUID |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └status | string | — | 발신프로필 상태 |
| └block | boolean | — | 발신프로필 차단 여부 |
| └dormant | boolean | — | 발신프로필 휴면 여부 |
| └profileStatus | string | — | A=activated / C=deactivated / B=block / E=deleting / D=deleted = A | C | B | E | D |
| └createdAt | string | — | 발신프로필 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └categoryCode | string | — | 발신프로필 카테고리코드 |
| └unsubscribePhoneNumber | string | — | 무료수신거부 전화번호 |
| └unsubscribeAuthNumber | string | — | 무료수신거부 인증번호 |
| └bizchat | boolean | — | 상담톡 사용 여부 |
| └brandMessage | boolean | — | 브랜드메시지 사용 여부 |
| └committalCompanyName | string | — | 위탁사 이름 (상담톡 관련) |
| └channelKey | string | — | 메시지 전송 결과 수신 채널키 |
| └businessProfile | boolean | — | 카카오톡 채널 비즈니스 인증 여부 |
| └businessType | string | — | 카카오톡 채널 비즈니스 인증 타입 |
| └profileSpamLevel | string | — | 카카오톡 채널 스팸 상태 |
| └profileMessageSpamLevel | string | — | 카카오톡 메시지 스팸 상태 |
| └clearBlockUrl | string | — | 알림톡 차단 해제 링크 |
| └groups | array<object> | — | 발신프로필이 속한 그룹 목록 (전체/다중 조회 응답에만 포함) |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └createdAt | string | — | 발신프로필 등록일 |
{
"code": "200",
"message": "string",
"data": {
"senderKey": "string",
"uuid": "string",
"name": "string",
"status": "string",
"block": true,
"dormant": true,
"profileStatus": "A",
"createdAt": "string",
"modifiedAt": "string",
"categoryCode": "string",
"unsubscribePhoneNumber": "string",
"unsubscribeAuthNumber": "string",
"bizchat": true,
"brandMessage": true,
"committalCompanyName": "string",
"channelKey": "string",
"businessProfile": true,
"businessType": "string",
"profileSpamLevel": "string",
"profileMessageSpamLevel": "string",
"clearBlockUrl": "string",
"groups": [
{
"groupKey": "string",
"name": "string",
"createdAt": "string"
}
]
}
}발신프로필 리스트 전체 조회
bizId/apiKey로 인증된 모든 발신프로필을 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/use" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 성공 시 데이터 |
| └success | array<object> | — | 성공케이스에 대한 리스트 |
| └senderKey | string | — | 조회된 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 UUID |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └status | string | — | 발신프로필 상태 |
| └block | boolean | — | 발신프로필 차단 여부 |
| └dormant | boolean | — | 발신프로필 휴면 여부 |
| └profileStatus | string | — | A=activated / C=deactivated / B=block / E=deleting / D=deleted = A | C | B | E | D |
| └createdAt | string | — | 발신프로필 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └categoryCode | string | — | 발신프로필 카테고리코드 |
| └unsubscribePhoneNumber | string | — | 무료수신거부 전화번호 |
| └unsubscribeAuthNumber | string | — | 무료수신거부 인증번호 |
| └bizchat | boolean | — | 상담톡 사용 여부 |
| └brandMessage | boolean | — | 브랜드메시지 사용 여부 |
| └committalCompanyName | string | — | 위탁사 이름 (상담톡 관련) |
| └channelKey | string | — | 메시지 전송 결과 수신 채널키 |
| └businessProfile | boolean | — | 카카오톡 채널 비즈니스 인증 여부 |
| └businessType | string | — | 카카오톡 채널 비즈니스 인증 타입 |
| └profileSpamLevel | string | — | 카카오톡 채널 스팸 상태 |
| └profileMessageSpamLevel | string | — | 카카오톡 메시지 스팸 상태 |
| └clearBlockUrl | string | — | 알림톡 차단 해제 링크 |
| └groups | array<object> | — | 발신프로필이 속한 그룹 목록 (전체/다중 조회 응답에만 포함) |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └createdAt | string | — | 발신프로필 등록일 |
| └fail | array<object> | — | 실패케이스에 대한 리스트 |
| └senderKey | string | — | 발신 프로필 키 |
| └code | string | — | 실패 결과 코드 |
| └message | string | — | 실패 메시지 |
{
"code": "200",
"message": "string",
"data": {
"success": [
{
"senderKey": "string",
"uuid": "string",
"name": "string",
"status": "string",
"block": true,
"dormant": true,
"profileStatus": "A",
"createdAt": "string",
"modifiedAt": "string",
"categoryCode": "string",
"unsubscribePhoneNumber": "string",
"unsubscribeAuthNumber": "string",
"bizchat": true,
"brandMessage": true,
"committalCompanyName": "string",
"channelKey": "string",
"businessProfile": true,
"businessType": "string",
"profileSpamLevel": "string",
"profileMessageSpamLevel": "string",
"clearBlockUrl": "string",
"groups": [
{}
]
}
],
"fail": [
{
"senderKey": "string",
"code": "string",
"message": "string"
}
]
}
}발신프로필 리스트 조회 (다중 키)
특정 senderKey 배열에 대해 일괄 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | array<string> | 필수 | 발신프로필 키 배열 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/multi" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": [
"05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"03423ege2545c0b2XXXXXXXXXXXXX"
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 성공 시 데이터 |
| └success | array<object> | — | 성공케이스에 대한 리스트 |
| └senderKey | string | — | 조회된 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 UUID |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └status | string | — | 발신프로필 상태 |
| └block | boolean | — | 발신프로필 차단 여부 |
| └dormant | boolean | — | 발신프로필 휴면 여부 |
| └profileStatus | string | — | A=activated / C=deactivated / B=block / E=deleting / D=deleted = A | C | B | E | D |
| └createdAt | string | — | 발신프로필 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └categoryCode | string | — | 발신프로필 카테고리코드 |
| └unsubscribePhoneNumber | string | — | 무료수신거부 전화번호 |
| └unsubscribeAuthNumber | string | — | 무료수신거부 인증번호 |
| └bizchat | boolean | — | 상담톡 사용 여부 |
| └brandMessage | boolean | — | 브랜드메시지 사용 여부 |
| └committalCompanyName | string | — | 위탁사 이름 (상담톡 관련) |
| └channelKey | string | — | 메시지 전송 결과 수신 채널키 |
| └businessProfile | boolean | — | 카카오톡 채널 비즈니스 인증 여부 |
| └businessType | string | — | 카카오톡 채널 비즈니스 인증 타입 |
| └profileSpamLevel | string | — | 카카오톡 채널 스팸 상태 |
| └profileMessageSpamLevel | string | — | 카카오톡 메시지 스팸 상태 |
| └clearBlockUrl | string | — | 알림톡 차단 해제 링크 |
| └groups | array<object> | — | 발신프로필이 속한 그룹 목록 (전체/다중 조회 응답에만 포함) |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 카카오톡 채널 발신프로필 명 |
| └createdAt | string | — | 발신프로필 등록일 |
| └fail | array<object> | — | 실패케이스에 대한 리스트 |
| └senderKey | string | — | 발신 프로필 키 |
| └code | string | — | 실패 결과 코드 |
| └message | string | — | 실패 메시지 |
{
"code": "200",
"message": "string",
"data": {
"success": [
{
"senderKey": "string",
"uuid": "string",
"name": "string",
"status": "string",
"block": true,
"dormant": true,
"profileStatus": "A",
"createdAt": "string",
"modifiedAt": "string",
"categoryCode": "string",
"unsubscribePhoneNumber": "string",
"unsubscribeAuthNumber": "string",
"bizchat": true,
"brandMessage": true,
"committalCompanyName": "string",
"channelKey": "string",
"businessProfile": true,
"businessType": "string",
"profileSpamLevel": "string",
"profileMessageSpamLevel": "string",
"clearBlockUrl": "string",
"groups": [
{}
]
}
],
"fail": [
{
"senderKey": "string",
"code": "string",
"message": "string"
}
]
}
}미사용 프로필 휴면 해제
장기 미사용으로 휴면 상태인 발신프로필을 차단 해제합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/profile/recover" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}발신프로필 무료수신거부 정보 수정
브랜드메시지 발송 시 사용되는 080 무료수신거부 정보를 수정합니다.
ℹ️ 이 엔드포인트는
/v4/버전 경로를 사용합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| unsubscribePhoneNumber | string(13) | 필수 | 무료수신거부 전화번호 (예: 080-1111-2222) |
| unsubscribeAuthNumber | string(10) | — | 무료수신거부 인증번호 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/profile/unsubscribeContent/update" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"unsubscribePhoneNumber": "080-1111-2222",
"unsubscribeAuthNumber": "00000"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}광고성 정보 수신동의 증적자료 파일 업로드
브랜드메시지 사용 신청 전제 조건. 광고성 정보 수신동의 증적자료를 업로드합니다.
| 항목 | 값 |
|---|---|
| 확장자 | jpg, png |
| 최대 크기 | 5 MB |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| file | string <binary> | 필수 | 업로드할 증적 파일 (jpg/png, 5MB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/profile/marketingAgree/upload" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string",
"file": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 업로드 정보 |
| └fileKey | string | — | 파일 키 |
| └fileUrl | string | — | 파일 url |
{
"code": "200",
"message": "string",
"data": {
"fileKey": "string",
"fileUrl": "string"
}
}발신프로필 브랜드메시지 사용 신청
브랜드메시지 타겟팅 M / N 사용을 신청합니다.
신청 전 광고성 정보 수신동의 증적자료가 업로드되어 있어야 합니다 (업로드).
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/profile/brandMessage/apply" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}그룹
발신프로필 그룹 조회 · 구성원 추가/삭제 (4개 엔드포인트)
그룹 조회
발신프로필 그룹 목록을 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
curl -X POST "https://kapi.ppurio.com/v3/kakao/group" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | — | 성공 시 그룹 목록 |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 그룹이름 |
| └createdAt | string | — | 생성일자 |
{
"code": "200",
"message": "string",
"data": [
{
"groupKey": "string",
"name": "string",
"createdAt": "string"
}
]
}그룹 전체 조회
발신프로필 그룹 전체 목록을 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
curl -X POST "https://kapi.ppurio.com/v3/kakao/group/all" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | — | 성공 시 그룹 목록 |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 그룹이름 |
| └createdAt | string | — | 생성일자 |
{
"code": "200",
"message": "string",
"data": [
{
"groupKey": "string",
"name": "string",
"createdAt": "string"
}
]
}그룹에 발신프로필 추가
발신프로필 그룹에 발신프로필을 추가합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupKey | string | 필수 | 발신프로필 그룹 키 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/group/profile/add" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"groupKey": "grp_marketing_01",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 그룹 정보 |
| └groupKey | string | — | 그룹 key |
| └name | string | — | 그룹이름 |
| └createdAt | string | — | 생성일자 |
{
"code": "200",
"message": "string",
"data": {
"groupKey": "string",
"name": "string",
"createdAt": "string"
}
}그룹에서 발신프로필 삭제
발신프로필 그룹에서 발신프로필을 삭제합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupKey | string | 필수 | 발신프로필 그룹 키 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/group/profile/delete" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string",
"groupKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}그룹 태그
통계용 그룹태그 CRUD (5개 엔드포인트, /v4/ 경로)
그룹태그 한 건 조회
그룹태그 키에 해당하는 특정 그룹태그를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupTagKey | string | 필수 | 그룹태그 키 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/groupTag" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string",
"groupTagKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 그룹태그 정보 |
| └groupTagKey | string | — | 그룹태그 키 |
| └groupTagName | string | — | 그룹태그 이름 |
{
"code": "200",
"message": "string",
"data": {
"groupTagKey": "string",
"groupTagName": "string"
}
}그룹태그 목록 조회
발신프로필에 등록된 그룹태그 목록 전체를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/groupTag/list" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | 필수 | 성공 시 그룹태그 목록 |
| └groupTagKey | string | — | 그룹태그 키 |
| └groupTagName | string | — | 그룹태그 이름 |
{
"code": "200",
"message": "string",
"data": [
{
"groupTagKey": "string",
"groupTagName": "string"
}
]
}그룹태그 등록
메시지 발송 요청 시 사용하는 그룹태그를 등록합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupTagName | string(1~200) | 필수 | 그룹태그 이름 — 한글/영문/숫자/특수문자( !@%&*-_?~/.,)/공백 포함 1~200자 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/groupTag/create" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"groupTagName": "6월 프로모션"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 그룹태그 정보 |
| └groupTagKey | string | — | 그룹태그 키 |
| └groupTagName | string | — | 그룹태그 이름 |
{
"code": "200",
"message": "string",
"data": {
"groupTagKey": "string",
"groupTagName": "string"
}
}그룹태그 수정
그룹태그 키에 해당하는 그룹태그 이름을 수정합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupTagKey | string | 필수 | 그룹태그 키 |
| newGroupTagName | string(1~200) | 필수 | 변경할 그룹태그 이름 (1~200자) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/groupTag/update" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"groupTagKey": "gt_0001",
"newGroupTagName": "7월 프로모션"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | 필수 | 성공 시 그룹태그 정보 |
| └groupTagKey | string | — | 그룹태그 키 |
| └groupTagName | string | — | 그룹태그 이름 |
{
"code": "200",
"message": "string",
"data": {
"groupTagKey": "string",
"groupTagName": "string"
}
}그룹태그 삭제
그룹태그 키에 해당하는 그룹태그를 삭제합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| groupTagKey | string | 필수 | 그룹태그 키 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/groupTag/delete" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"senderKey": "string",
"groupTagKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}플러그인 콜백
알림톡 플러그인(이미지 보안·개인정보) 콜백 URL CRUD (4개 엔드포인트)
플러그인 콜백 URL 조회
발신프로필 키로 해당 카카오톡 채널에 등록된 플러그인 콜백 URL 목록을 조회합니다.
pluginType
SECURE_IMAGE— 이미지 보안 전송 (알림톡 버튼P1)ONE_TIME_PROFILE— 개인정보 이용 (알림톡 버튼P2)
ℹ️ 플러그인 콜백 URL은 플러그인당 1개, 카카오톡 채널 기준으로 저장됩니다. 동일한 카카오톡 채널의 콜백 URL은 공유됩니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
curl -X POST "https://kapi.ppurio.com/v3/kakao/plugin/callbackUrl/list" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | array<object> | 필수 | 성공 시 플러그인 콜백 URL 목록 |
| └pluginId | string | — | 플러그인 아이디 |
| └pluginType | string | — | 플러그인 타입 (SECURE_IMAGE: 보안이미지전송, ONE_TIME_PROFILE: 개인정보이용) = SECURE_IMAGE | ONE_TIME_PROFILE |
| └pluginTypeName | string | — | 플러그인 타입 이름 |
| └callbackUrl | string | — | Callback Url |
| └modifiable | boolean | — | 수정 가능 여부 (다른 허브파트너 등록 시 false) |
| └deletable | boolean | — | 삭제 가능 여부 (다른 허브파트너 등록 시 false) |
{
"code": "200",
"message": "string",
"data": [
{
"pluginId": "string",
"pluginType": "SECURE_IMAGE",
"pluginTypeName": "string",
"callbackUrl": "string",
"modifiable": true,
"deletable": true
}
]
}플러그인 콜백 URL 등록
발신프로필 키로 해당 카카오톡 채널에 플러그인 콜백 URL을 등록합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| pluginType | string | 필수 | 플러그인 타입 (SECURE_IMAGE, ONE_TIME_PROFILE) = SECURE_IMAGE | ONE_TIME_PROFILE |
| pluginId | string | 필수 | 플러그인 아이디 |
| callbackUrl | string | 필수 | 콜백 URL |
curl -X POST "https://kapi.ppurio.com/v3/kakao/plugin/callbackUrl/create" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"pluginType": "SECURE_IMAGE",
"pluginId": "12345",
"callbackUrl": "https://example.com/secure-image"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}플러그인 콜백 URL 수정
발신프로필 키로 해당 카카오톡 채널에 등록된 플러그인 콜백 URL을 수정합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| pluginId | string | 필수 | 플러그인 아이디 |
| callbackUrl | string | 필수 | 콜백 URL |
curl -X POST "https://kapi.ppurio.com/v3/kakao/plugin/callbackUrl/update" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"pluginId": "12345",
"callbackUrl": "https://example.com/secure-image-v2"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}플러그인 콜백 URL 삭제
발신프로필 키로 해당 카카오톡 채널에 등록된 플러그인 콜백 URL을 삭제합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| pluginId | string | 필수 | 플러그인 아이디 |
curl -X POST "https://kapi.ppurio.com/v3/kakao/plugin/callbackUrl/delete" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"pluginId": "12345"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}브랜드 템플릿
카카오 브랜드메시지(UT~UA) 기본형 템플릿 CRUD + 변경 이력 (6개 엔드포인트, /v4/ 경로)
브랜드메시지 템플릿 등록
브랜드메시지 기본형 템플릿을 등록합니다.
사전에 발신프로필이 등록되어 있어야 하고, 메시지 타입(chatBubbleType)에 맞는 이미지 규격을 사용해야 합니다.
메시지 타입별 필수 파라미터
chatBubbleType |
필수 |
|---|---|
TEXT |
senderKey, templateName, chatBubbleType, content |
IMAGE |
+ imageUrl |
WIDE |
+ imageUrl |
WIDE_ITEM_LIST |
senderKey, templateName, chatBubbleType, header, mainWideItem, subWideItemList |
CAROUSEL_FEED |
senderKey, templateName, chatBubbleType, carousel.list |
PREMIUM_VIDEO |
senderKey, templateName, chatBubbleType, video |
COMMERCE |
+ imageUrl, commerce, buttons |
CAROUSEL_COMMERCE |
senderKey, templateName, chatBubbleType, carousel.list |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | S=일반(default) / G=그룹 = S | G |
| templateName | string | 필수 | 템플릿 이름 (수정 시 최대 200자) |
| chatBubbleType | string | 필수 | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| adult | boolean | — | 성인 콘텐츠 여부 |
| header | string | — | WIDE_ITEM_LIST 1~20자 / PREMIUM_VIDEO 최대 20자 (줄바꿈 불가) |
| content | string | — | TEXT/IMAGE 최대 1300자 / WIDE/PREMIUM_VIDEO 최대 76자 |
| additionalContent | string(34) | — | 부가정보 (줄바꿈 최대 1개) |
| imageUrl | string | — | 이미지 업로드 API로 등록한 이미지 URL |
| imageLink | string | — | 이미지 클릭 시 이동 URL |
| carousel | object | — | 캐러셀 (CAROUSEL_FEED / CAROUSEL_COMMERCE 사용) |
| └head | object | — | 캐러셀 인트로 (CAROUSEL_COMMERCE에서 사용) |
| └header | string(20) | — | 인트로 헤더 (줄바꿈 불가) |
| └content | string(50) | — | 인트로 내용 (줄바꿈 최대 2개) |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └list | array<object> | — | 캐러셀 리스트 (CAROUSEL_COMMERCE는 인트로 포함 시 1~6개, 미포함 시 2~6개) |
| └header | string(20) | — | CAROUSEL_FEED 헤더 (줄바꿈 불가) |
| └content | string(180) | — | CAROUSEL_FEED 내용 (줄바꿈 최대 10개) |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 캐러셀 리스트 이미지 URL |
| └imageLink | string | — | 캐러셀 리스트 이미지 클릭시 이동할 URL |
| └commerce | object | — | 커머스 요소. 가격 미입력 시 고정 변수로 저장:
|
| └title | string | 필수 | 상품 제목 (줄바꿈 불가, 변수 가능) |
| └regularPrice | integer(0~99999999) | — | 정상 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{정상가격})로 저장 |
| └discountPrice | integer(0~99999999) | — | 할인 후 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{할인가격})로 저장 |
| └discountRate | integer(0~100) | — | 할인율 (0 ~ 100) 값이 없을 경우 고정 변수(변수명: #{할인율})로 저장 |
| └discountFixed | integer(0~999999) | — | 정액 할인 가격 (0 ~ 999,999) 값이 없을 경우 고정 변수(변수명: #{정액할인가격})로 저장 |
| └regularPriceName | string | — | 정상 가격 고정변수명 ( regularPrice 미입력 시 응답에 반환) |
| └discountPriceName | string | — | 할인 후 가격 고정변수명 ( discountPrice 미입력 시 응답에 반환) |
| └discountRateName | string | — | 할인율 고정변수명 ( discountRate 미입력 시 응답에 반환) |
| └discountFixedName | string | — | 정액 할인 가격 고정변수명 ( discountFixed 미입력 시 응답에 반환) |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └name | string | 필수 | 버튼 제목 — TEXT/IMAGE 14자, 그 외 8자 (줄바꿈 불가) |
| └linkType | string | 필수 | 버튼 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, AC: 채널추가, BF: 비즈니스폼, BT :봇전환, BC:상담톡전환 ) = WL | AL | BK | AC | BF | BT | BC |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └bizFormId | string | — | 비즈니스폼 ID ( BF 사용 시) |
| └ordering | integer | — | 버튼 정렬 순서 |
| └coupon | object | — | 쿠폰 요소.
|
| └title | string | — | 5가지 형식 중 하나 |
| └description | string | — | WIDE/WIDE_ITEM_LIST/PREMIUM_VIDEO 최대 18자 / 그 외 12자 (줄바꿈 불가) |
| └linkMobile | string | — | 기본 쿠폰 사용 시 필수 |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | 채널 쿠폰 URL (alimtalk=coupon://) 사용 시 linkIos와 함께 둘 중 하나 필수 |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └tail | object | — | 더보기 버튼 (변수 사용 불가) |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| mainWideItem | object | — | 와이드 아이템 (WIDE_ITEM_LIST 사용) |
| └title | string | — | 아이템 제목 |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 아이템 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| subWideItemList | array<object>(~4) | — | 와이드 리스트 2~5번째 아이템 |
| └title | string | — | 아이템 제목 |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 아이템 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| video | object | — | 동영상 객체 (PREMIUM_VIDEO 필수) |
| commerce | object | — | 커머스 요소. 가격 미입력 시 고정 변수로 저장:
|
| └title | string | 필수 | 상품 제목 (줄바꿈 불가, 변수 가능) |
| └regularPrice | integer(0~99999999) | — | 정상 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{정상가격})로 저장 |
| └discountPrice | integer(0~99999999) | — | 할인 후 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{할인가격})로 저장 |
| └discountRate | integer(0~100) | — | 할인율 (0 ~ 100) 값이 없을 경우 고정 변수(변수명: #{할인율})로 저장 |
| └discountFixed | integer(0~999999) | — | 정액 할인 가격 (0 ~ 999,999) 값이 없을 경우 고정 변수(변수명: #{정액할인가격})로 저장 |
| └regularPriceName | string | — | 정상 가격 고정변수명 ( regularPrice 미입력 시 응답에 반환) |
| └discountPriceName | string | — | 할인 후 가격 고정변수명 ( discountPrice 미입력 시 응답에 반환) |
| └discountRateName | string | — | 할인율 고정변수명 ( discountRate 미입력 시 응답에 반환) |
| └discountFixedName | string | — | 정액 할인 가격 고정변수명 ( discountFixed 미입력 시 응답에 반환) |
| buttons | array<object> | — | 버튼 배열. |
| └name | string | 필수 | 버튼 제목 — TEXT/IMAGE 14자, 그 외 8자 (줄바꿈 불가) |
| └linkType | string | 필수 | 버튼 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, AC: 채널추가, BF: 비즈니스폼, BT :봇전환, BC:상담톡전환 ) = WL | AL | BK | AC | BF | BT | BC |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └bizFormId | string | — | 비즈니스폼 ID ( BF 사용 시) |
| └ordering | integer | — | 버튼 정렬 순서 |
| coupon | object | — | 쿠폰 요소.
|
| └title | string | — | 5가지 형식 중 하나 |
| └description | string | — | WIDE/WIDE_ITEM_LIST/PREMIUM_VIDEO 최대 18자 / 그 외 12자 (줄바꿈 불가) |
| └linkMobile | string | — | 기본 쿠폰 사용 시 필수 |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | 채널 쿠폰 URL (alimtalk=coupon://) 사용 시 linkIos와 함께 둘 중 하나 필수 |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/add" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateName": "봄 신상 캐러셀 피드",
"chatBubbleType": "CAROUSEL_FEED",
"adult": false,
"carousel": {
"list": [
{
"header": "봄 신상 트렌치코트",
"content": "가볍고 따뜻한 봄 트렌치코트를 만나보세요.",
"imageUrl": "https://mud-kage.kakao.com/dn/sample1/img_l.jpg",
"buttons": [
{
"name": "구매하기",
"linkType": "WL",
"linkMobile": "https://m.example.com/coat",
"linkPc": "https://example.com/coat"
}
],
"coupon": {
"title": "#{할인금액}원 할인 쿠폰",
"description": "봄맞이 특별 할인",
"linkIos": "alimtalk=coupon://_sample/_ios",
"linkAndroid": "alimtalk=coupon://_sample/_and"
}
},
{
"header": "여름 시즌 원피스",
"content": "시원한 소재의 여름 원피스 컬렉션.",
"imageUrl": "https://mud-kage.kakao.com/dn/sample2/img_l.jpg",
"buttons": [
{
"name": "구매하기",
"linkType": "WL",
"linkMobile": "https://m.example.com/dress",
"linkPc": "https://example.com/dress"
}
]
}
],
"tail": {
"linkMobile": "https://m.example.com/new"
}
}
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 브랜드메시지 템플릿 상세 정보 |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └chatBubbleType | string | — | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) |
| └content | string | — | 템플릿 내용 - TEXT, IMAGE - 최대 1,300자 (줄바꿈: 최대 99개, URL 형식 입력 가능) - WIDE, PREMIUM_VIDEO - 최대 76자 (줄바꿈: 최대 5개) |
| └adult | boolean | — | 성인 콘텐츠 여부 |
| └imageLink | string | — | 이미지 클릭시 이동 URL |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └header | string | — | 캐러셀 인트로 헤더 최대 20자 (줄바꿈: 불가) |
| └additionalContent | string | — | 템플릿 부가정보 - 공백 포함 최대 34자 (줄바꿈: 최대 1개) |
| └carousel | object | — | 커머스 요소 |
| └wideItemList | array<object> | — | 와이드 리스트 목록 (9.1 템플릿 등록 참고) |
| └video | object | — | O |
| └commerce | object | — | 메시지 표기 방식에 따라 regularPrice, discountPrice, discountRate, discountFixed은 다음과 같이 사용할 수 있습니다. 정상 가격으로 표기 : regularPrice 정상 가격 + 할인 후 가격(할인율 포함)으로 표기 : regularPrice, discountPrice, discountRate 정상 가격 + 할인 후 가격(정액 할인 가격 포함)으로 표기 : regularPrice, discountPrice, discountFixed regularPrice, discountPrice, discountRate, discountFixed 값을 입력하지 않을 경우 고정 변수명으로 저장됩니다. 고정 변수명을 사용하면 메시지 발송 시 금액을 변경하여 메시지를 발송 할 수 있습니다. |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └coupon | object | — | 채널 쿠폰 URL(포맷: alimtalk=coupon://) 사용시 linkAndroid, linkIos 중 하나 필수 입력 채널 쿠폰 URL이 아닌 기본 쿠폰 사용시 linkMobile 필수 입력 |
| └createdAt | string | — | 등록일시 (yyyy-MM-dd HH:mm:ss) |
| └modifiedAt | string | — | 수정일시 (yyyy-MM-dd HH:mm:ss) |
| └status | string | — | A=등록 / S=차단 = A | S |
{
"code": "200",
"message": "string",
"data": {
"templateCode": "string",
"templateName": "string",
"chatBubbleType": "string",
"content": "string",
"adult": true,
"imageLink": "string",
"imageUrl": "string",
"header": "string",
"additionalContent": "string",
"carousel": {},
"wideItemList": [
{}
],
"video": {},
"commerce": {},
"buttons": [
{}
],
"coupon": {},
"createdAt": "string",
"modifiedAt": "string",
"status": "A"
}
}브랜드메시지 템플릿 조회
발신프로필에 등록된 브랜드메시지 템플릿의 상세 정보를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/detail" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 브랜드메시지 템플릿 상세 정보 |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └chatBubbleType | string | — | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) |
| └content | string | — | 템플릿 내용 - TEXT, IMAGE - 최대 1,300자 (줄바꿈: 최대 99개, URL 형식 입력 가능) - WIDE, PREMIUM_VIDEO - 최대 76자 (줄바꿈: 최대 5개) |
| └adult | boolean | — | 성인 콘텐츠 여부 |
| └imageLink | string | — | 이미지 클릭시 이동 URL |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └header | string | — | 캐러셀 인트로 헤더 최대 20자 (줄바꿈: 불가) |
| └additionalContent | string | — | 템플릿 부가정보 - 공백 포함 최대 34자 (줄바꿈: 최대 1개) |
| └carousel | object | — | 커머스 요소 |
| └wideItemList | array<object> | — | 와이드 리스트 목록 (9.1 템플릿 등록 참고) |
| └video | object | — | O |
| └commerce | object | — | 메시지 표기 방식에 따라 regularPrice, discountPrice, discountRate, discountFixed은 다음과 같이 사용할 수 있습니다. 정상 가격으로 표기 : regularPrice 정상 가격 + 할인 후 가격(할인율 포함)으로 표기 : regularPrice, discountPrice, discountRate 정상 가격 + 할인 후 가격(정액 할인 가격 포함)으로 표기 : regularPrice, discountPrice, discountFixed regularPrice, discountPrice, discountRate, discountFixed 값을 입력하지 않을 경우 고정 변수명으로 저장됩니다. 고정 변수명을 사용하면 메시지 발송 시 금액을 변경하여 메시지를 발송 할 수 있습니다. |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └coupon | object | — | 채널 쿠폰 URL(포맷: alimtalk=coupon://) 사용시 linkAndroid, linkIos 중 하나 필수 입력 채널 쿠폰 URL이 아닌 기본 쿠폰 사용시 linkMobile 필수 입력 |
| └createdAt | string | — | 등록일시 (yyyy-MM-dd HH:mm:ss) |
| └modifiedAt | string | — | 수정일시 (yyyy-MM-dd HH:mm:ss) |
| └status | string | — | A=등록 / S=차단 = A | S |
{
"code": "200",
"message": "string",
"data": {
"templateCode": "string",
"templateName": "string",
"chatBubbleType": "string",
"content": "string",
"adult": true,
"imageLink": "string",
"imageUrl": "string",
"header": "string",
"additionalContent": "string",
"carousel": {},
"wideItemList": [
{}
],
"video": {},
"commerce": {},
"buttons": [
{}
],
"coupon": {},
"createdAt": "string",
"modifiedAt": "string",
"status": "A"
}
}브랜드메시지 템플릿 수정
등록의 모든 필드 + templateCode (필수). templateName 최대 200자.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | S=일반(default) / G=그룹 = S | G |
| templateName | string | 필수 | 템플릿 이름 (수정 시 최대 200자) |
| chatBubbleType | string | 필수 | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| adult | boolean | — | 성인 콘텐츠 여부 |
| header | string | — | WIDE_ITEM_LIST 1~20자 / PREMIUM_VIDEO 최대 20자 (줄바꿈 불가) |
| content | string | — | TEXT/IMAGE 최대 1300자 / WIDE/PREMIUM_VIDEO 최대 76자 |
| additionalContent | string(34) | — | 부가정보 (줄바꿈 최대 1개) |
| imageUrl | string | — | 이미지 업로드 API로 등록한 이미지 URL |
| imageLink | string | — | 이미지 클릭 시 이동 URL |
| carousel | object | — | 캐러셀 (CAROUSEL_FEED / CAROUSEL_COMMERCE 사용) |
| └head | object | — | 캐러셀 인트로 (CAROUSEL_COMMERCE에서 사용) |
| └header | string(20) | — | 인트로 헤더 (줄바꿈 불가) |
| └content | string(50) | — | 인트로 내용 (줄바꿈 최대 2개) |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └list | array<object> | — | 캐러셀 리스트 (CAROUSEL_COMMERCE는 인트로 포함 시 1~6개, 미포함 시 2~6개) |
| └header | string(20) | — | CAROUSEL_FEED 헤더 (줄바꿈 불가) |
| └content | string(180) | — | CAROUSEL_FEED 내용 (줄바꿈 최대 10개) |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 캐러셀 리스트 이미지 URL |
| └imageLink | string | — | 캐러셀 리스트 이미지 클릭시 이동할 URL |
| └commerce | object | — | 커머스 요소. 가격 미입력 시 고정 변수로 저장:
|
| └title | string | 필수 | 상품 제목 (줄바꿈 불가, 변수 가능) |
| └regularPrice | integer(0~99999999) | — | 정상 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{정상가격})로 저장 |
| └discountPrice | integer(0~99999999) | — | 할인 후 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{할인가격})로 저장 |
| └discountRate | integer(0~100) | — | 할인율 (0 ~ 100) 값이 없을 경우 고정 변수(변수명: #{할인율})로 저장 |
| └discountFixed | integer(0~999999) | — | 정액 할인 가격 (0 ~ 999,999) 값이 없을 경우 고정 변수(변수명: #{정액할인가격})로 저장 |
| └regularPriceName | string | — | 정상 가격 고정변수명 ( regularPrice 미입력 시 응답에 반환) |
| └discountPriceName | string | — | 할인 후 가격 고정변수명 ( discountPrice 미입력 시 응답에 반환) |
| └discountRateName | string | — | 할인율 고정변수명 ( discountRate 미입력 시 응답에 반환) |
| └discountFixedName | string | — | 정액 할인 가격 고정변수명 ( discountFixed 미입력 시 응답에 반환) |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └name | string | 필수 | 버튼 제목 — TEXT/IMAGE 14자, 그 외 8자 (줄바꿈 불가) |
| └linkType | string | 필수 | 버튼 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, AC: 채널추가, BF: 비즈니스폼, BT :봇전환, BC:상담톡전환 ) = WL | AL | BK | AC | BF | BT | BC |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └bizFormId | string | — | 비즈니스폼 ID ( BF 사용 시) |
| └ordering | integer | — | 버튼 정렬 순서 |
| └coupon | object | — | 쿠폰 요소.
|
| └title | string | — | 5가지 형식 중 하나 |
| └description | string | — | WIDE/WIDE_ITEM_LIST/PREMIUM_VIDEO 최대 18자 / 그 외 12자 (줄바꿈 불가) |
| └linkMobile | string | — | 기본 쿠폰 사용 시 필수 |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | 채널 쿠폰 URL (alimtalk=coupon://) 사용 시 linkIos와 함께 둘 중 하나 필수 |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └tail | object | — | 더보기 버튼 (변수 사용 불가) |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| mainWideItem | object | — | 와이드 아이템 (WIDE_ITEM_LIST 사용) |
| └title | string | — | 아이템 제목 |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 아이템 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| subWideItemList | array<object>(~4) | — | 와이드 리스트 2~5번째 아이템 |
| └title | string | — | 아이템 제목 |
| └imageUrl | string | — | 이미지 업로드 API로 등록한 아이템 이미지 URL |
| └linkMobile | string | — | MOBILE 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 쿠폰 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 쿠폰 클릭 시 실행할 application custom scheme |
| video | object | — | 동영상 객체 (PREMIUM_VIDEO 필수) |
| commerce | object | — | 커머스 요소. 가격 미입력 시 고정 변수로 저장:
|
| └title | string | 필수 | 상품 제목 (줄바꿈 불가, 변수 가능) |
| └regularPrice | integer(0~99999999) | — | 정상 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{정상가격})로 저장 |
| └discountPrice | integer(0~99999999) | — | 할인 후 가격 (0 ~ 99,999,999) 값이 없을 경우 고정 변수(변수명: #{할인가격})로 저장 |
| └discountRate | integer(0~100) | — | 할인율 (0 ~ 100) 값이 없을 경우 고정 변수(변수명: #{할인율})로 저장 |
| └discountFixed | integer(0~999999) | — | 정액 할인 가격 (0 ~ 999,999) 값이 없을 경우 고정 변수(변수명: #{정액할인가격})로 저장 |
| └regularPriceName | string | — | 정상 가격 고정변수명 ( regularPrice 미입력 시 응답에 반환) |
| └discountPriceName | string | — | 할인 후 가격 고정변수명 ( discountPrice 미입력 시 응답에 반환) |
| └discountRateName | string | — | 할인율 고정변수명 ( discountRate 미입력 시 응답에 반환) |
| └discountFixedName | string | — | 정액 할인 가격 고정변수명 ( discountFixed 미입력 시 응답에 반환) |
| buttons | array<object> | — | 버튼 배열. |
| └name | string | 필수 | 버튼 제목 — TEXT/IMAGE 14자, 그 외 8자 (줄바꿈 불가) |
| └linkType | string | 필수 | 버튼 링크타입 (WL:웹링크, AL:앱링크, BK:봇키워드, AC: 채널추가, BF: 비즈니스폼, BT :봇전환, BC:상담톡전환 ) = WL | AL | BK | AC | BF | BT | BC |
| └linkMobile | string | — | MOBILE 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | MOBILE Android 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| └bizFormId | string | — | 비즈니스폼 ID ( BF 사용 시) |
| └ordering | integer | — | 버튼 정렬 순서 |
| coupon | object | — | 쿠폰 요소.
|
| └title | string | — | 5가지 형식 중 하나 |
| └description | string | — | WIDE/WIDE_ITEM_LIST/PREMIUM_VIDEO 최대 18자 / 그 외 12자 (줄바꿈 불가) |
| └linkMobile | string | — | 기본 쿠폰 사용 시 필수 |
| └linkPc | string | — | PC 환경에서 캐러셀 인트로 클릭 시 이동할 URL |
| └linkAndroid | string | — | 채널 쿠폰 URL (alimtalk=coupon://) 사용 시 linkIos와 함께 둘 중 하나 필수 |
| └linkIos | string | — | MOBILE iOS 환경에서 캐러셀 인트로 클릭 시 실행할 application custom scheme |
| templateCode | string | 필수 | 수정 대상 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/update" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateName": "봄 신상 캐러셀 피드",
"chatBubbleType": "CAROUSEL_FEED",
"adult": false,
"carousel": {
"list": [
{
"header": "봄 신상 트렌치코트",
"content": "가볍고 따뜻한 봄 트렌치코트를 만나보세요.",
"imageUrl": "https://mud-kage.kakao.com/dn/sample1/img_l.jpg",
"buttons": [
{
"name": "구매하기",
"linkType": "WL",
"linkMobile": "https://m.example.com/coat",
"linkPc": "https://example.com/coat"
}
],
"coupon": {
"title": "#{할인금액}원 할인 쿠폰",
"description": "봄맞이 특별 할인",
"linkIos": "alimtalk=coupon://_sample/_ios",
"linkAndroid": "alimtalk=coupon://_sample/_and"
}
},
{
"header": "여름 시즌 원피스",
"content": "시원한 소재의 여름 원피스 컬렉션.",
"imageUrl": "https://mud-kage.kakao.com/dn/sample2/img_l.jpg",
"buttons": [
{
"name": "구매하기",
"linkType": "WL",
"linkMobile": "https://m.example.com/dress",
"linkPc": "https://example.com/dress"
}
]
}
],
"tail": {
"linkMobile": "https://m.example.com/new"
}
},
"templateCode": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 브랜드메시지 템플릿 상세 정보 |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └chatBubbleType | string | — | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) |
| └content | string | — | 템플릿 내용 - TEXT, IMAGE - 최대 1,300자 (줄바꿈: 최대 99개, URL 형식 입력 가능) - WIDE, PREMIUM_VIDEO - 최대 76자 (줄바꿈: 최대 5개) |
| └adult | boolean | — | 성인 콘텐츠 여부 |
| └imageLink | string | — | 이미지 클릭시 이동 URL |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └header | string | — | 캐러셀 인트로 헤더 최대 20자 (줄바꿈: 불가) |
| └additionalContent | string | — | 템플릿 부가정보 - 공백 포함 최대 34자 (줄바꿈: 최대 1개) |
| └carousel | object | — | 커머스 요소 |
| └wideItemList | array<object> | — | 와이드 리스트 목록 (9.1 템플릿 등록 참고) |
| └video | object | — | O |
| └commerce | object | — | 메시지 표기 방식에 따라 regularPrice, discountPrice, discountRate, discountFixed은 다음과 같이 사용할 수 있습니다. 정상 가격으로 표기 : regularPrice 정상 가격 + 할인 후 가격(할인율 포함)으로 표기 : regularPrice, discountPrice, discountRate 정상 가격 + 할인 후 가격(정액 할인 가격 포함)으로 표기 : regularPrice, discountPrice, discountFixed regularPrice, discountPrice, discountRate, discountFixed 값을 입력하지 않을 경우 고정 변수명으로 저장됩니다. 고정 변수명을 사용하면 메시지 발송 시 금액을 변경하여 메시지를 발송 할 수 있습니다. |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └coupon | object | — | 채널 쿠폰 URL(포맷: alimtalk=coupon://) 사용시 linkAndroid, linkIos 중 하나 필수 입력 채널 쿠폰 URL이 아닌 기본 쿠폰 사용시 linkMobile 필수 입력 |
| └createdAt | string | — | 등록일시 (yyyy-MM-dd HH:mm:ss) |
| └modifiedAt | string | — | 수정일시 (yyyy-MM-dd HH:mm:ss) |
| └status | string | — | A=등록 / S=차단 = A | S |
{
"code": "200",
"message": "string",
"data": {
"templateCode": "string",
"templateName": "string",
"chatBubbleType": "string",
"content": "string",
"adult": true,
"imageLink": "string",
"imageUrl": "string",
"header": "string",
"additionalContent": "string",
"carousel": {},
"wideItemList": [
{}
],
"video": {},
"commerce": {},
"buttons": [
{}
],
"coupon": {},
"createdAt": "string",
"modifiedAt": "string",
"status": "A"
}
}브랜드메시지 템플릿 삭제
⚠️ 템플릿 상태가 **등록(A)**인 경우에만 삭제 가능합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/delete" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
{
"code": "200",
"message": "string"
}브랜드메시지 템플릿 목록 조회
발신프로필에 등록된 브랜드메시지 템플릿 목록을 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 (S:일반(default), G:그룹) = S | G |
| status | string | — | A=정상 / S=차단 = A | S |
| page | string | — | 요청 페이지 (default: 1) |
| count | string | — | 페이지 별 템플릿 개수 (default: 30) |
| keyword | string(2~50) | — | 검색 키워드 |
| startDate | string | — | 생성일자 기준 시작일자 (yyyyMMddHHmmss) |
| endDate | string | — | 생성일자 기준 종료일자 (yyyyMMddHHmmss) |
| chatBubbleType | string | — | 메시지 타입 검색 조건 = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/list" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"page": "1",
"count": "30",
"status": "A"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| totalCount | integer | 필수 | 전체 건수 |
| totalPage | integer | 필수 | 전체 페이지 수 |
| currentPage | integer | 필수 | 현재 페이지 |
| data | object | 필수 | 성공 시 반환 데이터 |
| └hasNext | boolean | — | 다음 페이지 여부 |
| └list | array<object> | — | 성공 시 템플릿 목록 |
| └senderKey | string | — | 발신프로필 키 |
| └senderKeyType | string | — | 발신프로필 키 타입 = S | G |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └createdAt | string | — | 등록일 |
| └modifiedAt | string | — | 최종 수정일 |
| └serviceStatus | string | — | 템플릿 상태 |
{
"code": "200",
"message": "string",
"totalCount": 0,
"totalPage": 0,
"currentPage": 0,
"data": {
"hasNext": true,
"list": [
{
"senderKey": "string",
"senderKeyType": "S",
"templateCode": "string",
"templateName": "string",
"createdAt": "string",
"modifiedAt": "string",
"serviceStatus": "string"
}
]
}
}브랜드메시지 템플릿 변경 이력 조회
브랜드메시지 템플릿의 변경 이력을 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default) / G=그룹 = S | G |
| templateCode | string(30) | 필수 | 템플릿 코드 |
| page | string | — | 요청 페이지 번호 |
| count | string | — | 페이지 별 템플릿 개수 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/template/history" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "order_confirm_001",
"page": "string",
"count": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| hasNext | boolean | — | 다음 페이지 존재 여부 |
| data | array<allOf> | 필수 | 성공 시 반환 데이터 |
| └templateCode | string | — | 템플릿 코드 |
| └templateName | string | — | 템플릿 이름 |
| └chatBubbleType | string | — | 메시지 타입 ('9.1.1. 메시지 타입 별 필수 파라미터' 참조) |
| └content | string | — | 템플릿 내용 - TEXT, IMAGE - 최대 1,300자 (줄바꿈: 최대 99개, URL 형식 입력 가능) - WIDE, PREMIUM_VIDEO - 최대 76자 (줄바꿈: 최대 5개) |
| └adult | boolean | — | 성인 콘텐츠 여부 |
| └imageLink | string | — | 이미지 클릭시 이동 URL |
| └imageUrl | string | — | 이미지 업로드 API 로 등록한 이미지 URL |
| └header | string | — | 캐러셀 인트로 헤더 최대 20자 (줄바꿈: 불가) |
| └additionalContent | string | — | 템플릿 부가정보 - 공백 포함 최대 34자 (줄바꿈: 최대 1개) |
| └carousel | object | — | 커머스 요소 |
| └wideItemList | array<object> | — | 와이드 리스트 목록 (9.1 템플릿 등록 참고) |
| └video | object | — | O |
| └commerce | object | — | 메시지 표기 방식에 따라 regularPrice, discountPrice, discountRate, discountFixed은 다음과 같이 사용할 수 있습니다. 정상 가격으로 표기 : regularPrice 정상 가격 + 할인 후 가격(할인율 포함)으로 표기 : regularPrice, discountPrice, discountRate 정상 가격 + 할인 후 가격(정액 할인 가격 포함)으로 표기 : regularPrice, discountPrice, discountFixed regularPrice, discountPrice, discountRate, discountFixed 값을 입력하지 않을 경우 고정 변수명으로 저장됩니다. 고정 변수명을 사용하면 메시지 발송 시 금액을 변경하여 메시지를 발송 할 수 있습니다. |
| └buttons | array<object> | — | 버튼 요소에는 전체 버튼을 통틀어 최대 20개(중복 제외)의 변수 사용이 가능합니다. 변수명은 최대 20자 이내 한/영/숫자/허용된 특수기호('-', '_')로만 입력 가능합니다. (단, 변수 선언 후 필드 별 최대 글자수는 초과할 수 없습니다.) AC 버튼을 사용할 경우, TEXT, IMAGE 는 첫번째 버튼으로, 그 외 메시지 타입의 경우 마지막 버튼으로 등록해주셔야 합니다. |
| └coupon | object | — | 채널 쿠폰 URL(포맷: alimtalk=coupon://) 사용시 linkAndroid, linkIos 중 하나 필수 입력 채널 쿠폰 URL이 아닌 기본 쿠폰 사용시 linkMobile 필수 입력 |
| └createdAt | string | — | 등록일시 (yyyy-MM-dd HH:mm:ss) |
| └modifiedAt | string | — | 수정일시 (yyyy-MM-dd HH:mm:ss) |
| └status | string | — | A=등록 / S=차단 = A | S |
| └version | integer | — | 템플릿 버전 |
| └insertedAt | string | — | 변경 생성일시 (yyyy-MM-dd HH:mm:ss) |
{
"code": "200",
"message": "string",
"hasNext": true,
"data": [
{
"templateCode": "string",
"templateName": "string",
"chatBubbleType": "string",
"content": "string",
"adult": true,
"imageLink": "string",
"imageUrl": "string",
"header": "string",
"additionalContent": "string",
"carousel": {},
"wideItemList": [
{}
],
"video": {},
"commerce": {},
"buttons": [
{}
],
"coupon": {},
"createdAt": "string",
"modifiedAt": "string",
"status": "A",
"version": 0,
"insertedAt": "string"
}
]
}브랜드 이미지
브랜드메시지(UI/UM/UP/UW/UL/UC/UA)용 이미지 업로드 (6개 엔드포인트, /v4/ multipart/form-data)
브랜드메시지 이미지 업로드 (기본)
메시지 타입이 이미지(UI), 커머스(UM), 프리미엄 동영상(UP) 인 브랜드메시지 이미지.
| 항목 | 값 |
|---|---|
| 파일 포맷 | jpg, png |
| 최대 크기 | 5 MB |
| 권장 사이즈 | 800 × 400px (가로 500px 이상) |
| 가로:세로 비율 | 2:1 ~ 3:4 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/default" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}브랜드메시지 와이드 이미지 업로드
메시지 타입이 와이드 이미지(UW) 인 브랜드메시지.
| 항목 | 값 |
|---|---|
| 권장 사이즈 | 800 × 600px (가로 500px 이상) |
| 가로:세로 비율 | 2:1 ~ 1:1 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/wide" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}와이드 아이템 첫번째 리스트 이미지 업로드
메시지 타입이 와이드 리스트(UL) 인 브랜드메시지의 1번째 리스트 이미지.
| 항목 | 값 |
|---|---|
| 가로 사이즈 | 500px 이상 |
| 가로:세로 비율 | 2:1 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| image | string <binary> | 필수 | 업로드할 이미지 파일 (jpg/png, 500KB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/wideItemList/first" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"image": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| image | string | — | 성공 시 이미지가 등록된 카카오 서버 URL |
{
"code": "200",
"message": "string",
"image": "string"
}와이드 아이템 리스트 이미지 업로드 (2~5번째)
와이드 리스트(UL) 의 2~5번째 이미지. 아이템 리스트 갯수에 맞춰 imageList[] 로 업로드.
| 항목 | 값 |
|---|---|
| 가로 사이즈 | 500px 이상 |
| 가로:세로 비율 | 1:1 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| imageList | array<string <binary>> | 필수 | 이미지 파일 배열 (jpg/png, 각 5MB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/wideItemList" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"imageList": [
"{binary}"
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 업로드 결과 |
| └success | array<object> | — | 성공 결과 목록 |
| └formField | string | — | 업로드 field 이름 |
| └url | string | — | 이미지가 등록된 카카오 서버 URL |
| └failure | array<object> | — | 실패 결과 목록 |
| └formField | string | — | 업로드 field |
| └error | object | — | 에러 정보 |
| └code | string | — | 에러 코드 |
| └message | string | — | 에러 메시지 |
{
"code": "200",
"message": "string",
"data": {
"success": [
{
"formField": "string",
"url": "string"
}
],
"failure": [
{
"formField": "string",
"error": {
"code": "string",
"message": "string"
}
}
]
}
}캐러셀 피드 이미지 업로드
메시지 타입이 캐러셀 피드(UC) 인 브랜드메시지. 캐러셀 리스트 갯수만큼 imageList[] 업로드.
| 항목 | 값 |
|---|---|
| 권장 사이즈 | 800 × 600px / 800 × 400px (가로 500px 이상) |
| 가로:세로 비율 | 2:1 ~ 3:4 |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| imageList | array<string <binary>> | 필수 | 이미지 파일 배열 (jpg/png, 각 5MB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/carouselFeed" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"imageList": [
"{binary}"
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 업로드 결과 |
| └success | array<object> | — | 성공 결과 목록 |
| └formField | string | — | 업로드 field 이름 |
| └url | string | — | 이미지가 등록된 카카오 서버 URL |
| └failure | array<object> | — | 실패 결과 목록 |
| └formField | string | — | 업로드 field |
| └error | object | — | 에러 정보 |
| └code | string | — | 에러 코드 |
| └message | string | — | 에러 메시지 |
{
"code": "200",
"message": "string",
"data": {
"success": [
{
"formField": "string",
"url": "string"
}
],
"failure": [
{
"formField": "string",
"error": {
"code": "string",
"message": "string"
}
}
]
}
}캐러셀 커머스 이미지 업로드
메시지 타입이 캐러셀 커머스(UA) 인 브랜드메시지. 캐러셀 인트로 + 캐러셀 리스트 갯수에 맞춰 imageList[] 업로드.
| 항목 | 값 |
|---|---|
| 권장 사이즈 | 800 × 600px / 800 × 400px (가로 500px 이상) |
| 가로:세로 비율 | 2:1 ~ 3:4 (전체 이미지 비율 동일해야 함) |
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| imageList | array<string <binary>> | 필수 | 이미지 파일 배열 (jpg/png, 각 5MB 이하) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/image/carouselCommerce" \
-H "Content-Type: application/json" \
-d '{
"bizId": "string",
"apiKey": "string",
"imageList": [
"{binary}"
]
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 업로드 결과 |
| └success | array<object> | — | 성공 결과 목록 |
| └formField | string | — | 업로드 field 이름 |
| └url | string | — | 이미지가 등록된 카카오 서버 URL |
| └failure | array<object> | — | 실패 결과 목록 |
| └formField | string | — | 업로드 field |
| └error | object | — | 에러 정보 |
| └code | string | — | 에러 코드 |
| └message | string | — | 에러 메시지 |
{
"code": "200",
"message": "string",
"data": {
"success": [
{
"formField": "string",
"url": "string"
}
],
"failure": [
{
"formField": "string",
"error": {
"code": "string",
"message": "string"
}
}
]
}
}브랜드 동영상
브랜드메시지용 동영상 조회·업로드 등록·업로드 (3개 엔드포인트). 업로드는 발급받은 URL·토큰(5분 유효)으로 카카오 서버 직접 호출.
동영상 조회
vid와 발신프로필 키로 카카오에 등록된 동영상 단건을 조회합니다.
- 발신프로필 그룹(
senderKeyType: G)은 동영상 기능을 지원하지 않습니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| vid | string | 필수 | 동영상 ID |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default). G=그룹은 동영상 기능 미지원 (오류 응답) = S | G |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/video/search" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"vid": "459409228304",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 동영상 정보 |
| └vid | string | — | 동영상 ID |
| └status | string | — | 동영상 상태
= REGISTERED | ENCODING | PUBLIC | PRIVATE | VIOLATED | ILLEGAL | DELETED | ERROR |
| └title | string | — | 동영상 제목 |
| └thumbnailUrl | string | — | 썸네일 이미지 URL |
| └videoUrl | string | — | 동영상 재생 URL |
{
"code": "200",
"message": "string",
"data": {
"vid": "string",
"status": "REGISTERED",
"title": "string",
"thumbnailUrl": "string",
"videoUrl": "string"
}
}동영상 업로드 등록
동영상 파일을 업로드하기 위한 업로드 URL과 토큰을 발급받습니다.
- 발급된
uploadUrl과token은 5분 동안 유효하며, 해당 시간 내에 카카오에 직접 multipart 파일 업로드를 수행해야 합니다. - 발신프로필 그룹(
senderKeyType: G)은 동영상 기능을 지원하지 않습니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| senderKeyType | string | — | 발신 프로필 키 타입 — S=일반(default). G=그룹은 동영상 기능 미지원 (오류 응답) = S | G |
| fileName | string(250) | 필수 | 업로드할 파일 이름 (확장자 포함, 최대 250자) |
| fileSize | integer <int64>(1~) | 필수 | 업로드할 파일 크기 (byte, 1 이상) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/brand/video/upload/register" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"fileName": "brand_video.mp4",
"fileSize": 10485760
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 업로드 등록 결과 |
| └vid | string | — | 발급된 동영상 ID |
| └uploadUrl | string | — | 동영상 파일 업로드 URL (multipart 업로드 대상) |
| └token | string | — | 업로드 시 사용할 인증 토큰 |
{
"code": "200",
"message": "string",
"data": {
"vid": "string",
"uploadUrl": "string",
"token": "string"
}
}동영상 업로드 (카카오 직접 호출)
동영상 업로드 등록 API 로 발급받은 uploadUrl과 token을 이용하여 카카오에 동영상 파일을 직접 업로드합니다.
- 비즈뿌리오(kapi)를 거치지 않는 카카오 서버 직접 호출 — 요청 URL 은 발급받은
uploadUrl그대로 사용합니다. - 토큰 발급 후 5분 내에 호출해야 합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| file | string <binary> | 필수 | 업로드할 동영상 파일 (binary, multipart) |
curl -X POST "kakao://direct-upload/{uploadUrl}" \
-H "Content-Type: application/json" \
-d '{
"file": "{binary}"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| vid | string | — | 동영상 ID |
| playUrl | string | — | 동영상 재생 URL |
| duration | number | — | 동영상 길이 (초) |
| message | string | — | 에러 메시지 (성공 시 공란) |
{
"vid": "string",
"playUrl": "string",
"duration": 0,
"message": "string"
}통계
발송·템플릿 일별/월별 통합 통계 (4개 엔드포인트, /v4/ 경로). 전날 데이터는 매일 오전 7시경 일배치 처리.
발송 통합 일별 통계
발신프로필 키 기준 일별 발송 통계 (알림톡 / 브랜드메시지 통합).
- 실시간 통계는 제공되지 않으며, 전날 데이터는 매일 오전 7시경 일배치 처리 후 제공됩니다.
- 조회 가능한 기간은 최대 93일입니다.
- 요청 제한(Rate Limit): IP당 초당 1건 / 전역 초당 300건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 = alimtalk | brandmessage |
| startDate | string | 필수 | 조회 시작일 (yyyyMMdd) |
| endDate | string | 필수 | 조회 종료일 (yyyyMMdd) |
| messageType | string | — | 알림톡 메시지 타입 = AT | AI |
| receiveUserType | string | — | 수신자 유형 = PhoneNumber | AppUserId | UserKey | None |
| messageSpec | string | — | 브랜드메시지 타입 = BASIC | FREESTYLE |
| chatBubbleType | string | — | 브랜드메시지 말풍선 타입 = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| targeting | string | — | 브랜드메시지 타겟팅 = M | N | I | F |
| friendType | string | — | 브랜드메시지 친구 타입 = F | N |
curl -X POST "https://kapi.ppurio.com/v4/kakao/stat/send/daily" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"startDate": "20260601",
"endDate": "20260607",
"messageType": "AT"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | allOf | — | 알림톡 일별 발송 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageType | string | 필수 | 메시지 타입 = AT | AI |
| └receiveUserType | string | — | 수신자 유형 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └unknownRequestCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
| └readCount | integer <int64> | — | 열람수 |
| └브랜드메시지 | allOf | — | 브랜드메시지 일별 발송 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageSpec | string | 필수 | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 |
| └friendType | string | — | 친구 타입 = F | N |
| └receiveUserType | string | — | 수신자 유형 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
| └readCount | integer <int64> | — | 열람수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └listClickCount | integer <int64> | — | 리스트 클릭수 |
| └thumbnailClickCount | integer <int64> | — | 썸네일 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"messageType": "AT",
"receiveUserType": "PhoneNumber",
"chargedSuccessCount": 1200,
"freeContractSuccessCount": 30,
"freeTemplateSuccessCount": 15,
"unknownRequestCount": 2,
"validFailCount": 18,
"invalidFailCount": 5,
"readCount": 980
},
{
"date": "20260602",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"messageType": "AT",
"receiveUserType": "PhoneNumber",
"chargedSuccessCount": 1340,
"freeContractSuccessCount": 28,
"freeTemplateSuccessCount": 12,
"unknownRequestCount": 1,
"validFailCount": 22,
"invalidFailCount": 4,
"readCount": 1105
}
]
}
}발송 통합 월별 통계
발신프로필 키 기준 월별 발송 통계.
- 조회 가능한 기간은 최대 12개월입니다.
- 요청 제한(Rate Limit): IP당 초당 1건 / 전역 초당 300건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| startMonth | string | 필수 | 조회 시작 월 (yyyyMM) |
| endMonth | string | 필수 | 조회 종료 월 (yyyyMM) |
| messageType | string | — | 메시지 타입 — 알림톡 전용 (AT: 알림톡 / AI: 알림톡 이미지) = AT | AI |
| receiveUserType | string | — | 수신자 유형 (PhoneNumber / AppUserId / UserKey / None) = PhoneNumber | AppUserId | UserKey | None |
| messageSpec | string | — | 메시지 타입 — 브랜드메시지 전용 (BASIC / FREESTYLE) = BASIC | FREESTYLE |
| chatBubbleType | string | — | 말풍선 타입 — 브랜드메시지 전용 (TEXT / IMAGE / WIDE / WIDE_ITEM_LIST / CAROUSEL_FEED / PREMIUM_VIDEO / COMMERCE / CAROUSEL_COMMERCE) = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| targeting | string | — | 타겟팅 여부 — 브랜드메시지 전용 (M / N / I / F) = M | N | I | F |
| friendType | string | — | 친구 타입 — 브랜드메시지 전용 (F: 친구 / N: 비친구) = F | N |
curl -X POST "https://kapi.ppurio.com/v4/kakao/stat/send/monthly" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "brandmessage",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"startMonth": "202601",
"endMonth": "202603",
"messageSpec": "BASIC"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | allOf | — | 알림톡 월별 발송 통계 행 |
| └statMonth | string | — | 월 (yyyyMM) |
| └senderKey | string | — | 발신프로필 키 |
| └messageType | string | 필수 | 메시지 타입 = AT | AI |
| └receiveUserType | string | — | 수신자 유형 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └unknownRequestCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
| └readCount | integer <int64> | — | 열람수 |
| └브랜드메시지 | allOf | — | 브랜드메시지 월별 발송 통계 행 |
| └statMonth | string | — | 월 (yyyyMM) |
| └senderKey | string | — | 발신프로필 키 |
| └messageSpec | string | 필수 | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 |
| └friendType | string | — | 친구 타입 = F | N |
| └receiveUserType | string | — | 수신자 유형 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
| └readCount | integer <int64> | — | 열람수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └listClickCount | integer <int64> | — | 리스트 클릭수 |
| └thumbnailClickCount | integer <int64> | — | 썸네일 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"data": {
"list": [
{
"statMonth": "202606",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"messageType": "AT",
"receiveUserType": "PhoneNumber",
"chargedSuccessCount": 32000,
"freeContractSuccessCount": 820,
"freeTemplateSuccessCount": 410,
"unknownRequestCount": 40,
"validFailCount": 500,
"invalidFailCount": 120,
"readCount": 26800
},
{
"statMonth": "202606",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"messageType": "AI",
"receiveUserType": "PhoneNumber",
"chargedSuccessCount": 5400,
"freeContractSuccessCount": 120,
"freeTemplateSuccessCount": 60,
"unknownRequestCount": 6,
"validFailCount": 80,
"invalidFailCount": 12,
"readCount": 4400
}
]
}
}템플릿 통합 일별 통계
템플릿별 발송·열람·클릭 통계. 페이징 방식.
- 실시간 통계는 제공되지 않으며, 전날 데이터는 매일 오전 7시경 일배치 처리 후 제공됩니다.
- 조회 가능한 기간은 최대 93일입니다.
- 요청 제한(Rate Limit): IP당 초당 1건 / 전역 초당 300건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 = alimtalk | brandmessage |
| startDate | string | 필수 | 조회 시작일 (yyyyMMdd) |
| endDate | string | 필수 | 조회 종료일 (yyyyMMdd) |
| messageType | string | — | 알림톡 메시지 타입 = AT | AI |
| receiveUserType | string | — | 수신자 유형 = PhoneNumber | AppUserId | UserKey | None |
| messageSpec | string | — | 브랜드메시지 타입 = BASIC | FREESTYLE |
| chatBubbleType | string | — | 브랜드메시지 말풍선 타입 = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| targeting | string | — | 브랜드메시지 타겟팅 = M | N | I | F |
| friendType | string | — | 브랜드메시지 친구 타입 = F | N |
| page | integer | — | 페이지 번호 |
| count | integer | — | 페이지당 건수 |
| templateCode | string | — | 템플릿 코드 필터 |
| groupTagKey | string | — | 그룹태그 키 필터 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/stat/template/daily" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"startDate": "20260601",
"endDate": "20260607",
"messageType": "AT",
"page": 1,
"count": 10,
"templateCode": "string",
"groupTagKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| totalCount | integer | 필수 | 전체 건수 |
| totalPage | integer | 필수 | 전체 페이지 수 |
| currentPage | integer | 필수 | 현재 페이지 |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | allOf | — | 알림톡 템플릿 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └templateCode | string | — | 템플릿 코드 |
| └messageType | string | 필수 | 메시지 타입 = AT | AI |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └unknownRequestCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └readCount | integer <int64> | — | 열람수 |
| └qrClickCount | integer <int64> | — | QR 클릭수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
| └브랜드메시지 | allOf | — | 브랜드메시지 템플릿 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └templateCode | string | — | 템플릿 코드 |
| └messageSpec | string | 필수 | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 |
| └friendType | string | — | 친구 타입 = F | N |
| └groupTagKey | string | — | 그룹태그 키 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └readCount | integer <int64> | — | 열람수 |
| └imageClickCount | integer <int64> | — | 이미지 클릭수 |
| └listClickCount | integer <int64> | — | 리스트 클릭수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"totalCount": 2,
"currentPage": 1,
"totalPage": 1,
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "TALK_0001",
"messageType": "AT",
"chargedSuccessCount": 800,
"freeContractSuccessCount": 20,
"freeTemplateSuccessCount": 10,
"unknownRequestCount": 1,
"validFailCount": 9,
"readCount": 640,
"qrClickCount": 30,
"buttonClickCount": 120,
"etcClickCount": 5
},
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "TALK_0007",
"messageType": "AI",
"chargedSuccessCount": 420,
"freeContractSuccessCount": 12,
"freeTemplateSuccessCount": 6,
"unknownRequestCount": 0,
"validFailCount": 5,
"readCount": 355,
"qrClickCount": 18,
"buttonClickCount": 74,
"etcClickCount": 3
}
]
}
}템플릿 통합 월별 통계
템플릿별 월별 통계.
- 조회 가능한 기간은 최대 3개월입니다.
- 요청 제한(Rate Limit): IP당 초당 1건 / 전역 초당 300건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| startMonth | string | 필수 | 조회 시작 월 (yyyyMM) |
| endMonth | string | 필수 | 조회 종료 월 (yyyyMM) |
| messageType | string | — | 메시지 타입 — 알림톡 전용 (AT: 알림톡 / AI: 알림톡 이미지) = AT | AI |
| receiveUserType | string | — | 수신자 유형 (PhoneNumber / AppUserId / UserKey / None) = PhoneNumber | AppUserId | UserKey | None |
| messageSpec | string | — | 메시지 타입 — 브랜드메시지 전용 (BASIC / FREESTYLE) = BASIC | FREESTYLE |
| chatBubbleType | string | — | 말풍선 타입 — 브랜드메시지 전용 (TEXT / IMAGE / WIDE / WIDE_ITEM_LIST / CAROUSEL_FEED / PREMIUM_VIDEO / COMMERCE / CAROUSEL_COMMERCE) = TEXT | IMAGE | WIDE | WIDE_ITEM_LIST | CAROUSEL_FEED | PREMIUM_VIDEO | COMMERCE | CAROUSEL_COMMERCE |
| targeting | string | — | 타겟팅 여부 — 브랜드메시지 전용 (M / N / I / F) = M | N | I | F |
| friendType | string | — | 친구 타입 — 브랜드메시지 전용 (F: 친구 / N: 비친구) = F | N |
| page | integer | — | 페이지 번호 (기본값: 1) |
| count | integer | — | 페이지당 건수 (기본값: 10) |
| templateCode | string | — | 템플릿 코드 |
| groupTagKey | string | — | 그룹태그 키 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/stat/template/monthly" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "brandmessage",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"startMonth": "202601",
"endMonth": "202603",
"messageSpec": "BASIC",
"page": 1,
"count": 10,
"templateCode": "string",
"groupTagKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| totalCount | integer | 필수 | 전체 건수 |
| totalPage | integer | 필수 | 전체 페이지 수 |
| currentPage | integer | 필수 | 현재 페이지 |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | allOf | — | 알림톡 템플릿 월별 통계 행 |
| └statMonth | string | — | 월 (yyyyMM) |
| └senderKey | string | — | 발신프로필 키 |
| └templateCode | string | — | 템플릿 코드 |
| └messageType | string | 필수 | 메시지 타입 = AT | AI |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └unknownRequestCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └readCount | integer <int64> | — | 열람수 |
| └qrClickCount | integer <int64> | — | QR 클릭수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
| └브랜드메시지 | allOf | — | 브랜드메시지 템플릿 월별 통계 행 |
| └statMonth | string | — | 월 (yyyyMM) |
| └senderKey | string | — | 발신프로필 키 |
| └templateCode | string | — | 템플릿 코드 |
| └messageSpec | string | 필수 | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 |
| └friendType | string | — | 친구 타입 = F | N |
| └groupTagKey | string | — | 그룹태그 키 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └readCount | integer <int64> | — | 열람수 |
| └imageClickCount | integer <int64> | — | 이미지 클릭수 |
| └listClickCount | integer <int64> | — | 리스트 클릭수 |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"totalCount": 2,
"currentPage": 1,
"totalPage": 1,
"data": {
"list": [
{
"statMonth": "202606",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "TALK_0001",
"messageType": "AT",
"chargedSuccessCount": 21000,
"freeContractSuccessCount": 520,
"freeTemplateSuccessCount": 260,
"unknownRequestCount": 22,
"validFailCount": 240,
"readCount": 17600,
"qrClickCount": 820,
"buttonClickCount": 3100,
"etcClickCount": 140
},
{
"statMonth": "202606",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"templateCode": "TALK_0007",
"messageType": "AI",
"chargedSuccessCount": 9800,
"freeContractSuccessCount": 240,
"freeTemplateSuccessCount": 120,
"unknownRequestCount": 8,
"validFailCount": 90,
"readCount": 7900,
"qrClickCount": 360,
"buttonClickCount": 1400,
"etcClickCount": 60
}
]
}
}통계 · 카카오 직접 조회
발신프로필·템플릿 기준 발송·유효읽음·클릭 일별 통계를 카카오에서 직접 조회 (6개 엔드포인트, /v4/kakao/kakaoStat/ 경로). DB 집계 통계와 달리 rate limit 필터를 우회하며, 조회 모드(CHARGE_PENDING/FINAL)를 함께 제공.
발송 일별 통계 (카카오 직접 조회)
발신프로필 키 기준 일별 발송수 통계를 카카오에서 직접 조회합니다 (페이징). 알림톡 / 브랜드메시지 통합.
- 실시간 통계는 제공되지 않으며, 전날 데이터는 매일 오전 7시경 일배치 처리 후 제공됩니다. (*내부 상황에 따라 변경 가능)
- 알림톡은 ACK 타임아웃 반영으로 D+1에 최초 제공, D+2에 확정됩니다.
- 조회 모드(
mode)는 D+2 확정 전CHARGE_PENDING(과금 미확정), 이후FINAL(과금 확정). - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/send" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"page": 1,
"count": 500
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (CHARGE_PENDING: 과금 미확정 / FINAL: 확정) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | object | — | 알림톡 발송 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageType | string | — | 메시지 타입 = AT | AI |
| └receiveUserType | string | — | 수신자 유형 |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └unknownRequestCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
| └브랜드메시지 | object | — | 브랜드메시지 발송 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └receiveUserType | string | — | 수신자 유형 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └invalidFailCount | integer <int64> | — | 발송불가 무효 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"messageType": "AT",
"receiveUserType": "PhoneNumber",
"chargedSuccessCount": 1200,
"freeContractSuccessCount": 30,
"freeTemplateSuccessCount": 15,
"unknownRequestCount": 2,
"validFailCount": 18,
"invalidFailCount": 5
}
]
}
}발송 유효 읽음 일별 통계 (카카오 직접 조회)
발신프로필 키 기준 일별 유효 읽음 통계를 카카오에서 직접 조회합니다 (페이징). 알림톡 / 브랜드메시지 통합.
- 유효 읽음 통계는 2024-04-01부터 제공되며, 같은 메시지에 대한 유효 읽음은 중복 집계되지 않습니다.
D(당일)·D+1·D+2경과일별로 집계 제공,D+3이후는 미제공. 특정 조회일의 총 유효 읽음수는elapsedDay0~2 를 합산해야 합니다.- 발송 성공이 10건 이하이면 유효 읽음 데이터는 제공되지 않습니다. 일별 통계
mode는FINAL(확정)만 제공. - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
| elapsedDay | integer(0~2) | — | 조회일 기준 경과일수 (0~2, 기본값 0). 총합은 0~2 합산 필요 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/read" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"page": 1,
"count": 500,
"elapsedDay": 0
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (일별은 FINAL 만 제공) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | object | — | 알림톡 유효 읽음 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageType | string | — | 메시지 타입 = AT | AI |
| └receiveUserType | string | — | 수신자 유형 |
| └readCount | integer <int64> | — | 열람수 |
| └브랜드메시지 | object | — | 브랜드메시지 유효 읽음 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └receiveUserType | string | — | 수신자 유형 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └readCount | integer <int64> | — | 열람수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"messageSpec": "BASIC",
"chatBubbleType": "TEXT",
"receiveUserType": "PhoneNumber",
"targeting": "N",
"friendType": "F",
"readCount": 980
}
]
}
}발송 클릭 일별 통계 (카카오 직접 조회)
발신프로필 키 기준 일별 클릭 통계를 카카오에서 직접 조회합니다 (페이징). 브랜드메시지 전용 — 알림톡은 미제공.
- 클릭 통계는 2024-04-01부터 제공되며, 같은 메시지의 클릭은 중복 집계됩니다.
D(당일)·D+1·D+2경과일별로 집계 제공,D+3이후는 미제공. 특정 조회일의 총 클릭수는elapsedDay0~2 를 합산해야 합니다.- 발송 성공이 10건 이하이면 클릭 데이터는 제공되지 않습니다. 일별 통계
mode는FINAL(확정)만 제공. - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (brandmessage 전용 = brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| elapsedDay | integer(0~2) | — | 조회일 기준 경과일수 (0~2, 기본값 0). 총합은 0~2 합산 필요 |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/click" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "brandmessage",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"elapsedDay": 0
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (일별은 FINAL 만 제공) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<object> | — | 통계 목록 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └receiveUserType | string | — | 수신자 유형 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └buttonClickCount | integer <int64> | — | 버튼 클릭수 |
| └listClickCount | integer <int64> | — | 리스트 클릭수 |
| └thumbnailClickCount | integer <int64> | — | 썸네일 클릭수 |
| └etcClickCount | integer <int64> | — | 그외 클릭수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"messageSpec": "FREESTYLE",
"chatBubbleType": "WIDE",
"receiveUserType": "PhoneNumber",
"targeting": "M",
"friendType": "F",
"buttonClickCount": 120,
"listClickCount": 40,
"thumbnailClickCount": 15,
"etcClickCount": 8
}
]
}
}템플릿 발송 일별 통계 (카카오 직접 조회)
템플릿·그룹태그 기준 일별 발송수 통계를 카카오에서 직접 조회합니다 (페이징). 알림톡 / 브랜드메시지 통합.
templateCode와groupTagKey는 둘 중 하나만 선택합니다. 브랜드메시지 자유형은 그룹태그를 사용한 경우에만 제공됩니다.- 알림톡은 ACK 타임아웃 반영으로 D+1에 최초 제공, D+2에 확정됩니다.
mode는 D+2 확정 전CHARGE_PENDING, 이후FINAL. - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
| templateCode | string | — | 템플릿 코드 (groupTagKey와 둘 중 하나만 선택) |
| groupTagKey | string | — | 그룹 태그 키 (templateCode와 둘 중 하나만 선택) |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/template/send" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"page": 1,
"count": 500,
"templateCode": "string",
"groupTagKey": "string"
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (CHARGE_PENDING: 과금 미확정 / FINAL: 확정) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | object | — | 알림톡 템플릿 발송 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └messageType | string | — | 메시지 타입 = AT | AI |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeTemplateSuccessCount | integer <int64> | — | 성공 비과금 (템플릿) |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └unknownCount | integer <int64> | — | 성공 불확실 비과금 |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
| └브랜드메시지 | object | — | 브랜드메시지 템플릿 발송 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └groupTagKey | string | — | 그룹 태그 키 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └chargedSuccessCount | integer <int64> | — | 성공 과금 |
| └freeContractSuccessCount | integer <int64> | — | 성공 비과금 (계약) |
| └validFailCount | integer <int64> | — | 발송불가 유효 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"templateCode": "TALK_0001",
"messageType": "AT",
"chargedSuccessCount": 800,
"freeTemplateSuccessCount": 10,
"freeContractSuccessCount": 20,
"unknownCount": 1,
"validFailCount": 9
}
]
}
}템플릿 유효 읽음 일별 통계 (카카오 직접 조회)
템플릿·그룹태그 기준 일별 유효 읽음 통계를 카카오에서 직접 조회합니다 (페이징). 알림톡 / 브랜드메시지 통합.
templateCode와groupTagKey는 둘 중 하나만 선택합니다. 브랜드메시지 자유형은 그룹태그를 사용한 경우에만 제공됩니다.- 유효 읽음 통계는 2024-04-01부터 제공, 중복 집계되지 않습니다. 총 유효 읽음수는
elapsedDay0~2 를 합산해야 합니다. - 발송 성공이 10건 이하이면 미제공. 일별 통계
mode는FINAL(확정)만 제공. - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
| templateCode | string | — | 템플릿 코드 (groupTagKey와 둘 중 하나만 선택) |
| groupTagKey | string | — | 그룹 태그 키 (templateCode와 둘 중 하나만 선택) |
| elapsedDay | integer(0~2) | — | 조회일 기준 경과일수 (0~2, 기본값 0). 총합은 0~2 합산 필요 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/template/read" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"page": 1,
"count": 500,
"templateCode": "string",
"groupTagKey": "string",
"elapsedDay": 0
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (일별은 FINAL 만 제공) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | object | — | 알림톡 템플릿 유효 읽음 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └messageType | string | — | 메시지 타입 = AT | AI |
| └readCount | integer <int64> | — | 열람수 |
| └브랜드메시지 | object | — | 브랜드메시지 템플릿 유효 읽음 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └groupTagKey | string | — | 그룹 태그 키 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └readCount | integer <int64> | — | 열람수 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"templateCode": "TALK_0001",
"messageType": "AT",
"readCount": 640
}
]
}
}템플릿 클릭 일별 통계 (카카오 직접 조회)
템플릿·그룹태그 기준 일별 클릭 통계를 카카오에서 직접 조회합니다 (페이징). 알림톡 / 브랜드메시지 통합. 응답의 clickInfo 에 클릭 상세가 담깁니다.
templateCode와groupTagKey는 둘 중 하나만 선택합니다. 브랜드메시지 자유형은 그룹태그를 사용한 경우에만 제공됩니다.- 클릭 통계는 2024-04-01부터 제공, 중복 집계됩니다. 총 클릭수는
elapsedDay0~2 를 합산해야 합니다. - 발송 성공이 10건 이하이면 미제공. 일별 통계
mode는FINAL(확정)만 제공. - 요청 제한(Rate Limit): 엔드포인트별 · IP당 초당 20건 / 분당 1000건. 초과 시 결과 코드
429(요청 횟수 초과)를 반환합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| bizId | string | 필수 | 비즈뿌리오ID |
| apiKey | string | 필수 | API Key |
| senderKey | string | 필수 | 발신 프로필 키 ( senderKeyType이 G인 경우 그룹 키) |
| product | string | 필수 | 상품 구분 (alimtalk / brandmessage) = alimtalk | brandmessage |
| date | string | 필수 | 조회일 (yyyyMMdd) |
| page | integer | — | 조회 페이지 번호 (기본값 1) |
| count | integer | — | 한 페이지당 크기 (최대 10,000, 기본값 500) |
| templateCode | string | — | 템플릿 코드 (groupTagKey와 둘 중 하나만 선택) |
| groupTagKey | string | — | 그룹 태그 키 (templateCode와 둘 중 하나만 선택) |
| elapsedDay | integer(0~2) | — | 조회일 기준 경과일수 (0~2, 기본값 0). 총합은 0~2 합산 필요 |
curl -X POST "https://kapi.ppurio.com/v4/kakao/kakaoStat/template/click" \
-H "Content-Type: application/json" \
-d '{
"bizId": "bizUserId001",
"apiKey": "xxxxxxxxx",
"product": "alimtalk",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"date": "20260601",
"page": 1,
"count": 500,
"templateCode": "string",
"groupTagKey": "string",
"elapsedDay": 0
}'| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| code | string | 필수 | 결과 코드 (KAPI 공통 참고) |
| message | string | — | 실패 시 결과 메시지 |
| mode | string | — | 조회 모드 (일별은 FINAL 만 제공) = CHARGE_PENDING | FINAL |
| data | object | — | 통계 데이터 |
| └list | array<oneOf> | — | 통계 목록 |
| └알림톡 | object | — | 알림톡 템플릿 클릭 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └messageType | string | — | 메시지 타입 = AT | AI |
| └clickInfo | object | — | 알림톡 템플릿 클릭 정보 |
| └buttonOrders | array<integer> | — | 알림톡 템플릿에 등록된 순서별 클릭수 (number[5]) |
| └buttonType | object | — | 버튼 링크 타입별 클릭수 — WL:웹링크, AL:앱링크, DS:배송조회, BK:버튼텍스트 발송, MD:버튼텍스트+본문 발송, BT:봇전환, BC:상담톡전환, AC:채널추가, P1/P2/P3:플러그인, BF:비즈니스폼, TN:전화앱실행, MP:지도보기 |
| └qrType | object | — | 바로연결 링크 타입별 클릭수 — WL:웹링크, AL:앱링크, DS:배송조회, BK:상담톡전환, MD:봇전환, BT:비즈니스폼 |
| └etc | integer | — | 그외 클릭수 (스킴 |
| └브랜드메시지 | object | — | 브랜드메시지 템플릿 클릭 일별 통계 행 |
| └date | string | — | 날짜 (yyyyMMdd) |
| └senderKey | string | — | 발신프로필 키 |
| └uuid | string | — | 카카오톡 채널 |
| └templateCode | string | — | 템플릿 코드 |
| └groupTagKey | string | — | 그룹 태그 키 |
| └messageSpec | string | — | 메시지 타입 = BASIC | FREESTYLE |
| └chatBubbleType | string | — | 말풍선 타입 |
| └targeting | string | — | 타겟팅 여부 = M | N | I | F |
| └friendType | string | — | 친구 타입 = F | N |
| └clickInfo | object | — | 브랜드메시지 클릭 정보 |
| └buttonOrders | array<integer> | — | 버튼 순서별 클릭수 (number[30]). 캐러셀은 1카드당 최대 3개(버튼2+쿠폰); buttonOrders[0]=첫째 카드 첫 버튼, buttonOrders[3]=둘째 카드 첫 버튼 |
| └imageOrders | array<integer> | — | 이미지 순서별 클릭수 (number[10]) |
| └listOrders | array<integer> | — | 리스트 순서별 클릭수 (number[5]) |
| └etc | integer | — | 그외 클릭수 (스킴 |
{
"code": "200",
"message": "정상적으로 처리되었습니다.",
"mode": "FINAL",
"data": {
"list": [
{
"date": "20260601",
"senderKey": "05aa099bcbc5220a8c0b2XXXXXXXXXXXXX",
"uuid": "@bizppurio",
"templateCode": "BRAND_0007",
"groupTagKey": "EVENT_0601",
"messageSpec": "FREESTYLE",
"chatBubbleType": "WIDE_ITEM_LIST",
"targeting": "M",
"friendType": "F",
"clickInfo": {
"buttonOrders": [
12,
3
],
"imageOrders": [
8
],
"listOrders": [
5,
2,
1
],
"etc": 4
}
}
]
}
}가이드
알림톡 템플릿 등록·운영에 사용하는 타입·상태·버튼 코드 정의입니다.
템플릿 메시지 유형
templateMessageType 필드 값입니다.
| 코드 | 설명 | 비고 |
|---|---|---|
BA |
기본형 | — |
EX |
부가정보형 | templateExtra 필수 |
AD |
채널추가형 | buttons 자동 삽입 (AC) |
MI |
복합형 | templateExtra 필수, buttons 자동 삽입 (AC) |
템플릿 강조 유형
templateEmphasizeType 필드 값입니다.
| 코드 | 설명 | 필수 추가 필드 |
|---|---|---|
NONE |
선택 안 함 | — |
TEXT |
강조 표기형 | templateTitle, templateSubtitle |
IMAGE |
이미지형 | templateImageName, templateImageUrl |
ITEM_LIST |
아이템 리스트형 | templateItem.list |
발신 프로필 키 타입
senderKeyType 필드 값입니다.
S— 일반 발신프로필 (기본값)G— 발신프로필 그룹
템플릿 상태 변화
serviceStatus:REG→REQ→REJ|STP|RDY→ACT→DMT/BLKstatus:S(중지) /A(정상) /R(대기)inspectionStatus:REG→REQ→REJ|APR(승인)