Skip to content

2.8 메시지 리포트

실시간으로 처리가 완료된 메시지의 결과를 전달합니다. 메시지 결과는 한 번만 전달됩니다.

  1. 리포트 요청 결과가 1건이라도 있으면, 즉시 다음 요청을 시작해야 합니다. 없을 경우 잠시 대기 후 재요청해야 합니다. (한 번에 최대 100개 리포트 수신 가능, 배열 형태로 전달됨)
  2. 리포트가 없을 때 무한루프 요청 방지를 위해 최소 10초 간격으로 요청해야 하며, 10초 이내 재요청 시 실패처리됩니다.
  3. 리포트 결과에는 report key가 있으며, 처리 완료 후 이를 리포트 처리 결과 전달 API로 전송해야 합니다. 120초 내 전달되지 않으면 동일 리포트가 다시 내려오며, 클라이언트는 중복 수신 방지 처리를 해야 합니다.
  4. 리포트를 요청하지 않으면 81시간 후 자동 만료됩니다.

GET /msg/v1.2/report HTTP/1.1
NameType필수설명
AuthorizationString사용자 인증 토큰
Content-TypeStringapplication/json

NameType설명
codeString결과 코드
messageString결과 코드 설명
dataObject결과 데이터 정보
data.rptKeyString리포트 키
data.rptCntInteger리포트 개수
data.rptLstArray리포트 목록
data.rptLst[].msgKeyString메시지 고유 키
data.rptLst[].cliKeyString클라이언트 키
data.rptLst[].chString채널
data.rptLst[].resultCodeString발송 결과 코드
data.rptLst[].resultCodeDescString발송 결과 코드 설명
data.rptLst[].fbReasonLstArrayFallback 사유
data.rptLst[].fbReasonLst[].chString채널
data.rptLst[].fbReasonLst[].fbResultCodeStringfallback 결과 코드
data.rptLst[].fbReasonLst[].fbResultDescStringfallback 결과 설명
data.rptLst[].fbReasonLst[].telcoString이통사(*xMS, RCS만 해당) 또는 카카오 딜러사(API Key 설정: 결과 딜러사 정보 제공 Y인 경우)
data.rptLst[].telcoString이통사 (xMS, RCS만 해당)
data.rptLst[].rptDtString결과 수신 일시
data.rptLst[].productCodeString상품 코드

curl -X GET "https://api.msghub.uplus.co.kr/msg/v1.2/report" \
-H "accept: */*" \
-H "Authorization: Bearer {token}"
{
"code": "10000",
"message": "성공",
"data": {
"rptKey": "RPUvazue5K",
"rptCnt": 2,
"rptLst": [
{
"msgKey": "qWAr0xnmOt.6fL0d",
"cliKey": "test001",
"ch": "MMS",
"resultCode": "10000",
"resultCodeDesc": "성공",
"fbReasonLst": [
{
"ch": "RCS",
"fbResultCode": "54002",
"fbResultDesc": "No Rcs Capability",
"telco": "KT"
}
],
"telco": "SKT",
"rptDt": "2025-07-15T16:51:43",
"productCode": "LMS"
},
...
]
}
}

2. 리포트 처리 결과 전달 (Polling 방식)

Section titled “2. 리포트 처리 결과 전달 (Polling 방식)”

요청된 리포트 키를 완료 처리할 때 이 API를 사용합니다.

120초 내 미전달 시, 리포트가 다시 전달되며 클라이언트는 중복 방지를 위한 확인 처리를 해야 합니다.


POST /msg/v1.2/report/result HTTP/1.1
NameType필수설명
AuthorizationString사용자 인증 토큰
Content-TypeStringapplication/json
NameType설명
rptKeyLstArray리포트 키 목록

NameType설명
codeString결과 코드
messageString결과 코드 설명

curl -X POST "https://api.msghub.uplus.co.kr/msg/v1.2/report/result" \
-H "accept: */*" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{"rptKeyLst": ["RPsEOqHAhA","RPsQOqHAhB","RPsEOqHAhC"...]}'
{
"code": "10000",
"message": "성공"
}

처리 완료된 메시지를 고객사의 웹훅 URL로 실시간 전달합니다. 메시지는 단 1회만 전달되며, 실패 시 재시도합니다 (기본 10초, 추후 변경 가능). 리포트는 72시간 보관됩니다.


POST {WEBHOOK_URL}

(고객사에서 Msghub에 등록한 Webhook URL)

