챗봇 Custom API Spec.
Status: v2.0
Table of Contents
Summary
Please setting APIGW first, reference APIGW Integration Document
- Request Path: API Gateway -> Stages -> root path '/' -> 'Invoke URL'
Request
Custom Messenger -> Chatbot
Http Method: POST
Headers
name | value |
---|---|
Content-Type | "application/json;UTF-8" |
X-NCP-CHATBOT_SIGNATURE | signature of request body |
Signature Header
Signature
Algorithm: HmacSHA256
SecretKey: Copy from chatbot Custom config in "Messenger connection" page.
Sign content: Reqeust body.
X-NCP-CHATBOT_SIGNATURE
: Use Base64 encode signature bytes, and put base64 string in request headerX-NCP-CHATBOT_SIGNATURE
Request Event
open
trigger when open messenger, will response welcome message if have set in "Messenger Connection" -> "Custom"
Body Example
{ "version": "v2", "userId": "U47b00b58c90f8e47428af8b7bddcda3d", "userIp": "8.8.8.8", "timestamp": 12345678, "bubbles": [], "event": "open" }
Body Introduce
Field | Type | Required | Description |
---|---|---|---|
version | string | false | 'v2', protocol version, if not set, default process as 'v1' |
userId | string | true | unique id for user who chat with bot, no longer than 256 charactor |
userIp | string | false | user ip address, not required |
timestamp | long | true | current milliseconds since January 1, 1970, 00:00:00 GMT |
bubbles | array | true | empty array "[]" |
event | string | true | fixed string value "open" |
send
send user chat message
Body Example
{ "version": "v2", "userId": "U47b00b58c90f8e47428af8b7bddcda3d", "userIp": "8.8.8.8", "timestamp": 12345678, "bubbles": [ { "type": "text", "data" : { "description" : "text content" } } ], "event": "send" }
Body Introduce
Field | Type | Required | Description |
---|---|---|---|
version | string | false | 'v2', protocol version, if not set, default process as 'v1' |
userId | string | true | unique id for user who chat with bot, no longer than 256 charactor |
userIp | string | false | user ip address, not required |
timestamp | long | true | current milliseconds since January 1, 1970, 00:00:00 GMT |
bubbles | array[Text] | true | only support one Text component, if there are more than one Text content, will use the last one as user request |
event | string | true | fixed string value "send" |
Back to Table of Contents
Response
Chatbot -> Custom Messenger
Headers
name | value |
---|---|
Content-Type | "application/json;UTF-8" |
Response Status
Success
Http Status Code: 200
Body Example
{ "version": "v2", "userId": "U47b00b58c90f8e47428af8b7bddcda3d", "sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e", "timestamp": 12345678, "bubbles": [ // each component is a bubble ], "quickButtons": [ // some buttons ], "event": "send" }
Body Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
version | string | false | 'v2', protocol version, if not set, default process as 'v1' |
userId | string | true | same with Request userId |
sessionId | string | false | current session id, managed by chatbot |
timestamp | long | true | response time milliseconds since January 1, 1970, 00:00:00 GMT |
bubbles | array[Component] | false | array of any Component, each component is a bubble |
quickButtons | array | false | array of Basic Button, show at the bottom of chat window |
event | string | true | fixed string value "send" |
- You can quick start with some Response Examples.
Error
Http Status Code: 500
Body Example
{ "code": "1001", "message": "domain code 'test' not found", "timestamp": 12345678 }
details introduce go to Error Define
Back to Table of Contents
Component
all component use same json structure
{
"type": "...",
"title": "optional, short bold text",
"subTitle": "optional, short gray text",
"data" : {
...
}
}
Basic Component
Text
Type: text
JSON Structure
{ "type": "text", "title": "optional, short bold text", "subTitle": "optional, short gray text", "data" : { "description" : "optional, a long text content", "url" : "optional, a hyperlink at the bottom of description", "urlAlias" : "optional, hyperlink show this alias", "action": {[Action Data](#action)} } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | text |
title | string | false | short bold text |
subTitle | string | false | short gray text |
data.description | string | false | a long text content |
data.url | string | false | the hyperlink jump url |
data.urlAlias | string | false | the hyperlink show text |
data.action | Action | false | the action of click on text or title |
- You can reference to some Text Examples.
Image
Type: image
JSON Structure
{ "type": "image", "title": "optional, short bold text", "subTitle": "optional, short gray text", "data" : { "imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png", "alt" : "optional, short hint show when hover on image", "imagePosition" : "top", "description" : "optional, details info of image", "url" : "optional, a hyperlink at the bottom of description", "urlAlias" : "optional, hyperlink show this alias", "action": {[Action Data](#action)} } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | image |
title | string | false | short bold text |
subTitle | string | false | short gray text |
data.imageUrl | string | true | image url, must be https url |
data.alt | string | false | short hint text show hover on image |
data.imagePosition | string | false | top / bottom / left / right, default is top |
data.description | string | false | details info of image |
data.url | string | false | the hyperlink jump url |
data.urlAlias | string | false | the hyperlink show text |
data.action | Action | false | the action of click on image or title |
- You can reference to some Image Examples.
Button
Type: button
JSON Structure
- basic button
{ "type": "button", "title": "optional, text show on button", "subTitle": "optional, short gray text", "data" : { "type": "basic", "iconUrl" : "https://ssl.pstatic.net/CloudFunctions.png", "action": {[Action Data](#action)} } }
- image button
{ "type": "button", "title": "optional, text show on button", "subTitle": "optional, short gray text", "data" : { "type": "imageButton", "iconUrl" : "https://ssl.pstatic.net/CloudFunctions.png", "action": {[Action Data](#action)} } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | button |
title | string | false | text show on button |
subTitle | string | false | short gray text |
data.type | string | true | basic or imageButton |
data.iconUrl | string | false | button icon url, must be https url |
data.action | Action | true | the action of click on button |
Back to Table of Contents
Composite Component
Template
Template are made up by basic components. Template have three part: cover, contentTable, footTable. cover is required. contentTable, footTable are table layout.
Type: template
JSON Structure
{ "type": "template", "title": "optional, short bold text", "subTitle": "optional, short gray text", "data":{ "cover":{ // any basic component }, "contentTableShowRows": 3, // if row count more than 3, should be fold "contentTable":[ // table layout [ // first row { "colSpan": 1, "rowSpan": 2, "data":{ // any basic component type } }, // other cells in first row ], // another rows ], "footTableShowRows":3, // if row count more than 3, should be fold "footTable":[ // table layout same as contentTable ] } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | template |
title | string | false | short bold text |
subTitle | string | false | short gray text |
data.cover | Basic Component | true | one Text / Image / Button |
data.contentTableShowRows | integer | false | show max rows, if row count more than max, should be fold, and plus an expand button. if not set, will show all rows |
data.contentTable | array[][Cell] | false | table layout, two-dimensional array of cell, cell data is any basic component |
data.footTableShowRows | integer | false | show max rows, if row count more than max, should be fold, and plus an expand button. if not set, will show all rows |
data.footTable | array[][Cell] | false | same as contentTable, always not exists, unless contentTable can't support |
- Introduce of cell in table layout
Field | Type | Must Exists | Description |
---|---|---|---|
rowSpan | integer | true | span row count |
colSpan | integer | true | span column count |
data | Basic Component | true | one Text / Image / Button |
- You can reference to some Template Examples.
Carousel
Type: carousel
JSON Structure
{ "type": "carousel", "title": "optional, short bold text", "subTitle": "optional, short gray text", "data" : { "cards": [ { // any component except carousel self }, // more components ] } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | image |
title | string | false | short bold text |
subTitle | string | false | short gray text |
data.cards | array[Component] | true | array of any component, but not carousel |
- You can reference to some Carousel Examples.
Back to Table of Contents
Action
Action is a common data for all basic components. define what will do when click on component.
Postback
When click on component, will postback a text to chatbot and show postback text as user chat.
Type: postback
JSON Structure
{ "type": "postback", "data" : { "postback" : "postback text" } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | postback |
data.postback | string | true | postback text send to chatbot |
Link
When click on component, will jump to a url.
Type: link
JSON Structure
{ "type": "link", "data" : { "url" : "http://www.ncloud.com", "mobileUrl" : "http://m.ncloud.com" } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | postback |
data.url | string | true | open url |
data.mobileUrl | string | false | url for mobile device |
Phone
When click on component, will jump dial page. Maybe only support on mobile.
Type: link
JSON Structure
{ "type": "phone", "data" : { "number" : "400-1111-1111", "name" : "Customer service" } }
Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
type | string | true | phone |
data.number | string | true | phone number |
data.name | string | false | contact name |
Back to Table of Contents
Quick Button
A group fixed buttons at the bottom of the chat window.
- You can reference to some Quick Buttons Examples.
Response Examples
Text
only normal text
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "text",
"data" : {
"description" : "description, optional: only description"
}
}
],
"event": "send"
}
full style with postback action
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "text",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"description" : "description, optional: full style, optional",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional",
"action" : {
"type": "postback",
"data" : {
"postback" : "Hello"
}
}
}
}
],
"event": "send"
}
Back to Table of Contents
Image
only image at the bottom, with description
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "image",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"imagePosition" : "bottom",
"description" : "description, optional: imagePosition is bottom,only have description"
}
}
],
"event": "send"
}
full style image on the top with link action
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"alt" : "alt, hover, optional",
"description" : "description, optional: imagePosition is top, full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional",
"action" : {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com",
"mobileUrl" : "http://m.ncloud.com"
}
}
}
}
],
"event": "send"
}
Back to Table of Contents
Template
Text + Buttons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "template",
"data" : {
"cover": {
"type" : "text",
"title" : "title, optional",
"subTitle" : "subTitle, optional",
"data" : {
"description" : "description, optional: text full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
],
"event": "send"
}
Back to Table of Contents
Image + Buttons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "template",
"data" : {
"cover": {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"alt" : "alt, hover, optional",
"description" : "description, optional: imagePosition is top full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
],
"event": "send"
}
Back to Table of Contents
Image List
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "template",
"data" : {
"cover": {
"type": "text",
"data" : {
"description" : "description, optional: only text style"
}
},
"contentTableShowRows" : 3,
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional, no description",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional, no description",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional, no description",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional, no description",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
],
"event": "send"
}
Back to Table of Contents
MiniButtons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "template",
"data" : {
"cover": {
"type": "text",
"title" : "title, optional",
"subTitle" : "subTitle, optional",
"data" : {
"description" : "description, optional: text full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
},
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
},
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 2,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
],
"event": "send"
}
Back to Table of Contents
ImageButtons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "template",
"data" : {
"cover": {
"type": "image",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"imagePosition" : "bottom",
"description" : "description, optional: imagePosition is bottom, no title",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "action is link",
"data" : {
"type": "imageButton",
"iconUrl": "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
},
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"data" : {
"type": "imageButton",
"iconUrl": "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
},
{
"colSpan" : 1,
"rowSpan" : 2,
"data" : {
"type": "button",
"data" : {
"type": "imageButton",
"iconUrl": "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 2,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "action is link",
"data" : {
"type": "imageButton",
"iconUrl": "https://ssl.pstatic.net/CloudFunctions.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
],
"event": "send"
}
Back to Table of Contents
Carousel
only images
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "carousel",
"data" : {
"cards": [
{
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"description" : "description, optional: imagePosition is top full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
{
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"description" : "description, optional: imagePosition is top full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
}
]
}
}
],
"event": "send"
}
template with image + buttons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"bubbles": [
{
"type": "carousel",
"data" : {
"cards": [
{
"type": "template",
"data" : {
"cover": {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"description" : "description, optional: imagePosition is top full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
},
{
"type": "template",
"data" : {
"cover": {
"type": "image",
"title": "title, optional",
"subTitle": "subTitle, optional",
"data" : {
"imageUrl" : "https://ssl.pstatic.net/CloudFunctions.png",
"alt" : "alt, hover, optional",
"description" : "description, optional: imagePosition is top full style",
"url" : "http://www.ncloud.com",
"urlAlias" : "urlAlias, optional"
}
},
"contentTable":[
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
],
[
{
"colSpan" : 1,
"rowSpan" : 1,
"data" : {
"type": "button",
"title": "basic button, a link",
"data" : {
"type": "basic",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
}
]
]
}
}
]
}
}
],
"event": "send"
}
Back to Table of Contents
Quick Buttons
{
"version": "v2",
"userId": "U47b00b58c90f8e47428af8b7bddcda3d",
"sessionId": "34a59946-5dcb-4b72-9b63-a773c659702e",
"timestamp": 12345678,
"quickButtons": [
{
"type": "button",
"title": "no icon",
"data" : {
"type": "basic",
"action": {
"type": "postback",
"data" : {
"postback" : "hello"
}
}
}
},
{
"type": "button",
"title": "phone",
"data" : {
"type": "basic",
"iconUrl" : "https://ssl.pstatic.net/phone.png",
"action": {
"type": "phone",
"data" : {
"number" : "400-1111-1111"
}
}
}
},
{
"type": "button",
"title": "pay",
"data" : {
"type": "basic",
"iconUrl" : "https://ssl.pstatic.net/pay.png",
"action": {
"type": "link",
"data" : {
"url" : "http://www.ncloud.com"
}
}
}
}
],
"event": "send"
}
Back to Table of Contents
Error Define
Http Status Code: 500
Body Example
{ "code": "1001", "message": "domain code test not found", "timestamp": 12345678 }
Body Introduce
Field | Type | Must Exists | Description |
---|---|---|---|
code | string | true | error code |
event | string | true | fixed string value "send" |
timestamp | long | true | response time milliseconds since January 1, 1970, 00:00:00 GMT |
- Error Code Define
code | Description |
---|---|
4000 | request param invalid |
4010 | Unauthorized |
4030 | Forbidden to access |
4031 | Signature validate failed |
4032 | timestamp exceeded time window(10000ms) |
1000 | version not support |
1001 | Not found domain code |
1002 | check url param is invalid |
5000 | Unknown service error |
5010 | Current protocol version not support this reply structure |