Message

Notification > Notification Hub > API v1.0 User Guide > Message

Free-form message sending requests

Request that a message be sent by entering the message content in the request body.

In order to send messages to each message channel, the sender information for each message channel must be registered. You can register the sender information in the Notification Hub console > Sender Information tab. For a detailed description of outgoing information for message channels, see Notification > Notification Hub > Service Policy & Precondition.

POST /message/v1.0/SMS/free-form-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y App Key
X-NHN-Authorization Header String Y Access Token
messagePurpose Path String Y Message purpose.
[AD, AUTH, NORMAL]

The additional description that will be added under the request parameter.

Request Body

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderPhoneNumber" : "01012341234"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title" : "Notice for Holiday Operating Hours",
    "body" : "Hello. Your product arrived today. Please visit us^^",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
sender Object N
sender.senderPhoneNumber String Y Sender number
recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. Consist of key (Key, placeholder) and value (Value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
content Object N
content.messageType String Y Sent message type (SMS, LMS, MMS)
[SMS, LMS, MMS]
content.title String N Message title
content.body String Y Message body
content.attachmentIds Array N Up to 3 attachment IDs
  • The sender and content fields have different formats depending on the message channel.
  • The values ​​you can enter in the recipients[].contact.contactType and recipients[].contact.contact fields vary depending on the message channel.
  • For scheduled delivery, set scheduledDateTime. You can cancel a scheduled delivery request before it begins. You can do so by calling the Cancel Request API or by going to Notification Hub Console > Delivery Result.
  • For approved delivery, set confirmBeforeSend to true. After approval, the sender's message will be sent once you approve it in Notification Hub Console > Delivery Result.
  • You cannot set both scheduled and approved delivery at the same time.

Sender Fields by Message Channel

Message Channel Field Description
SMS sender.senderPhoneNumber Sender Number
RCS sender.brandId Brand ID
RCS sender.chatbotId Chatbot ID
EMAIL sender.senderMailAddress Sender Email Address
ALIMTALK sender.senderKey Sender Key
ALIMTALK sender.senderProfileType Sender Profile Type
GROUP, NORMAL
  • AlimTalk requires a senderKey and senderProfileType to be entered.
  • AlimTalk must be sent with a template. Free-form message sending is not supported.
  • There are two sender profile types: GROUP and NORMAL. GROUPis a group sender profile and NORMALis a normal sender profile.

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

An additional description to be added to the response.

Request Example

IntelliJ HTTP
### Free-form message sending requests - SMS

POST {{endpoint}}/message/v1.0/SMS/free-form-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderPhoneNumber" : "01012341234"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title" : "Notice for Holiday Operating Hours",
    "body" : "Hello. Your product arrived today. Please visit us^^",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/SMS/free-form-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderPhoneNumber" : "01012341234"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title" : "Notice for Holiday Operating Hours",
    "body" : "Hello. Your product arrived today. Please visit us^^",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}'

Request to Send a Free-Form Message - EMAIL

Request a free-form message to be sent to EMAIL.

Request

POST /message/v1.0/EMAIL/free-form-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderMailAddress" : "abcde@nhn.com"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "EMAIL_ADDRESS",
      "contact" : "recipient@example.com",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "title" : "[NHN Cloud Email][##env##] Monitoring notification",
    "body" : "Hello. Your product arrived today.",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
sender Object N
sender.senderMailAddress String Y Sender email address
recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. Consist of key (Key, placeholder) and value (Value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
content Object N
content.title String Y Template Email Title
content.body String Y Template Email Body
content.attachmentIds Array N Template Attachment ID

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Request to Send a Free-Form Message - EMAIL

POST {{endpoint}}/message/v1.0/EMAIL/free-form-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderMailAddress" : "abcde@nhn.com"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "EMAIL_ADDRESS",
      "contact" : "recipient@example.com",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "title" : "[NHN Cloud Email][##env##] Monitoring notification",
    "body" : "Hello. Your product arrived today.",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/EMAIL/free-form-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "senderMailAddress" : "abcde@nhn.com"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "EMAIL_ADDRESS",
      "contact" : "recipient@example.com",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "title" : "[NHN Cloud Email][##env##] Monitoring notification",
    "body" : "Hello. Your product arrived today.",
    "attachmentIds" : [ "YaX2DA4Weab2", "YaX2DA4Weab1" ]
  }
}'

