API

그룹 메시지

작성일 2026.03.05 | 수정일 2026.03.05

SOLAPI에서 메시지 그룹은 하나 이상의 메시지 발송 요청을 논리적으로 묶어 관리하는 단위입니다.

개발자가 여러 메시지의 발송을 요청하면, SOLAPI 시스템은 이를 하나의 그룹으로 묶어 처리합니다. 메시지가 그룹에 추가되는 과정과 실제 통신사 또는 메시지 서비스사로 발송되는 과정은 완전히 분리되어 독립적으로 동작합니다.

이러한 구조 덕분에 대량 발송 시에도 안정적인 처리가 가능하며, 각 메시지는 고유한 메시지 ID를 통해 개별적으로 상태를 추적하고 관리할 수 있습니다.

공통 사항

인증

항목
인증API Key(HMAC) / Bearer Token
읽기 권한message:read
쓰기 권한message:write

그룹 상태

statusDescription
PENDING대기 중 (메시지 추가 가능)
SENDING발송 중
PROCESSING처리 중
SCHEDULED예약 대기 중
COMPLETE발송 완료
FAILED발송 실패
DELETED삭제됨
SYSTEM-ERROR시스템 오류

Response

NameTypeRequiredDescription
groupIdstring*그룹 고유 아이디. G4V로 시작하는 32자 문자열
accountIdstring*그룹을 생성한 계정의 아이디
apiVersionstring*API 버전
serviceMethodstring*서비스 방식. MT(일반 발송) 또는 AUTH(본인인증용 발송)
statusstring*그룹의 현재 상태. PENDING, SENDING, PROCESSING, SCHEDULED, COMPLETE, FAILED, DELETED, SYSTEM-ERROR 중 하나
sdkVersionstring|null*사용 중인 SDK의 버전 정보
osPlatformstring|null*호출 환경의 OS 플랫폼 정보
strictboolean*엄격 모드 여부
prepaidboolean*선불 결제 여부
allowDuplicatesboolean*같은 수신번호로 중복 발송 허용 여부
isRefundedboolean*환불 처리 여부
flagUpdatedboolean*그룹 정보 갱신 플래그
customFieldsobject*사용자 정의 메타 데이터
hintobject|null*발송 시 참고할 힌트 정보
masterAccountIdstring|null*서브 계정으로 발송한 경우, 마스터 계정의 아이디
dateSentstring|null*실제 발송이 시작된 일시 (ISO 8601)
scheduledDatestring|null*예약 발송 일시 (ISO 8601)
dateCompletedstring|null*발송이 완료된 일시 (ISO 8601)
dateCreatedstring*그룹이 생성된 일시 (ISO 8601)
dateUpdatedstring*그룹 정보가 마지막으로 갱신된 일시 (ISO 8601)
countobject*메시지 건수 통계
totalnumber*그룹에 등록된 전체 메시지 건수
sentTotalnumber*이통사로 실제 발송 요청된 건수
sentFailednumber*발송 후 실패로 확인된 건수
sentSuccessnumber*발송 후 성공으로 확인된 건수
sentPendingnumber*발송 후 아직 결과를 수신하지 못한 건수
sentReplacementnumber*대체 발송된 건수
refundnumber*환불 처리된 건수
registeredFailednumber*등록 시 유효성 검증에 실패한 건수
registeredSuccessnumber*정상 등록된 건수
countForChargeobject*메시지 타입별, 국가별 과금 건수. 각 타입 하위에 국가코드를 키로 건수 기록. 예: { "sms": { "82": 50 } }
balanceobject*잔액(캐시) 차감 내역
requestednumber*발송 요청 시 차감된 금액
replacementnumber*대체 발송에 사용된 금액
additionalnumber*추가 과금 금액
refundnumber*환불된 금액
sumnumber*총 차감 금액 합계
pointobject*포인트 차감 내역
requestednumber*발송 요청 시 차감된 포인트
replacementnumber*대체 발송에 사용된 포인트
additionalnumber*추가 과금 포인트
refundnumber*환불된 포인트
sumnumber*총 차감 포인트 합계
appobject*앱 연동 정보
appIdstring|null*솔라피 앱스토어에 등록된 앱 아이디
versionstring|null*앱 버전
profitobject*메시지 타입별 앱 수익. sms, lms, mms, ata, cta, cti, nsa, rcs_sms, rcs_lms, rcs_mms, rcs_tpl, rcs_itpl, rcs_ltpl, fax, voice 각각 number
logarray*그룹의 주요 이벤트 이력
createAtstring*이벤트 발생 일시 (ISO 8601)
messagestring*이벤트 내용
priceobject*국가 코드별, 메시지 타입별 단가 정보. 예: { "82": { "sms": 20 } }

Structures

{ "groupId": "G4V20240525163506ABCDEFGHIJKLMNO", "accountId": "24010100001234", "apiVersion": "4", "serviceMethod": "MT", "status": "PENDING", "sdkVersion": "node/5.0.0", "osPlatform": "linux", "strict": false, "prepaid": true, "allowDuplicates": false, "isRefunded": false, "flagUpdated": false, "customFields": { "myKey": "myValue" }, "hint": { "key": "value" }, "masterAccountId": null, "workspaceId": null, "dateSent": null, "scheduledDate": null, "dateCompleted": null, "dateCreated": "2024-05-25T07:35:06.000Z", "dateUpdated": "2024-05-25T07:35:06.000Z", "count": { "total": 100, "sentTotal": 100, "sentFailed": 2, "sentSuccess": 98, "sentPending": 0, "sentReplacement": 0, "refund": 0, "registeredFailed": 0, "registeredSuccess": 100 }, "countForCharge": { "sms": { "82": 50 }, "lms": { "82": 30 }, "mms": { "82": 20 }, "ata": { "82": 0 }, "cta": { "82": 0 }, "cti": { "82": 0 }, "nsa": { "82": 0 }, "rcs_sms": { "82": 0 }, "rcs_lms": { "82": 0 }, "rcs_mms": { "82": 0 }, "rcs_tpl": { "82": 0 }, "rcs_itpl": { "82": 0 }, "rcs_ltpl": { "82": 0 }, "fax": { "82": 0 }, "voice": { "82": 0 } }, "balance": { "requested": 2000, "replacement": 0, "additional": 0, "refund": 0, "sum": 2000 }, "point": { "requested": 0, "replacement": 0, "additional": 0, "refund": 0, "sum": 0 }, "app": { "appId": "myAppId", "version": "1.0.0", "profit": { "sms": 0, "lms": 0, "mms": 0, "ata": 0, "cta": 0, "cti": 0, "nsa": 0, "rcs_sms": 0, "rcs_lms": 0, "rcs_mms": 0, "rcs_tpl": 0, "rcs_itpl": 0, "rcs_ltpl": 0, "fax": 0, "voice": 0 } }, "log": [ { "createAt": "2024-05-25T07:35:06.000Z", "message": "메시지 그룹이 생성되었습니다." } ], "price": { "82": { "sms": 20, "lms": 50, "mms": 100 } } }