2.3.2 통합 RCS 메시지
베이스 URL
섹션 제목: “베이스 URL”| 구분 | 접속 URL |
|---|---|
| 상용 | https://api-send.msghub.uplus.co.kr |
| 검수 | https://api-send.msghub-qa.uplus.co.kr |
1. 통합 RCS 발송 v11
섹션 제목: “1. 통합 RCS 발송 v11”통합 RCS (Rich Communication Services) 는 단말 제조사 상관없이 국내 이통 3사에서 제공하는 RCS 표준 규격입니다. 통합 RCS 메시지를 발송합니다. 텍스트, 이미지, 버튼 등 다양한 형태의 풍부한 메시지를 전송할 수 있습니다.
📌 주의사항
섹션 제목: “📌 주의사항”- 동보발송이란, 같은 내용의 메시지를 다수에게 동시에 보내는 발송 방식
- 메시지허브는 동보발송을 지원하며, 1건의 메시지에 최대 10명의 수신자를 추가하여 발송할 수 있습니다.
- TPS는 수신자 수 기준으로 처리됩니다. 예시) SMS 1건에 수신자 5명을 추가하여 발송시, TPS는 5입니다.
- 예약발송은 현재 시점으로부터 최대 30일까지 가능합니다.
- 광고성 메시지의 경우 메시지 타이틀 혹은 본문에 직접 ‘(광고)’ 표기하여 발송하며, 글자수에 포함됩니다.
- 무료수신거부 번호는 메시지 본문 끝에 직접 표기하여 발송하며, 글자수에 포함됩니다.
- fbInfoLst는 발송실패시, 대체발송에 대한 객체입니다. 대체발송 채널은 SMS, MMS만 지원하며, 메인 채널과 동일할 수 없습니다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /rcs/v1.1 HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| resvYn | String | - | 예약발송 여부 (Y/N) | 1자 |
| resvReqDt | String | - | 예약발송 시간 (예: 2025-07-13 13:15) | - |
| agency | Object | - | 대행사 정보 | - |
| messagebaseId | String | ● | 메시지베이스 ID | 100자 |
| callback | String | ● | 발신번호/양방향대화방 ID | 100자 |
| header | String | ● | Header ‘0’만 가능 | 1자 |
| expiryOption | String | - | expire 옵션 | 1자 |
| campaignId | String | - | 캠페인 ID | 20자 |
| deptCode | String | - | 부서 코드 | 20자 |
| buttons | Array | - | 버튼 | - |
| recvInfoLst | Array | ● | 수신자 정보 리스트 | 10개 |
| fbInfoLst | Array | - | fallback 정보 리스트 | - |
| brandId | String | - | 브랜드ID (대행사의 경우 필수) | - |
| brandKey | String | - | 브랜드KEY (대행사의 경우 필수) | - |
| productCode | String | - | 상품 코드 (대행사의 경우 필수) | - |
buttons 객체
섹션 제목: “buttons 객체”자세한 내용은 하단의 Appendix를 참고해주세요.
| Name | Type | 필수 | 설명 |
|---|---|---|---|
| suggestions | Array | ● | 버튼 목록 |
| suggestions[].action | Object | ● | 버튼 동작 정보 |
| suggestions[].action.displayText | String | ● | 버튼에 표시되는 텍스트 |
| suggestions[].action.postback | Object | ● | 클릭 시 서버로 전송할 데이터 |
| suggestions[].action.urlAction | Object | - | URL링크 버튼 정보 |
| suggestions[].action.clipboardAction | Object | - | 복사하기 버튼 정보 |
| suggestions[].action.dialerAction | Object | - | 전화걸기 버튼 정보 |
| suggestions[].action.calendarAction | Object | - | 일정추가 버튼 정보 |
| suggestions[].action.mapAction | Object | - | 지도맵 버튼 정보 |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Array | 결과 데이터 목록 |
| data[].cliKey | String | 클라이언트 키 |
| data[].msgKey | String | 메시지 키 |
| data[].phone | String | 수신번호 |
| data[].code | String | 결과 코드 |
| data[].message | String | 결과 메시지 |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”💡 Json 예시
섹션 제목: “💡 Json 예시”통합 RCS 상품 유형별 예시입니다.
통합 RCS SMS 카드
섹션 제목: “통합 RCS SMS 카드”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "RPSSAXX001", // 통합 RCS SMS형 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요." }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요." }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'통합 RCS LMS 카드
섹션 제목: “통합 RCS LMS 카드”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "RPLSAXX001", // 통합 RCS LMS형 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"LMS 제목" }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"LMS 제목" }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'통합 RCS MMS 카드T / MMS 카드M
섹션 제목: “통합 RCS MMS 카드T / MMS 카드M”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "RPMSMTX001", // RPMSMTX001 통합 RCS MMS T형, RPMSMMX001 통합 RCS MMS M형 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"MMS 제목", "media":"maapfile://ZZ.....jnK8" }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"MMS 제목", "media":"maapfile://ZZ.....nK8" }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'RCS 통합 이미지 템플릿 M / RCS 통합 이미지 템플릿 T
섹션 제목: “RCS 통합 이미지 템플릿 M / RCS 통합 이미지 템플릿 T”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "IBR.lG...v-2Dr6...TF", // 등록한 템플릿코드 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"MMS 제목", "media":"maapfile://ZZ.....jnK8" }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"MMS 제목", "media":"maapfile://ZZ.....nK8" }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'RCS 통합 정보성 템플릿 승인형
섹션 제목: “RCS 통합 정보성 템플릿 승인형”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "UBR.lG...9v-rB..8s", // 등록한 템플릿코드 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"제목" }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "name": "이름", "description": "{{name}}님 안녕하세요.", "title":"제목" }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'RCS 통합 프리템플릿
섹션 제목: “RCS 통합 프리템플릿”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "resvYn": "N", "resvReqDt": "2025-07-13 13:15", "messagebaseId": "UBR.lG...9v-RPTFXXX001", // 브랜드별 프리템플릿코드 "callback": "07012345678", "header": "0", "expiryOption": "1", "recvInfoLst": [ { "cliKey": "test001", "phone": "01012341234", "mergeData": { "description": "{{name}}님 안녕하세요." }, "userCustomFields": { "key1": "value1", "key2": 123 } }, { "cliKey": "test002", "phone": "01056785678", "mergeData": { "description": "{{name}}님 안녕하세요." }, "userCustomFields": { "key1": "value1", "key2": 123 } } ], "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ] }'Response
섹션 제목: “Response”{ "code": "10000", "message": "성공", "data": [ { "cliKey": "test001", "msgKey": "3j...8U.6fKG1w", "phone": "01012341234", "code": "10000", "message": "성공" }, ... ]}예약발송 응답
섹션 제목: “예약발송 응답”{ "code": "10000", "message": "성공", "data": { "regDt": "2026-04-08T11:16:55", "webReqId": "RRR...b5jv" } ]}2. 통합 RCS 양방향 발송 v11
섹션 제목: “2. 통합 RCS 양방향 발송 v11”RCS 양방향 응답메시지를 발송합니다.
📌 주의사항
섹션 제목: “📌 주의사항”- 양방향번호로 등록된 번호만 사용가능합니다.
1) 요청 (Request)
섹션 제목: “1) 요청 (Request)”URL
섹션 제목: “URL”POST /rcs/bi/v1.1 HTTP/1.1Headers
섹션 제목: “Headers”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| Authorization | String | ● | 사용자 인증 토큰 |
| Content-Type | String | ● | application/json |
Request Body
섹션 제목: “Request Body”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| agency | Object | - | 대행사 정보 | - |
| replyId | String | ● | 양방향 응답메시지ID | - |
| cliKey | String | ● | 클라이언트 키 | 20자 |
| messagebaseId | String | ● | 메시지베이스 ID | 100자 |
| chatbotId | String | ● | 발신번호/양방향대화방 ID | 40자 |
| telco | String | ● | 이통사 | - |
| phone | String | ● | 휴대폰번호 | - |
| body | Object | ● | 메세지내용 | - |
| header | String | ● | Header ‘0’만 가능 | 1자 |
| campaignId | String | - | 캠페인 ID | 20자 |
| deptCode | String | - | 부서 코드 | 20자 |
| buttons | Array | - | 버튼리스트 | - |
| chipList | Array | - | 칩리스트 | - |
| brandId | String | - | 브랜드ID (대행사의 경우 필수) | - |
| brandKey | String | - | 브랜드KEY (대행사의 경우 필수) | - |
| productCode | String | - | 상품 코드 (대행사의 경우 필수) | - |
body 객체
섹션 제목: “body 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| description | String | ● | 메시지 본문 |
buttons 객체
섹션 제목: “buttons 객체”자세한 내용은 하단의 Appendix를 참고해주세요.
| Name | Type | 필수 | 설명 |
|---|---|---|---|
| suggestions | Array | ● | 버튼 목록 |
| suggestions[].action | Object | ● | 버튼 동작 정보 |
| suggestions[].action.displayText | String | ● | 버튼에 표시되는 텍스트 |
| suggestions[].action.postback | Object | ● | 클릭 시 서버로 전송할 데이터 |
| suggestions[].action.urlAction | Object | - | URL링크 버튼 정보 |
| suggestions[].action.clipboardAction | Object | - | 복사하기 버튼 정보 |
| suggestions[].action.dialerAction | Object | - | 전화걸기 버튼 정보 |
| suggestions[].action.calendarAction | Object | - | 일정추가 버튼 정보 |
| suggestions[].action.mapAction | Object | - | 지도맵 버튼 정보 |
chipList 객체
섹션 제목: “chipList 객체”자세한 내용은 하단의 Appendix를 참고해주세요.
| Name | Type | 필수 | 설명 |
|---|---|---|---|
| action | Object | ● | 버튼 동작 정보 |
| action[].displayText | String | ● | 버튼에 표시되는 텍스트 |
| action[].postback | Object | ● | 클릭 시 서버로 전송할 데이터 |
| action[].urlAction | Object | - | URL링크 버튼 정보 |
| action[].clipboardAction | Object | - | 복사하기 버튼 정보 |
| action[].dialerAction | Object | - | 전화걸기 버튼 정보 |
| action[].calendarAction | Object | - | 일정추가 버튼 정보 |
| action[].mapAction | Object | - | 지도맵 버튼 정보 |
2) 응답 (Response)
섹션 제목: “2) 응답 (Response)”Response Body
섹션 제목: “Response Body”| Name | Type | 설명 |
|---|---|---|
| code | String | 결과 코드 |
| message | String | 결과 메시지 |
| data | Array | 결과 데이터 목록 |
| data[].cliKey | String | 클라이언트 키 |
| data[].msgKey | String | 메시지 키 |
| data[].replyId | String | 양방향 응답메시지ID |
| data[].chatbotId | String | 챗봇ID |
| data[].code | String | 결과 코드 |
| data[].message | String | 결과 메시지 |
3) 요청 예시 (Sample)
섹션 제목: “3) 요청 예시 (Sample)”Curl
섹션 제목: “Curl”RCS 통합 양방향 카드 (텍스트형)
섹션 제목: “RCS 통합 양방향 카드 (텍스트형)”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/bi/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "messagebaseId": "RPCSAXX001", // 텍스트형 "chatbotId": "07012345678", "header": "0", "agency": { "kisaOrigCode": "123456789", "rcsAgencyId": "agencyId", "rcsAgencyKey": "AK.abcd1234" }, "replyId": "0d....0-17f7-4d8b-bc53-6.....5", "cliKey": "test001", "telco":"LGU", "phone": "01012341234", "body": { "description": "자동응답 메시지 답변내용" }, "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ], "chipList": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } }, { "action": { "clipboardAction": { "copyToClipboard": { "text": "복사할 내용 입력" } }, "displayText": "복사하기 버튼", "postback": { "data": "set_by_chatbot_copy_to_clipboard" } } } ] } ] }'RCS 통합 양방향 카드 (텍스트형)
섹션 제목: “RCS 통합 양방향 카드 (텍스트형)”curl -X POST "https://api-send.msghub-qa.uplus.co.kr/rcs/bi/v1.1" \ -H "accept: */*" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "messagebaseId": "RPCSMTX001", // RPCSMTX001 양방향카드T형, RPCSMMX001 양방향카드M형 "chatbotId": "07012345678", "header": "0", "agency": { "kisaOrigCode": "123456789", "rcsAgencyId": "agencyId", "rcsAgencyKey": "AK.abcd1234" }, "replyId": "0d....0-17f7-4d8b-bc53-6.....5", "cliKey": "test001", "telco":"LGU", "phone": "01012341234", "body": { "description": "자동응답 메시지 답변내용", "media":"maapfile://vq.....n" }, "buttons": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } } ] } ], "chipList": [ { "suggestions": [ { "action": { "displayText": "버튼1 (버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://msghub.uplus.co.kr/public/main" } } } }, { "action": { "clipboardAction": { "copyToClipboard": { "text": "복사할 내용 입력" } }, "displayText": "복사하기 버튼", "postback": { "data": "set_by_chatbot_copy_to_clipboard" } } } ] } ] }'Response
섹션 제목: “Response”{ "code": "10000", "message": "성공", "data": [ { "cliKey": "m....592b", "msgKey": "JuO....8n.6fL9Vn", "replyId": "0d....0-17f7-4d8b-bc53-6.....5", "chatbotId": "07012345678", "code": "10000", "message": "성공" }, ... ]}Appendix
섹션 제목: “Appendix”Agency 객체
섹션 제목: “Agency 객체”대행사 정보를 포함하는 객체입니다.
| 필드명 | 타입 | 필수 | 설명 |
|---|---|---|---|
| kisaOrigCode | String | - | 재판매사 KISA 최초식별코드 |
| rcsAgencyId | String | - | RBC에 등록된 대행사ID |
| rcsAgencyKey | String | - | RBC에서 발급된 대행사키 |
buttons 객체
섹션 제목: “buttons 객체”buttons > suggestions > action > postback 객체
섹션 제목: “buttons > suggestions > action > postback 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| data | String | ● | 버튼 타입 |
다음 값 중 하나가 들어갈 수 있음:
- URL링크
set_by_chatbot_open_url - 복사하기
set_by_chatbot_copy_to_clipboard - 전화걸기
set_by_chatbot_dial_phone_number - 일정추가
set_by_chatbot_create_calendar_event - 지도맵(현재위치)
set_by_chatbot_request_location_push - 지도맵(좌표입력)
set_by_chatbot_show_location - 지도맵(쿼리입력)
set_by_chatbot_search_locations
buttons > suggestions > action > urlAction 객체
섹션 제목: “buttons > suggestions > action > urlAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| openUrl | Object | ● | 오픈 URL 정보 |
| openUrl.url | String | ● | 이동할 URL |
buttons > suggestions > action > clipboardAction 객체
섹션 제목: “buttons > suggestions > action > clipboardAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| copyToClipboard | Object | ● | 클립보드 복사 정보 |
| copyToClipboard.text | String | ● | 복사할 텍스트 내용 |
buttons > suggestions > action > dialerAction 객체
섹션 제목: “buttons > suggestions > action > dialerAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| dialPhoneNumber | Object | ● | 전화 걸기 정보 |
| dialPhoneNumber.phoneNumber | String | ● | 전화번호 정보 |
buttons > suggestions > action > calendarAction 객체
섹션 제목: “buttons > suggestions > action > calendarAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| createCalendarEvent | Object | ● | 캘린더 일정 정보 |
| createCalendarEvent.title | String | ● | 일정 제목 |
| createCalendarEvent.description | String | ● | 일정 설명 |
| createCalendarEvent.startTime | String | ● | 시작일 (예: 2025-07-09T00:00:00Z) |
| createCalendarEvent.endTime | String | ● | 종료일 (예: 2025-07-09T12:00:00Z) |
buttons > suggestions > action > mapAction 객체
섹션 제목: “buttons > suggestions > action > mapAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| requestLocationPush | Object | - | 지도맵(현재위치) 버튼 선택시 필수 (내용 없음) |
| showLocation | Object | - | 지도맵(좌표 또는 쿼리) 버튼 선택시 필수 |
| showLocation.fallbackUrl | String | ● | 지도 APP 실행 실패 시 대체 URL |
| showLocation.location | Object | ● | 위치 정보 객체 |
| showLocation.location.latitude | String | - | 위도 (좌표 기반일 경우 필수) |
| showLocation.location.longitude | String | - | 경도 (좌표 기반일 경우 필수) |
| showLocation.location.label | String | - | 지도 APP에 표시될 라벨 (좌표 기반일 경우 필수) |
| showLocation.location.query | String | - | 검색 쿼리 (검색 기반일 경우 필수) |
RCS 버튼 유형별 json 예시입니다.
URL링크 버튼
섹션 제목: “URL링크 버튼” "buttons": [ { "suggestions": [ { "action": { "displayText": "상품 상세보기(버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://example.com/product/123" } } } } ] } ]복사하기 버튼
섹션 제목: “복사하기 버튼” "buttons": [ { "suggestions": [ { "action": { "displayText": "복사하기 버튼명", "clipboardAction": { "copyToClipboard": { "text": "복사할 내용" } }, "postback": { "data": "set_by_chatbot_copy_to_clipboard" } } } ] } ]전화걸기 버튼
섹션 제목: “전화걸기 버튼” "buttons": [ { "suggestions": [ { "action": { "displayText": "전화걸기 버튼명", "postback": { "data": "set_by_chatbot_dial_phone_number" }, "dialerAction": { "dialPhoneNumber": { "phoneNumber": "01012341234" } } } } ] } ]일정추가 버튼
섹션 제목: “일정추가 버튼” "buttons": [ { "suggestions": [ { "action": { "displayText": "일정추가 버튼명", "postback": { "data": "set_by_chatbot_create_calendar_event" }, "calendarAction": { "createCalendarEvent": { "description": "일정 내용", "startTime": "2025-07-09T00:00:00Z", "endTime": "2025-07-10T23:59:59Z", "title": "일정 제목" } } } } ] } ]지도(현재위치) 공유 버튼
섹션 제목: “지도(현재위치) 공유 버튼” "buttons": [ { "suggestions": [ { "action": { "mapAction": { "requestLocationPush": {} }, "displayText": "현재위치 공유 버튼명", "postback": { "data": "set_by_chatbot_request_location_push" } } } ] } ]지도맵(좌표입력) 버튼
섹션 제목: “지도맵(좌표입력) 버튼”"buttons": [ { "suggestions": [ { "action": { "mapAction": { "showLocation": { "fallbackUrl": "지도 APP 미작동시 대체할 URL", "location": { "latitude": "위도", "label": "지도 APP에 표시될 라벨", "longitude": "경도" } } }, "displayText": "지도 버튼명", "postback": { "data": "set_by_chatbot_show_location" } } } ] } ]지도(쿼리입력) 버튼
섹션 제목: “지도(쿼리입력) 버튼” "buttons": [ { "suggestions": [ { "action": { "mapAction": { "showLocation": { "fallbackUrl": "지도 APP 미작동시 대체할 URL", "location": { "query": "지도 APP에서 검색할 구문" } } }, "displayText": "지도 버튼명", "postback": { "data": "set_by_chatbot_search_locations" } } } ] } ]chipList 객체
섹션 제목: “chipList 객체”chipList > action > postback 객체
섹션 제목: “chipList > action > postback 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| data | String | ● | 버튼 타입 |
다음 값 중 하나가 들어갈 수 있음:
- URL링크
set_by_chatbot_open_url - 복사하기
set_by_chatbot_copy_to_clipboard - 전화걸기
set_by_chatbot_dial_phone_number - 일정추가
set_by_chatbot_create_calendar_event - 지도맵(현재위치)
set_by_chatbot_request_location_push - 지도맵(좌표입력)
set_by_chatbot_show_location - 지도맵(쿼리입력)
set_by_chatbot_search_locations
chipList > action > urlAction 객체
섹션 제목: “chipList > action > urlAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| openUrl | Object | ● | 오픈 URL 정보 |
| openUrl.url | String | ● | 이동할 URL |
chipList > action > clipboardAction 객체
섹션 제목: “chipList > action > clipboardAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| copyToClipboard | Object | ● | 클립보드 복사 정보 |
| copyToClipboard.text | String | ● | 복사할 텍스트 내용 |
chipList > action > dialerAction 객체
섹션 제목: “chipList > action > dialerAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| dialPhoneNumber | Object | ● | 전화 걸기 정보 |
| dialPhoneNumber.phoneNumber | String | ● | 전화번호 정보 |
chipList > action > calendarAction 객체
섹션 제목: “chipList > action > calendarAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| createCalendarEvent | Object | ● | 캘린더 일정 정보 |
| createCalendarEvent.title | String | ● | 일정 제목 |
| createCalendarEvent.description | String | ● | 일정 설명 |
| createCalendarEvent.startTime | String | ● | 시작일 (예: 2025-07-09T00:00:00Z) |
| createCalendarEvent.endTime | String | ● | 종료일 (예: 2025-07-09T12:00:00Z) |
chipList > action > mapAction 객체
섹션 제목: “chipList > action > mapAction 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| requestLocationPush | Object | - | 지도맵(현재위치) 버튼 선택시 필수 (내용 없음) |
| showLocation | Object | - | 지도맵(좌표 또는 쿼리) 버튼 선택시 필수 |
| showLocation.fallbackUrl | String | ● | 지도 APP 실행 실패 시 대체 URL |
| showLocation.location | Object | ● | 위치 정보 객체 |
| showLocation.location.latitude | String | - | 위도 (좌표 기반일 경우 필수) |
| showLocation.location.longitude | String | - | 경도 (좌표 기반일 경우 필수) |
| showLocation.location.label | String | - | 지도 APP에 표시될 라벨 (좌표 기반일 경우 필수) |
| showLocation.location.query | String | - | 검색 쿼리 (검색 기반일 경우 필수) |
RCS ChipList 유형별 json 예시입니다.
URL링크 버튼
섹션 제목: “URL링크 버튼” "chipList": [ { "action": { "displayText": "상품 상세보기(버튼명)", "postback": { "data": "set_by_chatbot_open_url" }, "urlAction": { "openUrl": { "url": "https://example.com/product/123" } } } } ]복사하기 버튼
섹션 제목: “복사하기 버튼” "chipList": [ { "action": { "displayText": "복사하기 버튼명", "clipboardAction": { "copyToClipboard": { "text": "복사할 내용" } }, "postback": { "data": "set_by_chatbot_copy_to_clipboard" } } } ]전화걸기 버튼
섹션 제목: “전화걸기 버튼” "chipList": [ { "action": { "displayText": "전화걸기 버튼명", "postback": { "data": "set_by_chatbot_dial_phone_number" }, "dialerAction": { "dialPhoneNumber": { "phoneNumber": "01012341234" } } } } ]일정추가 버튼
섹션 제목: “일정추가 버튼” "buttons": [ { "action": { "displayText": "일정추가 버튼명", "postback": { "data": "set_by_chatbot_create_calendar_event" }, "calendarAction": { "createCalendarEvent": { "description": "일정 내용", "startTime": "2025-07-09T00:00:00Z", "endTime": "2025-07-10T23:59:59Z", "title": "일정 제목" } } } } ]지도(현재위치) 공유 버튼
섹션 제목: “지도(현재위치) 공유 버튼” "buttons": [ { "action": { "mapAction": { "requestLocationPush": {} }, "displayText": "현재위치 공유 버튼명", "postback": { "data": "set_by_chatbot_request_location_push" } } } ]지도맵(좌표입력) 버튼
섹션 제목: “지도맵(좌표입력) 버튼”"buttons": [ { "action": { "mapAction": { "showLocation": { "fallbackUrl": "지도 APP 미작동시 대체할 URL", "location": { "latitude": "위도", "label": "지도 APP에 표시될 라벨", "longitude": "경도" } } }, "displayText": "지도 버튼명", "postback": { "data": "set_by_chatbot_show_location" } } } ]지도(쿼리입력) 버튼
섹션 제목: “지도(쿼리입력) 버튼” "buttons": [ { "action": { "mapAction": { "showLocation": { "fallbackUrl": "지도 APP 미작동시 대체할 URL", "location": { "query": "지도 APP에서 검색할 구문" } } }, "displayText": "지도 버튼명", "postback": { "data": "set_by_chatbot_search_locations" } } } ]recvInfoLst 객체
섹션 제목: “recvInfoLst 객체”| Name | Type | 필수 | 설명 | 크기 |
|---|---|---|---|---|
| cliKey | String | ● | 클라이언트키 | 30자 |
| phone | String | ● | 수신번호(국제문자 발송 시 맨 앞에 ‘0’이 없어야함) | 20자 |
| mergeData | Object | - | 채널별 개별화메시지 머지데이터 | - |
| userCustomFields | Object | - | 사용자 정의 필드 | - |
fbInfoLst 객체
섹션 제목: “fbInfoLst 객체”| Name | Type | 필수 | 설명 |
|---|---|---|---|
| ch | String | ● | 채널 |
| title | String | - | 제목(MMS의 경우 필수) |
| msg | String | ● | 메시지 |
| fileId | String | - | 파일아이디 (파일 아이디와 파일 아이디 목록 중 1개만 사용 가능) |
| fileIdLst | Array | - | 파일 아이디 목록 (최대 3개) |