Request to Send a Free-Form Message - RCS

Request to send a free-form message to RCS.

Request

POST /message/v1.0/RCS/free-form-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "brandId" : "AR.lj0eOjEI7Y",
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title": "Notice of Holiday Operating Hours",
    "body": "Hi, your product arrived today. Please visit us^^",
    "smsType" : "STANDALONE",
    "lmsType" : "HORIZONTAL",
    "mmsType" : "HORIZONTAL",
    "messagebaseId" : "44o4SUjpqnjDuUcH+uHvPg==",
    "unsubscribePhoneNumber" : "08012341234",
    "cards" : [ {
      "title" : "Title",
      "description" : "Body",
      "attachmentId" : "20240814125609swLmoZTsGr0",
      "mTitle" : "Main Title",
      "mTitleMedia" : "LT-messagebase.common-2k8ydI",
      "title1" : "Title 1",
      "title2" : "Title 2",
      "title3" : "Title 3",
      "description1" : "Body 1",
      "description2" : "Body 2",
      "description3" : "Body 3",
      "buttons" : [ {
        "buttonType" : "CALENDAR",
        "buttonJson" : {
          "action" : {
            "displayText" : "Register schedule",
            "calendarAction" : {
              "createCalendarEvent" : {
                "startTime" : "2024-01-01T00:00:00.000+09:00",
                "endTime" : "2024-01-01T00:00:00.000+09:00",
                "title" : "Schedule title",
                "description" : "Schedule description"
              }
            }
          }
        }
      } ]
    } ],
    "buttons" : [ {
      "buttonType" : "CALENDAR",
      "buttonJson" : {
        "action" : {
          "displayText" : "Register schedule",
          "calendarAction" : {
            "createCalendarEvent" : {
              "startTime" : "2024-01-01T00:00:00.000+09:00",
              "endTime" : "2024-01-01T00:00:00.000+09:00",
              "title" : "Schedule title",
              "description" : "Schedule description"
            }
          }
        }
      }
    } ]
  },
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
sender Object N
sender.brandId String Y Brand ID
sender.chatbotId String Y Chatbot ID
recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. Consist of key (Key, placeholder) and value (Value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
content Object N
content.messageType String N RCS message type
[SMS, LMS, MMS, RBC_TEMPLATE]
content.title String N (Use deprecated, content.cards[].title) Message title
content.body String N (Use deprecated, content.cards[].description) Message body
content.smsType String N SMS type
[STANDALONE, UNIFIED_STANDALONE]
content.lmsType String N LMS type
[STANDALONE, FORMAT_BASIC, FORMAT_TITLE_HIGHLIGHT, FORMAT_PARAGRAPH, UNIFIED_STANDALONE]
content.mmsType String N MMS type (required for MMS transmission)
[HORIZONTAL, VERTICAL, CAROUSEL_MEDIUM, CAROUSEL_SMALL, UNIFIED_HORIZONTAL, UNIFIED_VERTICAL]
content.messagebaseId String N RCS Biz Center Template ID
content.unsubscribePhoneNumber String N Unsubscribe Number (required for advertisements)
content.cards Array N RCS Card
content.cards[].title String N Title
content.cards[].description String N Body
content.cards[].attachmentId String N Attachment File ID
※ If a GIF image is attached to an Integrated MMS Card, it cannot be received on iOS devices.
content.cards[].mTitle String N Main Title
content.cards[].mTitleMedia String N Main Title Logo File ID
content.cards[].title1 String N Title 1
content.cards[].title2 String N Title 2
content.cards[].title3 String N Title 3
content.cards[].description1 String N Body 1
content.cards[].description2 String N Body 2
content.cards[].description3 String N Body 3
content.cards[].buttons Array N Button
content.cards[].buttons[].buttonType String N Button type
COMPOSE (Open chat room), CLIPBOARD (Copy), DIALER (Make a call), MAP_SHOW (Show map), MAP_QUERY (Search map), MAP_SHARE (Share current location), URL (Connect URL), CALENDAR (Add to calendar)

※ If a CLIPBOARD (Copy) button is used in an integrated message type, it cannot be received on iOS devices.

[COMPOSE, CLIPBOARD, DIALER, MAP_SHOW, MAP_QUERY, MAP_SHARE, URL, CALENDAR]
content.cards[].buttons[].buttonJson Object N Button JSON, check format for each button type
content.buttons Array N (Use deprecated, content.cards[].buttons) RCS button list
content.buttons[].buttonType String N An Action object with the same name as the buttonType value is included as buttonJson.
Button Types: Open Chat Room (COMPOSE), Copy (CLIPBOARD), Make a Call (DIALER), Show Map (MAP_SHOW), Search Map (MAP_QUERY), Share Current Location (MAP_SHARE), Connect to URL (URL), Register Schedule (CALENDAR)

[COMPOSE, CLIPBOARD, DIALER, MAP_SHOW, MAP_QUERY, MAP_SHARE, URL, CALENDAR]
content.buttons[].buttonJson Object N
content.buttons[].buttonJson.action Object N Button Action
options Object N
options.expiryOption Integer N The time the carrier attempts to send to the device (1: 1 day, 2: 40 seconds, 3: 3 minutes, 4: 1 hour)
Default: 1
options.groupId String N Group ID for RCS Biz Center statistics integration

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Request to a Send Free-Form Message - RCS

POST {{endpoint}}/message/v1.0/RCS/free-form-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "brandId" : "AR.lj0eOjEI7Y",
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title" : "Notice for Holiday Operating Hours",
    "body" : "Hello. Your product arrived today. Please visit us^^",
    "smsType" : "STANDALONE",
    "lmsType" : "HORIZONTAL",
    "mmsType" : "HORIZONTAL",
    "messagebaseId" : "44o4SUjpqnjDuUcH+uHvPg==",
    "unsubscribePhoneNumber" : "08012341234",
    "cards" : [ {
      "title" : "Title",
      "description" : "Body",
      "attachmentId" : "20240814125609swLmoZTsGr0",
      "mTitle" : "Main title",
      "mTitleMedia" : "LT-messagebase.common-2k8ydI",
      "title1" : "Title 1",
      "title2" : "Title 2",
      "title3" : "Title 3",
      "description1" : "Body 1",
      "description2" : "Body 2",
      "description3" : "Body 3",
      "buttons" : [ {
        "buttonType" : "CALENDAR",
        "buttonJson" : {
          "action" : {
            "displayText" : "Register schedule",
            "calendarAction" : {
              "createCalendarEvent" : {
                "startTime" : "2024-01-01T00:00:00.000+09:00",
                "endTime" : "2024-01-01T00:00:00.000+09:00",
                "title" : "Schedule title",
                "description" : "Schedule description"
              }
            }
          }
        }
      } ]
    } ],
    "buttons" : [ {
      "buttonType" : "CALENDAR",
      "buttonJson" : {
        "action" : {
          "displayText" : "Register schedule",
          "calendarAction" : {
            "createCalendarEvent" : {
              "startTime" : "2024-01-01T00:00:00.000+09:00",
              "endTime" : "2024-01-01T00:00:00.000+09:00",
              "title" : "Schedule title",
              "description" : "Schedule description"
            }
          }
        }
      }
    } ]
  },
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/RCS/free-form-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "sender" : {
    "brandId" : "AR.lj0eOjEI7Y",
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "content" : {
    "messageType" : "SMS",
    "title" : "Notice for Holiday Operating Hours",
    "body" : "Hello. Your product arrived today. Please visit us^^",
    "smsType" : "STANDALONE",
    "lmsType" : "HORIZONTAL",
    "mmsType" : "HORIZONTAL",
    "messagebaseId" : "44o4SUjpqnjDuUcH+uHvPg==",
    "unsubscribePhoneNumber" : "08012341234",
    "cards" : [ {
      "title" : "Title",
      "description" : "Body",
      "attachmentId" : "20240814125609swLmoZTsGr0",
      "mTitle" : "Main title",
      "mTitleMedia" : "LT-messagebase.common-2k8ydI",
      "title1" : "Title 1",
      "title2" : "Title 2",
      "title3" : "Title 3",
      "description1" : "Body 1",
      "description2" : "Body 2",
      "description3" : "Body 3",
      "buttons" : [ {
        "buttonType" : "CALENDAR",
        "buttonJson" : {
          "action" : {
            "displayText" : "Register schedule",
            "calendarAction" : {
              "createCalendarEvent" : {
                "startTime" : "2024-01-01T00:00:00.000+09:00",
                "endTime" : "2024-01-01T00:00:00.000+09:00",
                "title" : "Schedule title",
                "description" : "Schedule description"
              }
            }
          }
        }
      } ]
    } ],
    "buttons" : [ {
      "buttonType" : "CALENDAR",
      "buttonJson" : {
        "action" : {
          "displayText" : "Register schedule",
          "calendarAction" : {
            "createCalendarEvent" : {
              "startTime" : "2024-01-01T00:00:00.000+09:00",
              "endTime" : "2024-01-01T00:00:00.000+09:00",
              "title" : "Schedule title",
              "description" : "Schedule description"
            }
          }
        }
      }
    } ]
  },
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}'

