API

메시지 발송

작성일 2026.02.27 | 수정일 2026.02.27

POST/messages/v4/send-many/detail

하나 이상의 메시지를 발송하는 API입니다. 만 건을 초과하는 메시지 발송이 필요한 경우 TODO 그룹 메시지 API를 사용하는 것을 권장합니다.

lightbulb
  • 발송 내역 확인 → 문자발송 내역

  • 데이터 보관기간: 6개월 (생성일 기준)

  • 발송할 수 있는 메시지가 없을 경우 자세한 에러 내역을 결과로 반환

  • 6개월이 지난 내역은 조회 불가능

메시지 타입별 비교

구분길이 제한필수 필드주요 특징
SMS
(단문)
90 byte
(한글 45자)
from, to, text일반 문자 메시지
LMS
(장문)
2,000 byte
(한글 1,000자)
from, to, text장문 문자 메시지
(수신자 데이터 통신 필요)
MMS
(사진문자)
2,000 byte
(한글 1,000자)
from, to, text,
imageId
이미지 첨부
(JPG, 최대 200KB)
카카오
알림톡
(ATA)
한글 1,000자
(변수 치환 후)
to, kakaoOptions.pfId,
kakaoOptions.templateId
사전 등록 템플릿
변수 치환 가능
카카오
브랜드 메시지
템플릿형
템플릿 기준to, kakaoOptions.pfId,
kakaoOptions.templateId,
kakaoOptions.bms.targeting
브랜드 메시지
템플릿 기반
카카오
브랜드 메시지
자유형
타입별 상이to, kakaoOptions.pfId,
kakaoOptions.bms.targeting,
kakaoOptions.bms.chatBubbleType
템플릿 없이
자유 발송
RCS SMS100 bytefrom, to, text, rcsOptionsRCS
단문
RCS LMS1,300 자from, to, text, rcsOptionsRCS
장문
RCS MMS1,300 자from, to, text, rcsOptionsRCS
이미지 첨부
RCS 템플릿템플릿 기준from, to, rcsOptions.templateIdRCS
템플릿 기반
네이버 스마트알림톡
(NSA)
템플릿 기준to, naverOptions.talkId
naverOptions.templateId
네이버
템플릿 기반

자동 타입 감지

messages[].autoTypeDetect 필드가 true(기본값)일 때, 시스템이 자동으로 메시지 타입을 결정합니다.

