문자(SMS) 단건 발송하기
전화번호와 본문 텍스트만으로 단건 문자(SMS/LMS)를 발송하는 방법을 설명합니다. 블럭스 담당자에게 문의하여 발급받은 secret key를 사용해서 문자를 발송할 수 있습니다.
개요
- 캠페인 생성 없이 외부 시스템에서 직접 API를 호출하여 SMS/LMS를 발송할 수 있습니다.
- 회원/비회원 구분 없이 전화번호만 있으면 발송할 수 있어 주문/배송/문의 등 거래성 알림에 적합합니다.
- 한 번의 호출로 한 명의 수신자에게 발송되며, 다수 수신자에게 발송하려면 호출을 반복하거나 캠페인을 사용하세요.
전제 조건
- 블럭스 콘솔에서 SMS 발신 프로필(
sms_profile)을 등록하고 인포뱅크 발송 채널을 활성화해야 합니다. - 발신번호는 인포뱅크에 사전 등록·인증된 번호여야 합니다.
- 본문 텍스트는 한글·영문·숫자·기본 특수문자만 사용 가능합니다(EUC-KR 호환).
발송 API
엔드포인트
POST https://api.blux.ai/prod/applications/{APPLICATION_ID}/notifications/send-sms
인증
요청 시 Authorization 헤더에 발급받은 secret key를 포함해야 합니다:
Authorization: {SECRET_KEY}
요청 본문
{
"sms_profile_id": "string",
"phone_number": "01012345678",
"body": "주문이 완료되었습니다.",
"title": "주문 완료"
}
필드 설명
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
sms_profile_id | string | 필수 | 콘솔에서 등록한 SMS 발신 프로필 ID. 인포뱅크 발송이 활성화(is_infobank_enabled = true)되어 있어야 합니다 |
phone_number | string | 필수 | 수신자 전화번호. 숫자 사이 -/공백 허용 (예: 01012345678, 010-1234-5678) |
body | string | 필수 | 본문 텍스트 |
title | string | 선택 | 제목 (LMS 전용). 입력하면 type 지정과 무관하게 LMS로 발송됩니다 |
type | "sms" | "lms" | 선택 | 메시지 타입. 미지정 시 본문이 EUC-KR 90바이트(한글 약 45자)를 초과하면 LMS, 그 외 SMS로 자동 결정. title이 있는 경우 항상 LMS. MMS는 지원하지 않습니다 |
광고성 문자 발송 시에는 정보통신망법에 따라 본문 시작에
[광고]표기와 본문 끝에 무료 수신거부 안내(080-XXX-XXXX 등)를 직접 포함해야 합니다. 야간(21시~08시) 발송 금지 등 규제 준수 책임은 발송 측에 있습니다.
응답
성공 시 (HTTP 200 OK):
{
"notification_id": "65f0a8b1c4d3e2f1a0b9c8d7",
"status": "sent"
}
벤더(인포뱅크)가 발송 요청을 거절한 경우에도 200 OK로 응답되며 status가 failed로 표시됩니다:
{
"notification_id": "65f0a8b1c4d3e2f1a0b9c8d7",
"status": "failed",
"error_code": "FAILED_TO_SEND_INFOBANK_SMS",
"error_message": "..."
}
필드 설명
| 필드 | 타입 | 설명 |
|---|---|---|
notification_id | string | 발송 요청에 대해 생성된 알림 ID |
status | "sent" | "failed" | 벤더 발송 요청이 성공(sent)했는지 거절(failed)됐는지. 단말기 수신 결과는 결과 웹훅으로 별도 전달 |
error_code | string | status=failed인 경우만 포함. 거절 사유 코드 |
error_message | string | status=failed인 경우만 포함. 거절 사유 메시지 |
상태 코드
| 코드 | errorCode | 설명 |
|---|---|---|
200 OK | — | 벤더 발송 요청 완료. 결과는 응답 본문의 status로 확인 (sent / failed) |
400 Bad Request | (validation) | 필수 필드 누락, 전화번호 형식 오류 등 잘못된 값 전달 시 |
400 Bad Request | ResourceNotFound | SMS 발신 프로필을 찾을 수 없는 경우 |
400 Bad Request | ResourceNotReady | SMS 발신 프로필의 인포뱅크 발송이 비활성(is_infobank_enabled !== true)인 경우 |
400 Bad Request | UnAuthorized | 인증 실패 (secret key 오류) |
429 Too Many Requests | TooManyRequests | 호출 한도 초과 (발송 한도 참고) |
500 Internal Server Error | — | 서버 내부 오류 |