Request to Send a Free-Form Message - PUSH

Request to send a free-form message for PUSH.

Request

POST /message/v1.0/PUSH/free-form-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "TOKEN_FCM",
      "contact" : "TOKEN_FCM",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "unsubscribePhoneNumber" : "Main Number",
    "unsubscribeGuide" : "Menu > Settings",
    "title" : "Title",
    "body" : "Content",
    "richMessage" : {
      "buttons" : [ {
        "name" : "Button Name",
        "submitName" : "Send button name",
        "buttonType" : "Button Type, REPLY, DEEP_LINK, OPEN_APP, OPEN_URL, DISMISS",
        "link" : "When you press the button, the link is connected",
        "hint" : "Hint for button"
      } ],
      "media" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "androidMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "iosMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "largeIcon" : {
        "sourceType" : "Location of large icon, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE"
      },
      "group" : {
        "key" : "Group key, feature to group multiple messages, supported only on Android",
        "description" : "Description for group"
      }
    },
    "style" : {
      "useHtmlStyle" : true
    },
    "customKey" : "customValue"
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. Consist of key (Key, placeholder) and value (Value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
content Object N Push message content

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Request to Send a Free-Form Message - PUSH

POST {{endpoint}}/message/v1.0/PUSH/free-form-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "TOKEN_FCM",
      "contact" : "TOKEN_FCM",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "unsubscribePhoneNumber" : "Main Number",
    "unsubscribeGuide" : "Menu > Settings",
    "title" : "Title",
    "body" : "Content",
    "richMessage" : {
      "buttons" : [ {
        "name" : "Button Name",
        "submitName" : "Send button name",
        "buttonType" : "Button Type, REPLY, DEEP_LINK, OPEN_APP, OPEN_URL, DISMISS",
        "link" : "When you press the button, the link is connected",
        "hint" : "Hint for button"
      } ],
      "media" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "androidMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "iosMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "largeIcon" : {
        "sourceType" : "Location of large icon, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE"
      },
      "group" : {
        "key" : "Group key, feature to group multiple messages, supported only on Android",
        "description" : "Description for group"
      }
    },
    "style" : {
      "useHtmlStyle" : true
    },
    "customKey" : "customValue"
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/PUSH/free-form-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "TOKEN_FCM",
      "contact" : "TOKEN_FCM",
      "clientReference" : "1234:abcd:011-asd"
    } ]
  } ],
  "id" : "alpha123",
  "content" : {
    "unsubscribePhoneNumber" : "Main Number",
    "unsubscribeGuide" : "Menu > Settings",
    "title" : "Title",
    "body" : "Content",
    "richMessage" : {
      "buttons" : [ {
        "name" : "Button Name",
        "submitName" : "Send button name",
        "buttonType" : "Button Type, REPLY, DEEP_LINK, OPEN_APP, OPEN_URL, DISMISS",
        "link" : "When you press the button, the link is connected",
        "hint" : "Hint for button"
      } ],
      "media" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "androidMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "iosMedia" : {
        "sourceType" : "Media location, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE",
        "mediaType" : "Media type, IMAGE, GIF, VEDIO, AUDIO. Only IMAGE supported in Android",
        "extension" : "Media file extension, jpg, png",
        "expandable" : true
      },
      "largeIcon" : {
        "sourceType" : "Location of large icon, REMOTE, LOCAL",
        "source" : "Address of where the media is located, URL, LOCAL_RESOURCE"
      },
      "group" : {
        "key" : "Group key, feature to group multiple messages, supported only on Android",
        "description" : "Description for group"
      }
    },
    "style" : {
      "useHtmlStyle" : true
    },
    "customKey" : "customValue"
  }
}'

