알림톡 발송 결과 웹훅
블럭스가 발송한 알림톡이 유저에게 도달하거나 도달에 실패할 때 외부 시스템으로 실시간 전달받는 기능입니다. 처리 결과가 확정될 때마다 등록된 URL로 HTTP POST 요청이 전송됩니다.
현재는 알림톡 직접 발송 API로 보낸 건만 결과 웹훅이 전송됩니다. 캠페인·시나리오 발송 결과는 추후 지원 예정입니다.
이벤트 타입
| event_type | 발생 시점 |
|---|---|
notification:alimtalk:received | 유저 카카오톡 단말기에 메시지가 도달한 시점 |
notification:alimtalk:receive_failed | 유저 단말기까지 도달하지 못한 경우 (수신 차단, 카카오톡 미사용, 잘못된 번호 등) |
한 번의 알림톡 발송에 대해 received 또는 receive_failed 중 한 건의 웹훅이 전송됩니다.
이벤트 등록
받고 싶은 이벤트 타입과 콜백 URL을 블럭스 담당자에게 전달하면 등록됩니다. 이벤트 타입별로 서로 다른 URL을 등록할 수 있습니다.
페이로드
웹훅은 다음 형태의 JSON을 HTTP POST로 전송합니다. 여러 이벤트를 한 번에 묶어 보낼 수 있도록 events 배열에 담아 전송하며, 현재는 한 번의 요청에 1건만 담겨 옵니다. 향후 배치 발송이 도입되면 배열 길이가 늘어날 수 있으므로 항상 배열로 파싱해 주세요.
{
"events": [
{
"event_type": "notification:alimtalk:received",
"payload": {
"application_id": "65f1a2b3c4d5e6f7a8b9c0d1",
"blux_user_id": "65f1a2b3c4d5e6f7a8b9c0d2",
"user_id": "user_123",
"notification_id": "65f1a2b3c4d5e6f7a8b9c0d3",
"phone_number": "01012345678",
"template_code": "ORDER_CONFIRM_001",
"status": "received",
"received_at": "2026-05-11T10:23:45.123Z"
}
}
]
}
필드
| 필드 | 타입 | 설명 |
|---|---|---|
events | array | (필수) 결과 이벤트 배열. 현재는 1건씩 전송 |
events[].event_type | string | (필수) 위 2종 중 하나 |
events[].payload.application_id | string | (필수) 블럭스 application 식별자 |
events[].payload.blux_user_id | string | (선택) 블럭스 user 식별자 (외부 직접 발송처럼 매핑이 없으면 누락) |
events[].payload.user_id | string | (선택) 등록된 경우 고객사 자체 user_id |
events[].payload.notification_id | string | (필수) 블럭스 notification 식별자 |
events[].payload.phone_number | string | (필수) 수신자 전화번호 |
events[].payload.template_code | string | (필수) 알림톡 템플릿 코드 |
events[].payload.status | string | (필수) received / receive_failed |
events[].payload.received_at | string | (필수) 단말기 도달(시도) 시각 (ISO 8601, UTC) |
events[].payload.failed_reason | string | (선택) receive_failed인 경우 사유 |
응답
10초 이내로 200 응답을 보내주세요.
200응답을 받으면 전송 성공으로 처리됩니다.200응답을 보내지 않으면 재전송됩니다.4xx응답은 영구 실패로 간주되어 재전송하지 않습니다.
응답 본문은 비어 있어도 됩니다. 무거운 후처리는 큐에 위임하고 빠르게 200 응답을 보내주세요.
재전송 정책
최초 전송이 실패하면 최대 6회까지 웹훅을 재전송합니다. 재전송 간격은 점점 길어집니다.
| 시도 | 간격 (이전 시도로부터) |
|---|---|
| 2회 | 약 2~4초 후 |
| 3회 | 약 4~8초 후 |
| 4회 | 약 8~16초 후 |
| 5회 | 약 16~32초 후 |
| 6회 | 약 32~64초 후 |
| 7회 | 약 64~128초 후 |
최초 전송으로부터 5분이 지나면 더 이상 재전송하지 않습니다.