For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

  1. Go to [Service Management] → [Authentication].

  2. Enable Open API.

  3. 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

  • 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

1

Generate the string according to the rules below.

  1. 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

  2. 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

  3. 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 1234

        1. Sorted by key (alphabetical): language=ko&page=1&pageSize=10

        2. Concatenated values: ko&1&10

  4. 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

2

String Encryption

  • Encrypt the generated string using the API Key created in 1-1. Enable Open API to generate the authentication key.

  • The encryption method used is HmacSHA256.

3

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

  1. Authorization is blank

  2. X-TC-Timestamp is not numeric

  3. X-TC-Timestamp is expired (valid within 5 minutes)

  4. Multipart request but file is null

  5. Authorization is incorrect

403

  1. securityKey is null

  2. 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 : The number of inquiries has exceeded the limit. Please contact us again after a while.

    • 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 : The number of inquiries has exceeded the limit. Please contact us again after a while.

    • 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

  1. Authorization is blank

  2. X-TC-Timestamp is not numeric

  3. X-TC-Timestamp is expired (valid within 5 minutes)

  4. Multipart request but file is null

  5. Authorization is incorrect

403

  1. securityKey is null

  2. clientIp is not allowed


➌ API List

3-1. Development Environment URL

환경
BaseUrl

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
URL

Security Key of Service

/{serviceId}/openapi/v1/*

Available for direct use without authentication

/{serviceId}/api/v2/*


3-3. API List

그룹
명칭
유형
URL
설명

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