Request Template Message Sending

Send a message using a registered template.
If no template is registered, register a template first and then send the message.

The recipient settings must be set to one of the following: Single Recipient, Bulk Recipient, or Group Query.
* Single Recipient (recipient)
* Bulk/Group Recipient (id)

For scheduled sending, set 'scheduledDateTime'.
For confirmation-based sending, set 'confirmBeforeSend' to true.

Request

POST /message/v1.0/{messageChannel}/template-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messageChannel Path String Y Message channel.
[SMS, RCS, ALIMTALK, EMAIL, PUSH]
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}
Path Type Required Description
statsKeyId String N Statistics key ID
templateId String N Template ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. It consists of a pair of key (Key, placeholder) and value (Value).

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. It consists of a pair of keys (key, placeholder) and values ​​(value).

You cannot specify template parameters for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated when bulk recipient list and file upload are successful

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Request to Send a Template Message

POST {{endpoint}}/message/v1.0/{{messageChannel}}/template-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}
cURL
curl -X POST "${endpoint}/message/v1.0/${messageChannel}/template-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}'

Send AlimTalk Template Message

Sends a message using a registered template.
If no template has been registered, register a template first and then send.

You must select one of the following recipients: Single Recipient, Bulk Recipient, or Group Query.
* Single Recipient (recipient)
* Bulk/Group Recipient (id)

