API

템플릿형 발송

작성일 2026.02.27 | 수정일 2026.03.25

엔드포인트, 요청 본문, 응답 구조 등 자세한 정보는 메시지 발송 공통 문서에서 확인해주세요

BMS_FREE를 제외한 모든 브랜드 메시지 타입(BMS_*)이 해당되며, 사전에 등록된 브랜드 메시지 템플릿을 기반으로 발송합니다.
템플릿에 포함된 변수(치환문구)는 발송 시점에 값으로 치환되며, 치환 후 최종 내용/제약은 템플릿 정책을 따릅니다.

항목내용
길이 제한템플릿 기준 (변수 치환 후)
필수 필드to, kakaoOptions.pfId, kakaoOptions.templateId, kakaoOptions.variables, kakaoOptions.bms.targeting
대체발송미지원
autoTypeDetect 조건kakaoOptions.templateId + kakaoOptions.bms.targeting 존재

필수 파라미터

nametypeDescription
messages[].toString수신번호
messages[].kakaoOptions.pfIdString카카오 채널 프로필 ID
또는 senderKey 사용 가능
messages[].kakaoOptions.templateIdString브랜드 메시지 템플릿 ID
messages[].kakaoOptions.variablesObject템플릿 변수
messages[].kakaoOptions.bms.targetingString타겟팅 설정 (M, N, I)

선택 파라미터

nameTypeDescription
messages[].fromString발신번호
messages[].kakaoOptions.senderKeyString발신 프로필 키 (pfId 대체)
messages[].kakaoOptions.buttonsArray버튼 목록 (템플릿별 상이)
messages[].kakaoOptions.couponObject쿠폰 정보 (템플릿별 상이)
messages[].kakaoOptions.replacementsObject대체 텍스트

kakaoOptions.buttons 오브젝트

템플릿에 정의된 버튼 정보를 지정합니다. 버튼 유형별 필수 파라미터가 다릅니다.

NameTypeRequiredDescription
buttonNameStringtrue버튼명
buttonTypeStringtrue버튼 타입
카카오 버튼 유형 안내 참조
linkMoString모바일 링크
WL이면 필수
linkPcStringPC 링크
linkAndStringAndroid 링크
AL이면 linkAnd/linkIos 중 1개 이상 필수
linkIosStringiOS 링크
AL이면 linkAnd/linkIos 중 1개 이상 필수

kakaoOptions.coupon 오브젝트

템플릿에 쿠폰이 포함된 경우 설정합니다.

NameTypeRequiredDescription
titleStringtrue쿠폰 제목. 허용 형식
${숫자}원 할인 쿠폰, ${숫자}% 할인 쿠폰, 배송비 할인 쿠폰, ${7자 이내} 무료 쿠폰, ${7자 이내} UP 쿠폰
descriptionStringtrue쿠폰 설명 (최대 12자)
linkMobileString쿠폰 링크 (모바일)
linkPcString쿠폰 링크 (PC)
linkAndroidString쿠폰 링크 (Android)
linkIosString쿠폰 링크 (iOS)


타겟팅 설정

브랜드 메시지는 kakaoOptions.bms.targeting 값에 따라 발송 대상이 결정됩니다.

valueNameDescription
M마케팅 수신 동의자브랜드 등록 필요
N마케팅 수신 동의자 − 채널친구브랜드 등록 필요
I채널친구브랜드 등록 불필요

I를 제외한 타겟팅은 카카오 측에서 인허가된 비즈니스 채널만 사용할 수 있습니다. 관련 인허가 문의는 고객센터로 문의해주세요


템플릿 변수 설정

템플릿에 포함된 #{변수명} 형태의 치환문구를 kakaoOptions.variables로 설정합니다.

variables의 키·값은 반드시 모두 String 타입이어야 합니다.

chat

템플릿 원문 예시

안녕하세요, #{고객명} 고객님!

#{할인율} 할인 이벤트에 초대합니다.

{
  "messages": [
    {
      "to": "01012345678",
      "kakaoOptions": {
        "pfId": "PFxxxxxxxxxxxxxxxx",
        "templateId": "BMSxxxxxxxxxxxxxxxx",
        "variables": {
          "#{고객명}": "홍길동",
          "#{할인율}": "20%"
        },
        "bms": {
          "targeting": "I"
        }
      }
    }
  ]
}
chat

치환 결과

안녕하세요, 홍길동 고객님!

20% 할인 이벤트에 초대합니다.

주의사항

  • 정의되지 않은 변수를 보내거나 필수 변수를 누락하면 발송이 실패합니다.

  • 변수명은 #{} 사이에 위치하며, 템플릿에 정의된 이름과 정확히 일치해야 합니다.

BMS 템플릿형은 알림톡과 달리 messages[].text 직접 지정을 지원하지 않습니다. 반드시 variables를 사용해야 합니다.


요청 예시

{
  "messages": [
    {
      "to": "01012345678",
      "kakaoOptions": {
        "pfId": "PFxxxxxxxxxxxxxxxx",
        "templateId": "BMSxxxxxxxxxxxxxxxx",
        "variables": {
          "#{고객명}": "홍길동",
          "#{할인율}": "20%"
        },
        "bms": {
          "targeting": "I"
        }
      }
    }
  ]
}
{
  "messages": [
    {
      "to": "01012345678",
      "kakaoOptions": {
        "pfId": "PFxxxxxxxxxxxxxxxx",
        "templateId": "BMSxxxxxxxxxxxxxxxx",
        "variables": {
          "#{고객명}": "홍길동",
          "#{상품명}": "여름 티셔츠"
        },
        "buttons": [
          {
            "buttonName": "바로가기",
            "buttonType": "WL",
            "linkMo": "https://example.com/event"
          }
        ],
        "coupon": {
          "title": "5000원 할인 쿠폰",
          "description": "3만원 이상 구매 시",
          "linkMobile": "https://example.com/coupon"
        },
        "bms": {
          "targeting": "I"
        }
      }
    }
  ]
}