NameType설명
Content-TypeStringapplication/json
NameType설명
rptCntInteger리포트 개수 (최대 100개)
rptLstArray리포트 목록
rptLst[].isBiBooleanRCS 양방향 메시지 여부
rptLst[].msgKeyString메시지 고유 키
rptLst[].cliKeyString클라이언트 키
rptLst[].chString채널
rptLst[].resultCodeString발송 결과 코드
rptLst[].resultCodeDescString결과 코드 설명
rptLst[].productCodeString상품 코드
rptLst[].fbReasonLstArrayFallback 사유
rptLst[].fbReasonLst[].chString채널
rptLst[].fbReasonLst[].fbResultCodeStringfallback 결과 코드
rptLst[].fbReasonLst[].fbResultDescStringfallback 결과 설명
rptLst[].fbReasonLst[].telcoString이통사(*xMS, RCS만 해당) 또는 카카오 딜러사(API Key 설정: 결과 딜러사 정보 제공 Y인 경우)
rptLst[].rptDtString결과 수신 일시
rptLst[].rptRegDtString결과 등록 일시
rptLst[].phoneString수신번호

2) 응답 (Response from Client to Msghub)

Section titled “2) 응답 (Response from Client to Msghub)”

Msghub로 성공적인 수신을 알리기 위해 HTTP 200 OK 응답을 보내야 합니다.

HTTPDescription비고
200성공-
204성공응답 혹은 처리 할 리포트가 없음
400실패실패로 전달시 재처리 가능함

3) 수신 예시 (Sample Payload to Webhook)

Section titled “3) 수신 예시 (Sample Payload to Webhook)”
{
"rptCnt": 1,
"rptLst": 2
{
"isBi": false, "msgKey": "lXXYpOIuCd.6cGlYN",
"msgKey": "lAXYpOIuDd.1cGlYD",
"ch": "SMS",001
"resultCode": "10000",
"resultCodeDesc": "성공",
"productCode": "SMS",
"fbReasonLst": [
{
"ch": "RCS",
"fbResultCode": "54002",
"fbResultDesc": "No Rcs Capability",
"telco": "KT"
}
],
"rptDt": "2022-04-19T15:01:40"
"rptDt": "2025-04-19T15:01:40",
"rptRegDt": "2025-04-19T15:01:40",
"phone": "01012341234"
],
...
}

cliKey와 발송일을 기준으로 최대 90일 이내 메시지 상태를 조회합니다.


POST /msg/v1/sent HTTP/1.1
NameType필수설명
AuthorizationString사용자 인증 토큰
Content-TypeStringapplication/json
NameType설명비고
cliKeyLstArray조회할 cliKey 목록최대 10건
NameType필수설명
cliKeyString고객이 부여한 메시지 키
reqDtString발송일자 (YYYY-MM-DD)

NameType설명
codeString결과 코드
messageString설명
data.cliKeyLstArray클라이언트키 목록
data.cliKeyLst[].msgKeyString메시지 고유 키
data.cliKeyLst[].cliKeyString클라이언트 키
data.cliKeyLst[].chString채널
data.cliKeyLst[].statusString상태 (REG, ING, DONE, OVER_DATE, INVALID_KEY)
data.cliKeyLst[].resultCodeString결과 코드
data.cliKeyLst[].resultCodeDescString설명
data.cliKeyLst[].telcoString이통사(*xMS, RCS만 해당) 또는 카카오 딜러사(API Key 설정: 결과 딜러사 정보 제공 Y인 경우)
data.cliKeyLst[].fbReasonLstArrayFallback 사유
data.cliKeyLst[].fbReasonLst[].chString채널
data.cliKeyLst[].fbReasonLst[].fbResultCodeStringfallback 결과 코드
data.cliKeyLst[].fbReasonLst[].fbResultDescStringfallback 결과 설명
data.cliKeyLst[].fbReasonLst[].telcoString이통사(*xMS, RCS만 해당) 또는 카카오 딜러사(API Key 설정: 결과 딜러사 정보 제공 Y인 경우)
data.cliKeyLst[].rptDtString결과 수신 일시
data.cliKeyLst[].productCodeString상품 코드
curl -X POST "https://api.msghub.uplus.co.kr/msg/v1/sent" \
-H "accept: */*" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {token}" \
-d '{
"cliKeyLst": [
{
"cliKey": "cliKey",
"reqDt": "2025-07-02"
}
]
}'
{
{
"code": "10000",
"message": "성공",
"data": {
"cliKeyLst": [
{
"msgKey": "lABCCdzcmw.1fLTAb",
"cliKey": "cliKey",
"ch": "SMS",
"status": "DONE",
"resultCode": "10000",
"resultCodeDesc": "성공",
"telco": "LGU",
"fbReasonLst": [
{
"ch": "RCS",
"fbResultCode": "54002",
"fbResultDesc": "No Rcs Capability",
"telco": "KT"
}
],
"rptDt": "2025-07-02T13:46:03",
"productCode": "SMS"
},
...
]
}
}

코드설명
REG접수완료
ING처리중
DONE완료
OVER_DATE조회기간 초과 (90일)
INVALID_KEY키 오류