For scheduled delivery, set 'scheduledDateTime'.
For confirmation-based delivery, set 'confirmBeforeSend' to true.

Request

POST /message/v1.0/ALIMTALK/template-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "sender" : {
    "senderKey" : "3f8a6b1c5d9e2f7a0b4c8d3e6f1a9b2c5d7e0f4a8b3c"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}
Path Type Required Description
statsKeyId String N Statistics key ID
sender Object N
sender.senderKey String Y Sender profile sender key
templateId String N Template ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. It consists of a pair of key (Key, placeholder) and value (Value).

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameter. It consists of a pair of key (key, placeholder) and value (value).

You cannot specify template parameters for each recipient in group sending.

Template parameters set for each recipient take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

요청 예시

IntelliJ HTTP
### Send an AlimTalk Template Message

POST {{endpoint}}/message/v1.0/ALIMTALK/template-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "sender" : {
    "senderKey" : "3f8a6b1c5d9e2f7a0b4c8d3e6f1a9b2c5d7e0f4a8b3c"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}
cURL
curl -X POST "${endpoint}/message/v1.0/ALIMTALK/template-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "sender" : {
    "senderKey" : "3f8a6b1c5d9e2f7a0b4c8d3e6f1a9b2c5d7e0f4a8b3c"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}'

