# 알림톡

카카오톡 사용자의 채널추가 또는 별도 수신동의 없이 휴대폰번호를 기반으로 정보성 알림 메시지를 전송합니다.

| 구분   | 설명                                                                                                                                                                                      |
| ---- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 전송대상 | 모든 카카오톡 이용자                                                                                                                                                                             |
| 전송내용 | **정보성 메시지** - 주문, 예약, 결제, 배송, 회원가입 등 안내 메시지                                                                                                                                             |
| 전송유형 | **텍스트, 강조표기, 이미지**                                                                                                                                                                      |
| 준비사항 | 사전에 카카오의 승인을 받은 템플릿 내용으로만 메시지 전송 가능                                                                                                                                                     |
| 참고   | [1. \[채널 등록\]](https://developers.popbill.com/guide/kakaotalk/introduction/manage-channel) [2. \[템플릿 가이드\]](https://developers.popbill.com/guide/kakaotalk/introduction/template-guide) |

## 전송 유형

**텍스트**

![알림톡 텍스트](https://developers.popbill.com/images/guide/introduction/kakaotalk/ats-text.png)

|  번호 | 구성요소  | 상세 안내                                                                                  |
| :-: | ----- | -------------------------------------------------------------------------------------- |
|  ➊  | 내용    | 1) 한/영 구분없이 띄어쓰기 포함 1,300자 2) 부가메시지+광고메시지 최대 글자 수 500자 포함                              |
|  ➋  | 부가메시지 | 1) 한/영 구분없이 띄어쓰기 포함 500자 2) 변수 사용 불가, URL 포함 가능                                        |
|  ➌  | 광고메시지 | 1) 카카오톡 채널 추가 안내 문구 자동 삽입 \* 채널 추가하고 이 채널의 마케팅 메시지 등을 카카오톡으로 받기 2) 카카오톡 채널 추가 버튼 자동 추가 |
|  ➍  | 버튼    | 1) 버튼명 : 띄어쓰기 포함 14자 2) 최대 5개                                                          |

**강조표기**

![알림톡 강조표기](https://developers.popbill.com/images/guide/introduction/kakaotalk/ats-emp.png)

|  번호 | 구성요소 | 상세 안내                                                     |
| :-: | ---- | --------------------------------------------------------- |
|  ➊  | 보조문구 | 한/영 구분없이 띄어쓰기 포함 50자                                      |
|  ➋  | 타이틀  | 한/영 구분없이 띄어쓰기 포함 50자                                      |
|  ➌  | 내용   | 1) 한/영 구분없이 띄어쓰기 포함 1,300자 2) 부가메시지+광고메시지 최대 글자 수 500자 포함 |

**이미지**

![알림톡 이미지](https://developers.popbill.com/images/guide/introduction/kakaotalk/ats-img.png)

|  번호 | 구성요소 | 상세 안내                                                                                                   |
| :-: | ---- | ------------------------------------------------------------------------------------------------------- |
|  ➊  | 이미지  | 1) 가로:세로 비율제한 2:1 (500\*250px 이하 업로드 불가) 2) 권장 사이즈 : 800\*400px 3) 파일 형식 : jpg, png 4) 파일 크기 : 최대 500KB |
|  ➋  | 내용   | 1) 한/영 구분없이 띄어쓰기 포함 1,300자 2) 부가메시지+광고메시지 최대 글자 수 500자 포함                                               |
|  ➌  | 버튼   | 1) 버튼명 : 띄어쓰기 포함 14자 2) 최대 5개                                                                           |

## 전송 프로세스

승인된 템플릿으로 알림톡 전송을 요청하고, 팝빌은 요청에 대한 접수번호를 반환합니다. [\[알림톡 전송\]](https://developers.popbill.com/api-reference/kakaotalk/api/send)

```mermaid
sequenceDiagram
    participant 파트너
    participant POPBiLL

    파트너->>POPBiLL: 알림톡 전송 (SendATS) <br/> 단건전송 / 대량전송 / 동보전송
    POPBiLL-->>파트너: receiptNum(접수번호) 반환
```

> 10,000건 이상 메시지를 전송하는 경우에는, 반드시 동보전송 또는 대량전송 API로 접수가 필요합니다.

## 상태확인

카카오톡 상태는 팝빌에서 자동으로 전달하는 “Webhook” 방법과 파트너가 API를 호출하는 “API Polling” 방법을 지원합니다.

- **Webhook(Push)**\
  팝빌 카카오톡 상태 변경과 동시에 실시간으로 파트너가 지정한 Callback URL로 이벤트 정보를 전달합니다. [\[Webhook\]](https://developers.popbill.com/api-reference/kakaotalk/webhook/introduction)

- **API(Polling)**\
  파트너가 주기적으로 API를 호출하여 카카오톡 상태를 확인합니다. [\[GetMessages-카카오톡 전송내역 확인\]](https://developers.popbill.com/api-reference/kakaotalk/api/info#GetMessages)

**Webhook(Push)**

```mermaid
sequenceDiagram
    participant 파트너
    participant Webhook Receiver
    participant POPBiLL

    파트너->>POPBiLL: Callback URL 등록
    파트너->>POPBiLL: 알림톡 전송 (SendATS)
    POPBiLL-->>파트너: receiptNum(접수번호) 반환
    POPBiLL->>POPBiLL: 카카오 전송 및 처리 완료
    POPBiLL->>Webhook Receiver: Webhook 실행 <br/> Event Type = "RESULT" <br/> state = 3(완료) <br/> result = 100(성공) or else(전송실패)
    Webhook Receiver->>Webhook Receiver: 결과 업데이트
```

**API(Polling)**

```mermaid
sequenceDiagram
    participant 파트너
    participant POPBiLL

    파트너->>POPBiLL: 알림톡 전송 (SendATS)
    POPBiLL-->>파트너: receiptNum(접수번호) 반환
    POPBiLL->>POPBiLL: 카카오 전송 및 처리 완료
    파트너->>POPBiLL: GetMessages - 알림톡 전송내역 확인
    POPBiLL-->>파트너: 전송상태 및 처리결과 반환 <br/> state = 3(완료) <br/> result = 100(성공) or else(전송실패)
    파트너->>파트너: 결과 업데이트
```
