자체 템플릿은 템플릿 생성 → 검수 요청 → 승인 순서로 발송할 수 있게 돼요. 템플릿을 만들면 카카오에 바로 올라가니, 이어서 이 API로 검수를 요청하면 돼요.
검수 요청은 취소할 수 없고, 결과가 나올 때까지 문구를 고칠 수 없어요. 요청 전에 템플릿 상세로 문구를 확인해요.
검수 요청 API
카카오에 심사를 요청해요. 결과는 승인(APR) 또는 반려(REJ)로 돌아와요.
호출할 수 있는 상태
대기(vendor_status: 1) + REG(inspection_status: "registered") 일 때만 요청할 수 있어요.
| 현재 상태 | 결과 |
|---|---|
아직 올리기 전 (register: false 로 만든 경우) |
거부돼요. 아래처럼 먼저 등록해요 |
| 대기 + REG | 요청할 수 있어요 |
| REQ (검수 중) | 거부돼요. 이미 심사 중이에요 |
| APR (승인) | 거부돼요. 이미 승인됐어요 |
| REJ · KRR (반려) | 거부돼요. 문구를 수정한 뒤 다시 요청해요 |
반려된 템플릿을 그대로 다시 요청하면 같은 이유로 또 반려돼요. comments의 사유를 반영해 문구를 고친 다음 요청해요.
코드 예제
curl -X POST "https://message.bootapi.com/alimtalk/templates/68b0f2a1c3d4e5f6a7b8c9d0/inspect" \
-H "Authorization: Basic {base64(client_key:secret_key)}"bashresponse = commerce.alimtalk_template_inspect(template_id: '68b0f2a1c3d4e5f6a7b8c9d0')
puts response.dataruby응답
요청 직후에는 inspection_status가 requested(REQ)예요. 심사가 끝나면 approved(APR) 또는 rejected(REJ)로 바뀌어요.
{
"id": "68b0f2a1c3d4e5f6a7b8c9d0",
"code": "BT_A58A7B_1A2B3C4D",
"inspection_status": "requested",
"vendor_status": 1,
"comments": [],
"comment_count": 0
}json반려되면 comments에 사유가 담겨요.
검수 결과 받기
심사 결과를 폴링하지 않고 받으려면 발송결과 웹훅에서 검수 승인(310)·검수 반려(311) 이벤트를 구독해요. 등록 거절(KRR)도 311로 와요. 이 웹훅은 그 템플릿을 처음 등록한 프로젝트로만 가요 — 같은 채널을 연동한 다른 프로젝트는 받지 못하니 그쪽은 템플릿 상세로 확인해요.
에러 코드
| 코드 | error_code | 메시지 | 대처 방법 |
|---|---|---|---|
-48 |
INVALID_PARAMETER |
호출 불가 상태 | 검수는 대기+REG 에서만, 등록은 아직 올리기 전에만 가능해요 |
3015 |
TEMPLATE_NOT_FOUND |
템플릿 없음 | id 또는 코드를 확인해요 |
3017 |
TEMPLATE_VARIABLE_MISSING |
규격 위반 | 등록 직전 재검증에서 걸렸어요. 문구·버튼 규격을 확인해요 |
3018 |
SENDER_NOT_VERIFIED |
발신프로필 미검증 | 채널을 다시 연동해 인증을 마쳐요 |
3024 |
SENDER_NOT_LINKED |
발신프로필 미연결 | 이 프로젝트의 채널인지 확인해요 |
3013 |
KAKAO_TEMPLATE_REQUEST_FAILED |
등록·검수요청 거부 (HTTP 500) | message의 사유를 확인해요 |
register: false 로 만든 템플릿 등록
템플릿 생성에서 register: false 를 줬다면 부트페이에만 저장된 상태예요. 이 API로 카카오에 올린 뒤 검수를 요청해요. 보통은 생성할 때 바로 올라가니 부를 일이 없어요.
등록 요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
id |
String | 필수 | 템플릿 문서 id (경로 파라미터) |
이미지형 템플릿의 본문 이미지와 아이템리스트형의 본문 이미지·하이라이트 썸네일은 이 시점에 카카오로 사본이 만들어져요. 그 전에는 부트페이 storage 에만 있어요.
등록 코드 예제
curl -X POST "https://message.bootapi.com/alimtalk/templates/68b0f2a1c3d4e5f6a7b8c9d0/register" \
-H "Authorization: Basic {base64(client_key:secret_key)}"bashrequire 'bootpay'
commerce = BootpayStore::RestClient.new(client_key: 'your-commerce-client-key', secret_key: 'your-commerce-secret-key')
response = commerce.alimtalk_template_register(template_id: '68b0f2a1c3d4e5f6a7b8c9d0')
puts response.dataruby등록 응답
등록에 성공하면 vendor_status가 1(대기), inspection_status가 registered(REG)가 돼요.
{
"id": "68b0f2a1c3d4e5f6a7b8c9d0",
"code": "BT_A58A7B_1A2B3C4D",
"vendor_status": 1,
"inspection_status": "registered"
}json다음 단계
승인(APR)이 되면 알림톡 발송에서 이 템플릿 코드로 보낼 수 있어요.