Send RCS Template Message

Sends a message using a registered template.
If no template is registered, register a template first and then send.

The recipient settings must be set to one of the following: Single Recipient, Bulk Recipient, or Group Query.
* Single Recipient (recipient)
* Bulk/Group Recipient (id)

For scheduled sending, set 'scheduledDateTime'.
For confirmation-based sending, set 'confirmBeforeSend' to true.

Request

POST /message/v1.0/RCS/template-messages/{messagePurpose}

Request Parameter

Name Category Type Required Description
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "sender" : {
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "content" : {
    "unsubscribePhoneNumber" : "08012341234"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
sender Object N
sender.chatbotId String N Chatbot ID
content Object N
content.unsubscribePhoneNumber String N Unsubscribe phone number
templateId String N Template ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. Consists of key (key, placeholder) and value (value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

recipients Array N
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. They consist of key (placeholder) and value (value) pairs.

You cannot specify template parameters for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
options Object N
options.expiryOption Integer N Time the carrier attempts to send to the device (1: 1 day, 2: 40 seconds, 3: 3 minutes, 4: 1 hour)
Default: 1
options.groupId String N Group ID for RCS Biz Center statistics integration

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Send RCS Template Message

POST {{endpoint}}/message/v1.0/RCS/template-messages/{{messagePurpose}}

{
  "statsKeyId" : "aA123456",
  "sender" : {
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "content" : {
    "unsubscribePhoneNumber" : "08012341234"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/RCS/template-messages/${messagePurpose}" \
-d '{
  "statsKeyId" : "aA123456",
  "sender" : {
    "chatbotId" : "44o4SUjpqnjDuUcH+uHvPg=="
  },
  "content" : {
    "unsubscribePhoneNumber" : "08012341234"
  },
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "options" : {
    "expiryOption" : 1,
    "groupId" : "20240814125609swLmoZTsGr0"
  }
}'

Send SMS Template Message

Sends a message using the registered template.
If no template has been registered, register a template first and then send.

The recipient settings must be set to either a single recipient, a bulk recipient, or a group query.
* Single recipient (recipient)
* Bulk/group recipient (id)

For scheduled sending, set 'scheduledDateTime'.
For confirmation-based sending, set 'confirmBeforeSend' to true.

When sending an MMS template with an image layout, keep the following in mind: * Required template parameters: cardNumber and scratchNumber must be included. * cardNumber: Used to generate a barcode and must be a 16-digit number. * scratchNumber: No restrictions. * Image Layout Override: You can override the image layout set in the template by including content.imageLayoutId or content.imageLayoutName in the request body. * You must use only one of content.imageLayoutId and content.imageLayoutName. * If neither field is included, the default image layout associated with the template will be used.

Request

POST /message/v1.0/SMS/template-messages/{messagePurpose}

Request Parameter

Name Category Type Required Description
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "content" : {
    "imageLayoutId" : "aA123456",
    "imageLayoutName" : "2025-promotion-layout"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
}
Path Type Required Description
statsKeyId String N Statistics key ID
templateId String N Template ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. Consist of key (placeholder) and value (value) pairs.

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

content Object N
content.imageLayoutName String N Image layout name
recipients Array N
recipients[].contacts Array Y
recipients[].templateParameters Object N Template parameters. They consist of key (key, placeholder) and value (value) pairs.

You cannot specify template parameters for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Send a SMS Template Message

POST {{endpoint}}/message/v1.0/SMS/template-messages/{{messagePurpose}}

{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "content" : {
    "imageLayoutId" : "aA123456",
    "imageLayoutName" : "2025-promotion-layout"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123"
}
cURL
curl -X POST "${endpoint}/message/v1.0/SMS/template-messages/${messagePurpose}" \
-d '{
  "statsKeyId" : "aA123456",
  "templateId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "content" : {
    "imageLayoutId" : "aA123456",
    "imageLayoutName" : "2025-promotion-layout"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
}'

Send Flow Message

Send a message using a registered flow.
If you haven't registered a flow, you must register one and send it.

The recipient settings must be set to either a single recipient, bulk recipient, or group query.
* Single recipient (recipient)
* Bulk/group recipient (id)

For scheduled delivery, set 'scheduledDateTime'.
For confirmation-based delivery, set 'confirmBeforeSend' to true.

Request

POST /message/v1.0/flow-messages/{messagePurpose}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "flowId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "flow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "nextSteps" : [ {
        "messageChannel" : "RCS"
      } ]
    } ]
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
flowId String N Flow ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. It consists of a pair of key (Key, placeholder) and value (Value).

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

recipients Array N
recipients[].templateParameters Object N Template parameters. It consists of a pair of keys (keys, placeholders) and values ​​(values).

You cannot specify template parameters for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

id String N ID generated upon successful bulk recipient list and file upload
flow Object N
flow.steps Array Y
flow.steps[].messageChannel String Y Message channel
[SMS, ALIMTALK, EMAIL, RCS, PUSH]
flow.steps[].sender Object N Sender information. Sender information may be configured differently depending on the message channel.
flow.steps[].content Object N Message content. Message content may be configured differently depending on the message channel.
flow.steps[].options Object N Sending options. Sending options can be configured differently depending on the message channel.
flow.steps[].nextSteps Array N The next step. If there is no next step, message sending will end.

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Send Flow Message

POST {{endpoint}}/message/v1.0/flow-messages/{{messagePurpose}}
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

{
  "statsKeyId" : "aA123456",
  "flowId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "flow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "nextSteps" : [ {
        "messageChannel" : "RCS"
      } ]
    } ]
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/flow-messages/${messagePurpose}" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}"  \ 
-d '{
  "statsKeyId" : "aA123456",
  "flowId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "id" : "alpha123",
  "flow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "nextSteps" : [ {
        "messageChannel" : "RCS"
      } ]
    } ]
  }
}'