조건결정되는 타입
text 필드가 90byte 이하SMS
text 필드가 90byte 초과 또는 subject 필드 존재LMS
imageId 필드 존재MMS
kakaoOptions.templateId 존재 (+ bms.targeting 없음)알림톡 (ATA)
kakaoOptions.templateId + kakaoOptions.bms.targeting 존재BMS 템플릿형
`kakaoOptions.bms.chatBubbleType 존재BMS 자유형
lightbulb

messages[].type 필드를 명시적으로 지정하면 autoTypeDetect를 무시하고 해당 타입으로 발송합니다.

Body Params

NameTypeREQDescription
messagesArray<Object>true발송할 메시지 내용
toStringtrue수신번호. 발송할 때는 숫자만 입력해야 됩니다.
해외로 발송할 경우 "+"(더하기) 기호와 국가 번호는 제외하고 입력해주세요.
국가번호는 country 필드에 입력해야 합니다.
fromString발신번호. 사전 등록된 전화번호만 사용 가능합니다.
문자(SMS, LMS, MMS, FAX)를 보낼 때는 필수입니다.
알림톡, 친구톡을 보내는 경우에는 빈 값도 허용되지만 대체발송 시 문자 발송은 실패합니다.
textString메시지 내용
SMS: 90byte 제한
나머지: 2000byte 제한
typeString• SMS: 단문 문자
• LMS: 장문 문자
• MMS: 사진 문자
• ATA: 알림톡
• CTA: 친구톡
• CTI: 친구톡 + 이미지
• NSA: 네이버 스마트 알림
• RCS_SMS: RCS 단문 문자
• RCS_LMS: RCS 장문 문자
• RCS_MMS: RCS 사진 문자
• RCS_TPL: RCS 템플릿 문자
• RCS_ITPL: RCS 이미지 템플릿 문자
• RCS_LTPL: RCS LMS 템플릿 문자
• FAX: 팩스
• VOICE: 보이스콜
• BMS_TEXT: 브랜드 메시지 텍스트형
• BMS_IMAGE: 브랜드 메시지 이미지형
• BMS_WIDE: 브랜드 메시지 와이드형
• BMS_WIDE_ITEM_LIST: 브랜드 메시지 와이드 아이템 리스트형
• BMS_CAROUSEL_FEED: 브랜드 메시지 캐러셀 피드형
• BMS_PREMIUM_VIDEO: 브랜드 메시지 프리미엄 비디오형
• BMS_COMMERCE: 브랜드 메시지 커머스형
• BMS_CAROUSEL_COMMERCE: 브랜드 메시지 캐러셀 커머스형
• BMS_FREE: 브랜드 메시지 자유형
countryString국가번호 (기본: 82, 미국(캐나다):1, 중국: 86, 일본: 81)
subjectString메시지 제목. 40byte 제한. LMS, MMS, FAX 에서만 사용 가능합니다.
ATA, CTA, CTI, NSA, RCS_SMS, RCS_LMS, RCS_MMS, RCS_TPL에서도 설정 가능하지만 LMS로 대체발송 될 때 사용됩니다.
설정하지 않았을 경우 메시지 본문 내용 앞 40byte가 자동으로 들어갑니다.
imagedIdStringMMS 발송 시 사용되는 이미지의 고유 아이디. 이미지 타입이 MMS일 경우에만 사용 가능합니다.
이미지 관리 페이지 (로그인 필요)
이미지 관리 API TODO
kakaoOptionsObject친구톡, 알림톡을 보내기 위한 옵션
pfIdString카카오톡 채널 연동 아이디
카카오톡 채널 관리 페이지 (로그인 필요)
TODO 카카오톡 채널 관리 API
templateIdString알림톡 템플릿 연동 아이디
알림톡 템플릿 관리 페이지 (로그인 필요)
TODO 알림톡 템플릿 관리 API
titleString강조표기문구
adFlagBoolean친구톡 광고 문자 여부. 기본값 false
친구톡 광고를 보낼 때 해당 값을 제대로 설정하지 않으면 카카오톡 채널 사용에 패널티가 가해질 수 있습니다.
disableSmsBoolean대체발송여부. 기본값 false
false 로 설정했을 경우 해당건이 발송에 실패하게 됐을 때 문자로(SMS, LMS)로 대체 발송됩니다.
대체 발송이 될 경우 기존 가격은 환불되고 각 문자 타입에 맞는 금액이 차감됩니다.
variablesObject카카오톡 템플릿 대체 문구 입력 오브젝트
#{홍길동}String템플릿에 포함된 대체문구
#{010-0000-0000}String템플릿에 포함된 대체문구
#{2026년 2월 27일}String템플릿에 포함된 대체문구
quickRepliesArray<Object>바로 연결. 최소 1개, 최대 10개
nameStringtrue바로 연결 이름. 변수 포함 불가능
linkTypeStringtrue링크타입. 링크 유형 안내 문서 TODO 깨진링크
linkMoString모바일 링크(WL 웹링크)
linkPcString웹 링크(WL 웹링크)
linkAndString안드로이드 링크(AL 앱링크)
linkAndStringIOS 링크(AL 앱링크)
linkIosString상담톡 전환 시 전달할 메타정보
chatExtraString링크 클릭 시 외부 브라우저로 열기 여부. 기본값 false
targetOutBoolean알림톡 하이라이트. 강조 유형이 아이템 리스트일 때만 사용 가능합니다.
highlightObject알림톡 하이라이트. 강조 유형이 아이템 리스트일 때만 사용 가능합니다.
titleString알림톡 하이라이트 제목. 변수 포함 가능. 최대 30자
headerString알림톡 헤더. 강조 유형이 아이템 리스트일 때만 사용 가능합니다. 변수 포함 가능. 최대 16자
itemObject알림톡 아이템. 목록과 요약이 있습니다. 강조 유형이 아이템 리스트일 때만 사용 가능합니다.
listArray<Object>알림톡 아이템 리스트. 최소 2개, 최대 10개까지 등록할 수 있습니다.
descriptionString알림톡 아이템 리스트 제목. 변수 포함 가능. 최대 23자
summaryObject알림톡 아이템 리스트 요약.
descriptionString알림톡 아이템 리스트 요약 내용. 변수 포함 가능. 화폐 단위, 숫자, 쉼표, 마침표만 사용 가능합니다. 최대 14자.
buttonsArray<Object>알림톡, 템플릿 버튼 목록
buttonNameStringtrue버튼 이름
buttonTypeStringtrue버튼 유형. TODO 버튼유형 안내문서
linkMoString모바일 링크(WL 웹링크)
linkPcString웹 링크(WL 웹링크)
linkAndString안드로이드 링크(AL 앱링크)
linkIosStringIOS 링크(AL 앱링크)
chatExtraString상담톡 전환 시 전달할 메타정보
targetOutBoolean링크 클릭 시 외부 브라우저로 열기 여부. 기본값 false
bmsObject브랜드 메시지 옵션
targetingString발송범위
- M(마케팅수신동의유저)
- N(마케팅수신동의유저에서 채널친구 제외)
- I(채널친구)
chatBubbleTypeString-
adultBoolean-
headerString-
imageIdStringMMS 발송 시 사용되는 이미지의 고유 아이디. 이미지 타입이 MMS일 경우에만 사용 가능합니다.
이미지 관리 페이지 (로그인 필요)
TODO 이미지 관리 API
imageLinkString-
additionalContentString-
contentString-
carouselObject-
mainWideItemObject-
subWideItemListArray-
buttonsArray-
commerceObject-
couponObject-
videoObject-
naverOptionsObject네이버 스마트 알림을 보내기 위한 옵션
talkIdString테스트에서 발급된 네이버 톡톡 연동 아이디
templateIdString네이버 스마트 알림 템플릿 아이디
disableSmsBoolean대체발송여부. false 로 설정했을 경우 해당건이 발송에 실패하게 됐을 때 문자로(SMS, LMS)로 대체 발송됩니다. 대체 발송이 될 경우 기존 가격은 환불되고 각 문자 타입에 맞는 금액이 차감됩니다. 기본값 false
variablesObject네이버 템플릿 대체 문구 입력 오브젝트
#{홍길동}String템플릿에 포함된 대체문구
#{010-0000-0000}String템플릿에 포함된 대체문구
#{2021년 6월 17일}String템플릿에 포함된 대체문구
buttonsArray<Object>네이버 스마트 알림 템플릿 버튼 목록
buttonNameString버튼 이름
buttonTypeStringtrue버튼 타입
linkMoString모바일 링크
linkPcString웹 링크
linkAndString안드로이드 앱 링크
linkIosString아이폰 앱 링크
rcsOptionsObjectRCS 문자를 보내기 위한 옵션
brandIdString브랜드 아이디
templateIdStringRCS 템플릿 아이디
copyAllowedBoolean문자 복사 가능 여부
variablesObjectRCS 템플릿 대체 문구 입력 오브젝트
{{홍길동}}String템플릿에 포함된 대체문구
{{010-0000-0000}}String템플릿에 포함된 대체문구
{{2026년 2월 27일}}String템플릿에 포함된 대체문구
mmsTypeString사진 문자 타입. 타입: "M3", "S3", "M4", "S4", "M5", "S5", "M6", "S6" (M: 중간 사이즈. S: 작은 사이즈. 숫자: 사진 개수)
commercialTypeBoolean광고 문자 여부
disableSmsBoolean대체발송여부. false 로 설정했을 경우 해당건이 발송에 실패하게 됐을 때 문자로(SMS, LMS)로 대체 발송됩니다. 대체 발송이 될 경우 기존 가격은 환불되고 각 문자 타입에 맞는 금액이 차감됩니다. 기본값 false
additionalBodyArray<Object>RCS 사진 문자 전송 시 필요한 오브젝트
titleStringtrue슬라이드 제목
descriptionStringtrue슬라이드 설명
imageIdStringMMS 발송 시 사용되는 이미지의 고유 아이디. 이미지 타입이 MMS일 경우에만 사용 가능합니다.
이미지 관리 페이지 (로그인 필요)
TODO 이미지 관리 API
buttonsArray<Object>슬라이드에 추가되는 버튼 목록 최대 2개
buttonTypeStringtrue`WL'(웹링크), 'ML'(지도[좌표]), 'MQ'(지도[쿼리]), 'MR'(위치공유), 'CA'(캘린더생성), 'CL'(복사), 'DL'(전화걸기), 'MS'(메시지보내기)
buttonNameStringtrue버튼 이름
linkString버튼 타입 ML, MQ에 사용되는 링크
latitudeString버튼 타입 ML에 사용되는 위도 좌표
longitudeString버튼 타입 ML에 사용되는 경도 좌표
labelString버튼 타입 ML에 사용되는 레이블
queryString버튼 타입 MQ에 사용되는 쿼리
titleString버튼 타입 CA에 사용되는 일정 이름
startTimeDate버튼 타입 CA에 사용되는 일정 시작일
endTimeDate버튼 타입 CA에 사용되는 일정 종료작일
textString메시지 내용
SMS: 90byte 제한
나머지: 2000byte 제한
phoneString핸드폰 번호 버튼 타입 DL과 MS에 사용됨
buttonsArray<Object>
faxOptionsObject
voiceOptionsObject
customFieldsObject
autoTypeDetectBoolean
replacementsArray<Object>
scheduledDateDate메시지 예약 날짜. 날짜가 지정되면 해당 시간에 메시지가 발송됩니다. 만약 현재 시간보다 이전으로 지정하면 즉시 발송됩니다. 예약 즉시 일일발송량에 영향을 주며 잔액은 발송 시 차감됩니다.
strictBoolean엄격 검사 여부. 기본값 false
- 유요하지 않은 문자 검사(아닐 시 자체적으로 삭제).
- LMS 나 MMS에서 제목 여부 검사. (아닐 시 문자 내용에서 제목을 구함).
- 템플릿을 발송 전 검사(아닐 시 발송 후 실패)
agentObject에이전트
appIdString앱 아이디
osPlatformStringOS 플랫폼
sdkVersionStringSDK 버전
allowDuplicatesBoolean중복 수신번호 허용 여부. 기본값 false
showMessageListBoolean응답에 메시지 포함 선택 여부

