---
title: "문자 메시지 발송"
method: POST
path: "/v2/messages/sms"
tags: ["SMS"]
---

# 문자 메시지 발송

`POST /v2/messages/sms`

SMS, LMS, MMS 타입의 문자 메시지를 발송합니다. 단문(SMS), 장문(LMS), 그림문자(MMS)를 지원하며, 예약 발송, 대용량 발송, 주소록 기반으로 발송할 수 있습니다. 발송 후 그룹 ID를 반환하여 발송 이력 추적을 지원합니다.

## Request body

- SendMessageRequestDto
  - `type` 'SMS' | 'LMS' | 'MMS', required — 발송된 메시지의 타입입니다. SMS(단문), LMS(장문), MMS(그림문자) 중 하나의 값을 가집니다.
  - `from` string, required — 메시지를 발송할 발신번호입니다. 센드온에 사전 등록되고 승인된 발신번호만 사용할 수 있으며, 하이픈(-) 없이 숫자만 입력해주세요.
  - `to` union[], required — 메시지를 받을 수신자 정보입니다. 전화번호 문자열 배열, 수신자 객체 배열, 또는 CSV 파일 정보를 사용할 수 있습니다.
    - union
      - Receiver
        - `phone` string, required — 수신 번호
        - `name` string, required — 멤버 이름
      - CsvInfo
        - `bucket` string, required — S3 Bucket Name
        - `key` string, required — S3 Object Key
      - string
  - `title` string — LMS나 MMS 메시지의 제목입니다. SMS는 제목이 없으므로 생략 가능하지만, LMS와 MMS는 필수로 입력해야 합니다.
  - `message` string, required — 실제 전송될 메시지의 본문 내용입니다. SMS는 90바이트(한글 45자), LMS는 2000바이트(한글 1000자)까지 입력할 수 있습니다.
  - `images` string[] — MMS 메시지에 첨부할 이미지 파일의 ID 목록입니다. 사전에 업로드된 이미지의 ID를 입력하며, 최대 3개까지 첨부할 수 있습니다.
  - `userParameters` UserParameters
    - `replaces` Replace[] — 메시지 개인화를 위한 문자열 치환 설정 목록입니다. 수신자별로 다른 내용을 보낼 때 사용하며, 현재는 최대 1개까지만 설정할 수 있습니다.
      - `src` string, required — 메시지 내용에서 개인화할 변수명입니다. #{변수명} 형태로 입력하며, 실제 발송 시 개별 수신자 정보로 치환됩니다.
      - `dst` 'CONTACTS_MEMBER_NAME', required — 치환 변수가 어떤 데이터로 대체될지 지정합니다. 현재는 주소록 멤버 이름으로 치환하는 옵션만 지원합니다.
  - `contacts` Contact[] — 주소록에서 선택한 연락처 그룹 또는 특정 멤버들입니다. to 필드와 함께 사용할 수 없으며, 둘 중 하나만 선택해야 합니다.
    - `groupId` string — 주소록 그룹ID
    - `memberId` string[] — 주소록 그룹의 멤버 ID
  - `reservation` Reservation
    - `datetime` string, date-time, required — 예약 발송 시각
    - `repeat` Repeat
      - `limit` number — 한 번에 발송할 최대 수신자 수입니다. 대량 발송 시 서버 부하를 줄이고 안정적인 발송을 위해 사용합니다.
      - `unit` 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' — 분할 발송 간격의 시간 단위입니다. 발송량을 조절하여 안정적인 전송을 보장합니다.
      - `interval` number — 분할 발송 간의 시간 간격입니다. unit과 함께 사용하여 "5분마다", "1시간마다" 등을 설정할 수 있습니다.
      - `denyNightTime` boolean — 야간 시간대(오후 9시~오전 8시) 발송 금지 여부입니다. true로 설정하면 야간 시간에는 발송하지 않습니다.
  - `isAd` boolean — 광고성 메시지 발송 여부입니다. 광고성 메시지는 관련 법규에 따라 수신자의 사전 동의가 필요합니다. 해당 값을 true로 설정 시 광고 표기, 080 수신거부번호 자동입력은 추후 지원 예정입니다.
  - `useCredit` boolean — 보유한 크레딧을 우선적으로 사용할지 여부입니다. true로 설정하면 포인트보다 크레딧을 먼저 차감합니다.

## Response `200`

문자 메시지 발송 요청이 성공적으로 처리되었습니다. 그룹 ID와 발송 상태 정보가 반환됩니다.

- SendMessageResponseDto
  - `code` number, required — HTTP 상태 코드입니다. 200이면 성공, 400대는 클라이언트 오류, 500대는 서버 오류를 나타냅니다.
  - `message` string, required — API 호출 결과에 대한 사람이 읽을 수 있는 메시지입니다. 성공 시 "성공", 실패 시 구체적인 오류 사유가 포함됩니다.
  - `data` SendMessage, required
    - `groupId` string, required — 메시지 발송 요청이 성공적으로 처리되어 생성된 그룹 ID입니다.

---

[API](https://skmtc.net/sendon/apis/sendon-api.md) · [All operations](https://skmtc.net/sendon/apis/sendon-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sendon/sendon-api/versions/525dedc81a05/schema)