Send an Instant Flow Message

When requesting a message, define a flow to send the message.

When entering an instant flow, you can use a template to request a message or manually enter sender information and content.

Request

POST /message/v1.0/instant-flow-messages/{messagePurpose}

Request Parameter

Name Category Type Required Description
messagePurpose Path String Y Message purpose
NORMAL, AD, AUTH

Request Body

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "instantFlow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "templateId" : "Template_ID",
      "nextSteps" : [ ]
    } ]
  }
}
Path Type Required Description
statsKeyId String N Statistics key ID
scheduledDateTime String N Scheduled sending time
confirmBeforeSend Boolean N Whether to send after confirmation
templateParameters Object N Template parameters. It consists of a pair of key (Key, placeholder) and value (Value).

Template parameters cannot be specified for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

recipients Array Y
recipients[].contacts Array N
recipients[].templateParameters Object N Template parameters. It consists of a pair of key (key, placeholder) and value (value).

You cannot specify template parameters for each recipient in group sending.

Template parameters set for recipients take precedence over message template parameters.

instantFlow Object Y
instantFlow.steps Array Y
instantFlow.steps[].messageChannel String Y Message Channel
[SMS, ALIMTALK, EMAIL, RCS, PUSH]
instantFlow.steps[].sender Object N Sender information. Sender information can be configured differently depending on the message channel.
instantFlow.steps[].content Object N Message content. Message content can be configured differently depending on the message channel.
instantFlow.steps[].options Object N Sending options. Sending options can be configured differently depending on the message channel.
instantFlow.steps[].templateId String N Template ID. If a template ID is set, the sender information (sender) and message content (content) will not be applied to the request.
If a template ID is not set in an instant flow message, the sender information (sender) and message content (content) are required.
instantFlow.steps[].nextSteps Array N The next step. If there is no next step, message sending will end.

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  },
  "messageId" : "aA123456"
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS
messageId String The message ID. This value is generated when a message sending request is received.

