Open API
Contiple provides various support resources—such as Help Center notices, FAQs, and ticket information—via the Open API.
➊ API Authentication
1-1. Enable OPEN API
Go to [Service Management] → [Authentication].
Enable Open API.
When Open API is enabled, a Service API Key is automatically generated.
The API Key is used to authenticate API requests and encrypt transmitted data.
You can regenerate the API Key by clicking Change API Key.
1-2. Authorization Header
Please make sure to set the following values in every request header.
If your service uses Security Service features, you can enable IP-based spam policies from [Service Management] → [Security Management] → [Spam Management].
When creating tickets via the Open API, if you include the OC-Client-IP value in the request header, spam detection will be performed based on the request’s IP address.
Authorization : Authentication string generated using the Security Key
X-TC-Timestamp : Current UTC timestamp {new Date().getTime()}
OUCODE : User Code (If not set, the default value is Owner)
1-3. Authorization Generation

Generate the string according to the rules below.
Organization ID
You can find this value on the [Global Management] → [Contract Service Status] → [Organization Information] screen.
It is composed in a format similar to the following:
AbcdE1fghIj23K4x
API URI
Enter the URI of the API you want to call. The URI must include the Service ID.
Example:
/yourService/openapi/v1/ticket.json
Query Parameters
If the API you are calling includes query parameters, sort the parameters by key name in alphabetical order first. Then concatenate only the parameter values using the
&character. If there is only one parameter, do not include the&character. If there are no query parameters, this step can be omitted.Example: Query parameter
1234Sorted by key (alphabetical):
language=ko&page=1&pageSize=10Concatenated values:
ko&1&10
Timestamp
Apply the timestamp of the time when the API request is made. This value must be identical to the X-TC-Timestamp value sent in the request header.
Example:
1764031689401
Sending the Authentication Key
Set the generated authentication key as the value of the Authorization request header and send the request to Contiple.
Contiple encrypts the received header and body values using the same API Key and compares the resulting Hash value.
If the values match, the API request is processed successfully.
If they do not match, an error code 400 is returned.
1-4. JAVA Example
(1) Standard Request (GET)
(2) Standard Request (POST)
(3) File Upload
(3) Contiple-side authentication method
If Contiple authentication fails, the result is returned as shown below.
(Please verify that the Authorization string is encrypted using the correct method.)
Authentication failure condition:
400
Authorization is blank
X-TC-Timestamp is not numeric
X-TC-Timestamp is expired (valid within 5 minutes)
Multipart request but file is null
Authorization is incorrect
403
securityKey is null
clientIp is not allowed
➋ Common Return Results
2-1. Return Result Example
2-2. Return Result Description
Header
resultCode
Integer
Return result code, 200 indicates a successful request.
resultMessage
String
Return error message
isSuccessful
Boolean
Execution result (Sucess: true, Failure: false)
Result
contents
JSON
List result content
content
JSON
Detail result content
2-3. Return Code
200 : SUCCESS
400 : Bad Request
403 : Access Denied(Forbidden)
404 : Not Data Found
500 : Server Error
9007 : The related data already exists.
9005 : No related data exists.
1001 : he inquiry limit has been exceeded. Please try again later.
The following cases apply when [Spam Management] → [Spam Inquiry Blocking] is enabled:
If inquiry creation is attempted 3 or more times within 1 minute from the same IP, ticket creation is blocked for 24 hours.
1002 : he inquiry limit has been exceeded. Please try again later.
The following cases apply when [Spam Management] → [Spam Inquiry Blocking] is enabled:
If inquiry creation is attempted 10 or more times within 24 hours from the same IP, ticket creation is blocked for 24 hours.
2-4. Return Code Details (Failure)
400
Authorization is blank
X-TC-Timestamp is not numeric
X-TC-Timestamp is expired (valid within 5 minutes)
Multipart request but file is null
Authorization is incorrect
403
securityKey is null
clientIp is not allowed
➌ API List
3-1. Development Environment URL
Alpha
https://{domain}.oc.alpha-nhncloud.com
Beta
https://{domain}.oc.beta-nhncloud.com
Real
https://{domain}.oc.nhncloud.com
3-2. Security Key URL
Security Key of Service
/{serviceId}/openapi/v1/*
Available for direct use without authentication
/{serviceId}/api/v2/*
3-3. API List
Service
Service Details
GET
/{serviceId}/api/v2/service.json
Retrieve service information using the Service ID
Notice
Heading List
GET
/{serviceId}/api/v2/notice/categories.json
Retrieve the list of notice headings
Tag List
GET
/{serviceId}/api/v2/notice/tags.json
Retrieve the list of notice tags
Notice List
GET
/{serviceId}/api/v2/notice/list.json
Retrieve the Help Center notice list
Notice Details
GET
/{serviceId}/api/v2/notice/detail/{id}.json
Retrieve notice content using the Notice ID
Open & Download Notice Attachments
GET
/{serviceId}/api/v2/notice/attachments/{id}
Open or download notice attachments
FAQ
Category List
GET
/{serviceId}/api/v2/helpdoc/categories.json
Retrieve the FAQ category list
FAQ List
GET
/{serviceId}/api/v2/helpdoc/list.json
Retrieve the Help Center FAQ list
FAQ Detail
GET
/{serviceId}/api/v2/helpdoc/detail/{id}.json
Retrieve FAQ content using the FAQ ID
Open & Download FAQ Attachments
GET
/{serviceId}/api/v2/helpdoc/attachments/{id}
Open or download FAQ attachments
Submit Inquiry
Inquiry Type List
GET
/{serviceId}/api/v2/ticket/categories.json
Retrieve the list of inquiry types within the service
Inquiry Type Field List
GET
/{serviceId}/api/v2/ticket/field/user/{categoryId}.json
Retrieve the list of fields associated with a specific inquiry type
Ticket Attachment Upload
POST
/{serviceId}/openapi/v1/ticket/attachments/upload.json
Upload files to the server
Create Ticket
POST
/{serviceId}/openapi/v1/ticket.json
Create a new ticket
Inquiry History
Customer Ticket List
GET
/{serviceId}/openapi/v1/ticket/enduser/{usercode}/list.json
Display a customer’s ticket list based on search conditions
Ticket Details
GET
/{serviceId}/openapi/v1/ticket/enduser/{usercode}/{ticketId}/detail.json
Retrieve details of a ticket submitted by the customer
Open & Download Ticket Attachments
GET
/{serviceId}/api/v2/ticket/attachments/{id}
Open or download ticket attachments
Customer Follow-up Inquiry
POST
/{serviceId}/openapi/v1/ticket/enduser/{usercode}/{ticketId}/comment.json
Submit a follow-up inquiry based on the Ticket ID
Last updated