Structures

Request Structure
{ "messages": [ { "to": "string", "from": "string", "text": "string", "type": "string", "country": "string", "subject": "string", "imageId": "string", "kakaoOptions": { "pfId": "string", "templateId": "string", "senderKey": "string", "title": "string", "adFlag": "boolean", "templateCode": "string", "buttonName": "string", "buttonUrl": "string", "disableSms": "boolean", "imageId": "string", "variables": { "#{홍길동}": "string", "#{010-0000-0000}": "string", "#{2021년 6월 17일}": "string" }, "quickReplies": [ { "name": "string", "linkType": "string", "linkMo": "string", "linkPc": "string", "linkAnd": "string", "linkIos": "string", "chatExtra": "string", "targetOut": "boolean" } ], "highlight": { "title": "string" }, "header": "string", "item": { "list": [ { "description": "string" } ], "summary": { "description": "string" } }, "buttons": [ { "buttonName": "string", "buttonType": "string", "linkMo": "string", "linkPc": "string", "linkAnd": "string", "linkIos": "string", "chatExtra": "string", "targetOut": "boolean" } ], "bms": { "targeting": "string", "chatBubbleType": "string", "adult": "boolean", "header": "string", "imageId": "string", "imageLink": "string", "additionalContent": "string", "content": "string", "carousel": {}, "mainWideItem": {}, "subWideItemList": {}, "buttons": {}, "coupon": {}, "commerce": {}, "video": {} } }, "naverOptions": { "talkId": "string", "templateId": "string", "disableSms": "boolean", "variables": { "#{홍길동}": "string", "#{010-0000-0000}": "string", "#{2021년 6월 17일}": "string" }, "buttons": [ { "buttonCode": "string", "buttonName": "string", "buttonType": "string", "linkMo": "string", "linkPc": "string", "linkAnd": "string", "linkIos": "string" } ] }, "rcsOptions": { "brandId": "string", "templateId": "string", "copyAllowed": "boolean", "variables": { "{{홍길동}}": "string", "{{010-0000-0000}}": "string", "{{2021년 6월 17일}}": "string" }, "mmsType": "string", "commercialType": "boolean", "disableSms": "boolean", "additionalBody": [ { "title": "string", "description": "string", "imageId": "string", "buttons": [ { "buttonType": "string", "buttonName": "string", "link": "string", "latitude": "string", "longitude": "string", "label": "string", "query": "string", "title": "string", "startTime": "date", "endTime": "date", "text": "string", "phone": "string" } ] } ], "buttons": [ { "buttonType": "string", "buttonName": "string", "link": "string", "latitude": "string", "longitude": "string", "label": "string", "query": "string", "title": "string", "startTime": "date", "endTime": "date", "text": "string", "phone": "string" } ] }, "faxOptions": { "fileIds": [ {} ] }, "voiceOptions": { "voiceType": "string", "headerMessage": "string", "tailMessage": "string", "replyRange": "number", "counselorNumber": "string", "variables": {} }, "customFields": { "key": "string" }, "autoTypeDetect": "boolean", "hint": {}, "replacements": [ { "to": "string", "from": "string", "text": "string", "customFields": { "key": "string" } } ] } ], "scheduledDate": "date", "strict": "boolean", "agent": { "appId": "string", "osPlatform": "string", "sdkVersion": "string" }, "allowDuplicates": "boolean", "showMessageList": "string" }
Response Structure
{ "failedMessageList": [ { "to": "string", "from": "string", "type": "string", "country": "string", "messageId": "string", "statusCode": "string", "statusMessage": "string", "accountId": "string" } ], "groupInfo": { "count": { "total": "number", "sentTotal": "number", "sentFailed": "number", "sentSuccess": "number", "sentPending": "number", "sentReplacement": "number", "refund": "number", "registeredFailed": "number", "registeredSuccess": "number" }, "countForCharge": { "sms": { "82": "number", "101": "number" }, "lms": { "82": "number", "101": "number" }, "mms": { "82": "number", "101": "number" }, "ata": { "82": "number", "101": "number" }, "cta": { "82": "number", "101": "number" }, "cti": { "82": "number", "101": "number" }, "nsa": { "82": "number", "101": "number" }, "rcs_sms": { "82": "number", "101": "number" }, "rcs_lms": { "82": "number", "101": "number" }, "rcs_mms": { "82": "number", "101": "number" }, "rcs_tpl": { "82": "number", "101": "number" }, "rcs_itpl": { "82": "number", "101": "number" }, "rcs_ltpl": { "82": "number", "101": "number" }, "fax": { "82": "number", "101": "number" }, "voice": { "82": "number", "101": "number" }, "bms_text": { "82": "number", "101": "number" }, "bms_image": { "82": "number", "101": "number" }, "bms_wide": { "82": "number", "101": "number" }, "bms_wide_item_list": { "82": "number", "101": "number" }, "bms_carousel_feed": { "82": "number", "101": "number" }, "bms_premium_video": { "82": "number", "101": "number" }, "bms_commerce": { "82": "number", "101": "number" }, "bms_carousel_commerce": { "82": "number", "101": "number" }, "bms_free": { "82": "number", "101": "number" } }, "balance": { "requested": "number", "replacement": "number", "additional": "number", "refund": "number", "sum": "number" }, "point": { "requested": "number", "replacement": "number", "additional": "number", "refund": "number", "sum": "number" }, "app": { "profit": { "sms": "number", "lms": "number", "mms": "number", "ata": "number", "cta": "number", "cti": "number", "nsa": "number", "rcs_sms": "number", "rcs_lms": "number", "rcs_mms": "number", "rcs_tpl": "number", "rcs_itpl": "number", "rcs_ltpl": "number", "fax": "number", "voice": "number", "bms_text": "number", "bms_image": "number", "bms_wide": "number", "bms_wide_item_list": "number", "bms_carousel_feed": "number", "bms_premium_video": "number", "bms_commerce": "number", "bms_carousel_commerce": "number", "bms_free": "number" }, "app": "string", "version": "string" }, "serviceMethod": "string", "sdkVersion": "string", "osPlatform": "string", "log": [ { "createAt": "date", "message": "string", "oldBalance": "number", "newBalance": "number", "oldPoint": "number", "newPoint": "number", "totalPrice": "number" } ], "status": "string", "dateSent": "date", "scheduledDate": "date", "dateCompleted": "date", "isRefunded": "boolean", "flagUpdated": "boolean", "prepaid": "boolean", "strict": "boolean", "masterAccountId": "string", "allowDuplicates": "boolean", "_id": "string", "accountId": "string", "apiVersion": "string", "customFields": { "key": "string" }, "hint": "string", "groupId": "string", "price": { "82": { "sms": "number", "lms": "number", "mms": "number", "ata": "number", "cta": "number", "cti": "number", "nsa": "number", "rcs_sms": "number", "rcs_lms": "number", "rcs_mms": "number", "rcs_tpl": "number", "rcs_itpl": "number", "rcs_ltpl": "number", "fax": "number", "voice": "number", "bms_text": "number", "bms_image": "number", "bms_wide": "number", "bms_wide_item_list": "number", "bms_carousel_feed": "number", "bms_premium_video": "number", "bms_commerce": "number", "bms_carousel_commerce": "number", "bms_free": "number" } }, "dateCreated": "date", "dateUpdated": "date" } }