Request Example

IntelliJ HTTP
### Send an Instant Flow Message

POST {{endpoint}}/message/v1.0/instant-flow-messages/{{messagePurpose}}

{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "instantFlow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "templateId" : "Template_ID",
      "nextSteps" : [ ]
    } ]
  }
}
cURL
curl -X POST "${endpoint}/message/v1.0/instant-flow-messages/${messagePurpose}" \
-d '{
  "statsKeyId" : "aA123456",
  "scheduledDateTime" : "2024-10-29T06:00:01.000+09:00",
  "confirmBeforeSend" : false,
  "templateParameters" : {
    "key1" : "value1",
    "key2" : "value2"
  },
  "recipients" : [ {
    "contacts" : [ {
      "contactType" : "PHONE_NUMBER",
      "contact" : "01012345678",
      "clientReference" : "1234:abcd:011-asd"
    } ],
    "templateParameters" : {
      "key1" : "value1",
      "key2" : "value2"
    }
  } ],
  "instantFlow" : {
    "steps" : [ {
      "messageChannel" : "SMS",
      "sender" : {
        "senderPhoneNumber" : "0123456789"
      },
      "content" : {
        "title" : "Title",
        "body" : "Body"
      },
      "options" : {
        "expiryOption:" : 1,
        "groupId\"" : "groupId"
      },
      "templateId" : "Template_ID",
      "nextSteps" : [ ]
    } ]
  }
}'

Cancel Sending Message

Enter the message ID you wish to cancel the message.
You can cancel the message using the message ID received in response to the message you sent.
All requests within the message will be canceled.

Request

POST /message/v1.0/messages/{messageId}/do-cancel
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messageId Path String Y null

Request Body

This API does not request a request body.

Request Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  }
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS

Request Example

IntelliJ HTTP
### Cancel Sending Message

POST {{endpoint}}/message/v1.0/messages/{{messageId}}/do-cancel
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}


cURL
curl -X POST "${endpoint}/message/v1.0/messages/${messageId}/do-cancel" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}" 

Confirm Message Delivery

After confirmation, check the message you requested to send.

Request

POST /message/v1.0/messages/{messageId}/do-confirm
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}

Request Parameter

Name Category Type Required Description
X-NC-APP-KEY Header String Y Appkey
X-NHN-Authorization Header String Y Access token
messageId Path String Y null

Request Body

이 API는 요청 본문을 요구하지 않습니다.

Response Body

{
  "header" : {
    "isSuccessful" : true,
    "resultCode" : 0,
    "resultMessage" : "SUCCESS"
  }
}
Path Type Description
header Object
header.isSuccessful Boolean Indicates whether the request was successful.
Default: true
header.resultCode Integer The result code of the request.
Default: 0
header.resultMessage String The result message of the request.
Default: SUCCESS

Request Example

IntelliJ HTTP
### Confirm Message Delivery

POST {{endpoint}}/message/v1.0/messages/{{messageId}}/do-confirm
X-NC-APP-KEY: {appKey}
X-NHN-Authorization: Bearer {accessToken}


cURL
curl -X POST "${endpoint}/message/v1.0/messages/${messageId}/do-confirm" \
-H "X-NC-APP-KEY: {appKey}"  \ 
-H "X-NHN-Authorization: Bearer {accessToken}" 
TOP