알림톡 발송

카카오 알림톡을 발송합니다. 발신프로필과 템플릿은 웹사이트에서 등록·검수를 받고, API 는 승인된 발신프로필 키와 템플릿 코드를 사용해 발송만 담당합니다.

POST /v1/messages/alimtalk

알림톡·브랜드메시지는 사업자 회원만 사용할 수 있습니다. (개인 회원은 403 BUSINESS_MEMBER_REQUIRED)

준비

  1. 웹사이트 카카오 발신프로필 메뉴에서 채널을 등록합니다.
  2. 알림톡 템플릿을 작성하고 검수 승인을 받습니다.
  3. API 로 발신프로필·템플릿 목록을 조회하여 profile, template_code, 변수 목록을 확인합니다.
curl — 템플릿/변수 확인
curl "https://api-01.redbean8.io.kr/v1/kakao/templates?profile=2f81c0…&channel=alimtalk" \
  -H "Authorization: Bearer $REDBEAN_API_KEY"

요청 본문

필드타입설명
profile 필수string발신프로필 키 (GET /v1/kakao/profiles 의 profile)
template_code 필수string승인된 템플릿 코드
recipients / to 택1object[] / string[]수신자 목록 (최대 1,000명). 수신자별 변수가 필요하면 recipients, 모두 같은 변수면 to + 공통 variables
recipients[].tostring수신번호 (recipients 사용 시 필수)
recipients[].variablesobject템플릿 변수 값. 키는 #{이름} 의 이름 부분 (예: {"name":"홍길동"})
recipients[].refstring수신자별 참조키
variablesobject모든 수신자에게 공통으로 적용할 변수 (수신자별 값이 우선)
send_atstring예약 시각 (ISO 8601). 생략 시 즉시
exclude_optoutboolean수신거부 번호 제외 (기본 true)
namestring발송 이름
client_refstring요청 참조키
dry_runboolean검증·금액 계산만 수행

예시

템플릿 본문이 #{name}님, #{item} 주문이 접수되었습니다. 인 경우

curl
curl -X POST https://api-01.redbean8.io.kr/v1/messages/alimtalk \
  -H "Authorization: Bearer $REDBEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: alim-order-1001" \
  -d '{
    "profile": "2f81c0b7e4d9…",
    "template_code": "ORDER_RECEIVED",
    "recipients": [
      { "to": "01011112222", "variables": { "name": "홍길동", "item": "무선 이어폰" }, "ref": "A-1001" },
      { "to": "01033334444", "variables": { "name": "김영희", "item": "보조배터리" }, "ref": "A-1002" }
    ],
    "client_ref": "alim-order-1001"
  }'
Python
import os, requests

payload = {
    "profile": "2f81c0b7e4d9…",
    "template_code": "ORDER_RECEIVED",
    "recipients": [
        {"to": "01011112222", "variables": {"name": "홍길동", "item": "무선 이어폰"}, "ref": "A-1001"},
    ],
}
r = requests.post(
    "https://api-01.redbean8.io.kr/v1/messages/alimtalk",
    headers={"Authorization": f"Bearer {os.environ['REDBEAN_API_KEY']}",
             "Idempotency-Key": "alim-order-1001"},
    json=payload, timeout=15,
)
print(r.status_code, r.json())

응답

202 Accepted — 형식은 SMS 발송 응답과 같으며 channel 이 alimtalk 입니다.

주의사항

  • 변수는 모두 채워야 합니다. 템플릿에 있는 변수가 수신자(또는 공통 variables)에 없으면 422 TEMPLATE_VARIABLE_MISSING 이며 details.variable 에 이름이 표시됩니다.
  • 템플릿이 승인·정상 상태가 아니거나 코드가 없으면 422 TEMPLATE_NOT_FOUND.
  • 발신프로필이 없거나 사용 중지 상태면 422 PROFILE_NOT_FOUND.
  • 알림톡은 사전에 승인된 템플릿 내용과 일치해야 하므로, 본문 자체는 API 에서 바꿀 수 없고 변수만 치환합니다.
  • 알림톡이 실패해도 문자로 대체 발송하지 않습니다. 실패하면 해당 건은 FAILED 로 종료되고 요금은 환불됩니다. (fallback 필드는 지원하지 않으며 보내면 422 INVALID_REQUEST)
  • 알림톡은 예약 발송 후 취소할 수 있습니다. (발송 시각 전)

오류

HTTPcode원인
403BUSINESS_MEMBER_REQUIRED사업자 회원이 아님
422PROFILE_NOT_FOUND발신프로필 키 오류/비활성
422TEMPLATE_NOT_FOUND템플릿 코드 오류 또는 미승인
422TEMPLATE_VARIABLE_MISSING필수 변수 누락
402INSUFFICIENT_BALANCE잔액 부족