Message report

For message report integration you use either Polling or Webhook as your primary method.
If some reports go missing with your primary method, fill the gaps with Inquiry.

Integration methods

Use the buttons below to jump to the section for each integration method.

Polling

Fetch (GET)

GET/api/comm/v1/report/polling

Retrieves completed reports in pull mode. Use the returned reportId to acknowledge receipt (DELETE).

Query Parameters

(none)

-

There are no request parameters.

Returns

common

Object

Common response section.

data

Object

Service response section.

Request example

1curl -X GET "https://mars.ibapi.kr/api/comm/v1/report/polling" \
2 -H "Authorization: {ApiKey}" \
3 -H "Accept: application/json"

Response example

1{
2 "common": {
3 "authCode":"A000",
4 "authResult":"Success",
5 "infobankTrId":"header-value-X-Infobank-Tracking-Id"
6 },
7 "data": {
8 "code":"A000",
9 "result":"Success",
10 "data": {
11 "reportId":"REPORT-20260331-0001",
12 "report": [
13 {
14 "msgKey":"SMS20260331-000001",
15 "serviceType":"SMS",
16 "msgType":"SM",
17 "sendTime":"2026-03-31T09:30:00+09:00",
18 "reportTime":"2026-03-31T09:30:11+09:00",
19 "reportType":"0",
20 "reportCode":"10000",
21 "reportText":"Success",
22 "carrier":"10001",
23 "userType":"",
24 "resCnt":"",
25 "ref":"요청 시 입력한 데이터"
26 }
27 ]
28 }
29 }
30}

Acknowledge receipt (DELETE)

DELETE/api/comm/v1/report/polling/{reportId}

Pass the reportId from the pull (GET) response to acknowledge receipt.

Path Parameters

reportId

RequiredString

Report ID received from the pull (GET) response.

Returns

common

Object

Common response section.

data

Object

Service response section.

Request example

1curl -X DELETE "https://mars.ibapi.kr/api/comm/v1/report/polling/REPORT-20260331-0001" \
2 -H "Authorization: {ApiKey}" \
3 -H "Accept: application/json"

Response example

1{
2 "common": {
3 "authCode":"A000",
4 "authResult":"Success",
5 "infobankTrId":"header-value-X-Infobank-Tracking-Id"
6 },
7 "data": {
8 "code":"A000",
9 "result":"Success"
10 }
11}

Webhook

POST{registered Webhook URL}

Reports are pushed to the webhook URL you registered in advance. One request is sent per report, and you must return a response that matches the specification. If no response arrives or it does not match the specification, the delivery is treated as a failure. The timeout is 5 seconds and up to 3 retries are made. Webhook URL registration and firewall configuration are required. Firewall and security protocol

Header

X-IB-Timestamp

RequiredString

Timestamp of when the webhook was sent.

X-IB-Signature

RequiredString

Security signature. Generated with HmacSHA256(secret, X-IB-Timestamp). The secret is managed separately per customer account. If you need the value for verification, ask your sales representative.

Accept

RequiredString

application/json

Content-Type

RequiredString

application/json

Body Parameters

{}JSON

msgKey

RequiredString

Message key.

serviceType

RequiredString

Service type.

msgType

String

Message type.

sendTime

String

Send processing timestamp. (ISO 8601, yyyy-MM-dd'T'HH:mm:ss.SSS)

reportTime

RequiredString

Report received timestamp. (ISO 8601, yyyy-MM-dd'T'HH:mm:ss.SSS)

reportType

RequiredString

Report type.

reportCode

RequiredString

Report code.

reportText

String

Report detail text.

carrier

String

(SMS/LMS/MMS) Mobile carrier code.

userType

String

(Kakao Brand Message) Message send handling type.

resCnt

String

(International message) Number of message segments.

ref

String

Reference field supplied in the request.

Returns

msgKey

RequiredString

You must return the received message key as is. If you send no response or it does not match the specification, the delivery is treated as failed and a retry occurs.

Request example

1curl -X POST "{등록한 Webhook URL}" \
2 -H "Content-Type: application/json" \
3 -H "X-IB-Timestamp: 1743381600000" \
4 -H "X-IB-Signature: {HmacSHA256(secret, X-IB-Timestamp)}" \
5 -d '{
6 "msgKey": "SMS20260331-000001",
7 "serviceType": "SMS",
8 "msgType": "SM",
9 "sendTime": "2026-03-31T09:30:00.000+09:00",
10 "reportTime": "2026-03-31T09:30:11.000+09:00",
11 "reportType": "0",
12 "reportCode": "10000",
13 "reportText": "Success",
14 "carrier": "10001",
15 "userType": "",
16 "resCnt": "",
17 "ref": "요청 시 입력한 데이터"
18}'

Response example

1{
2 "msgKey":"SMS20260331-000001"
3}

Inquiry

GET/api/comm/v1/report/inquiry/{msgKey}

Looks up a single report for a specific message key (msgKey). Reports from up to 30 days ago can be retrieved.

Path Parameters

msgKey

RequiredString

Message key to look up.

Returns

common

Object

Common response section.

data

Object

Service response section.

Request example

1curl -X GET "https://mars.ibapi.kr/api/comm/v1/report/inquiry/SMS20260331-000001" \
2 -H "Authorization: {ApiKey}" \
3 -H "Accept: application/json"

Response example

1{
2 "common": {
3 "authCode":"A000",
4 "authResult":"Success",
5 "infobankTrId":"header-value-X-Infobank-Tracking-Id"
6 },
7 "data": {
8 "code":"A000",
9 "result":"Success",
10 "data": {
11 "report": [
12 {
13 "msgKey":"SMS20260331-000001",
14 "serviceType":"SMS",
15 "msgType":"SM",
16 "sendTime":"2026-03-31T09:30:00+09:00",
17 "reportTime":"2026-03-31T09:30:11+09:00",
18 "reportType":"0",
19 "reportCode":"10000",
20 "reportText":"Success",
21 "carrier":"10001",
22 "userType":"",
23 "resCnt":"",
24 "ref":"요청 시 입력한 데이터"
25 }
26 ]
27 }
28 }
29}