# 문의 내역

## **➊ 고객 티켓 리스트**

> * 고객이 문의한 티켓 리스트를 조회하는 API입니다.
> * 프로덕트 측에서 path 파라미터로 **아이디(usercode)**&#xB97C; 필수로 제공해야 하며, 해당 아이디로 접수된 티켓 목록을 반환합니다.

{% hint style="danger" %}
**아이디는 필수값입니다.**

티켓 생성 API에서 고객 아이디(식별값)를 usercode 필드에 반드시 저장해주세요.
{% endhint %}

**(1) 인터페이스 설명**

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1/ticket/enduser/{usercode}/list.json

| 인터페이스 명   | 프로토콜  | 호출방향 | 인코딩   | 결과 형식 | 인터페이스 설명                       | 접근제한 여부 |
| --------- | ----- | ---- | ----- | ----- | ------------------------------ | ------- |
| 고객 티켓 리스트 | HTTPS | GET  | UTF-8 | JSON  | 검색 조건을 통해 조건에 맞는 고객의 티켓 리스트 노출 | 공통 인증   |

***

**(2) 요청 파라미터 정의**

| 명칭         | 변수         | 데이터 타입  | 변수 유형 | 필수 | 설명                                                                                                     |
| ---------- | ---------- | ------- | ----- | -- | ------------------------------------------------------------------------------------------------------ |
| 서비스 ID     | serviceId  | String  | path  | O  | 서비스 ID，URL PATH 내에 설정한 {serviceId}                                                                     |
| 유저 코드      | usercode   | String  | path  | O  | 유저 코드(유일한 값)，URL PATH 내에 설정한{usercode}                                                                 |
| 카테고리 ID    | categoryId | Integer | query | X  | 카테고리(접수유형) ID                                                                                          |
| 티켓 상태      | status     | String  | query | X  | 티켓 상태. new: 미할당, open: 처리중, reply: 보류, solved: 해결, closed: 완료                                          |
| 언어 코드      | language   | String  | query | X  | 서비스 헬프센터 기본 언어 코드                                                                                      |
| 채널         | source     | String  | query | X  | 문의 채널(web: PC웹, spweb: 모바일 웹, api: API. 복수의 채널 조회 시 콤마로 구분하여 사용(예: web,spweb,api). 기본 값은 web,spweb,api |
| 정렬방식       | sort       | String  | query | X  | 정렬 순서(기본값: updatedDt:desc; 정렬 형식: 오름차순:asc, 내림차순:desc)                                                 |
| 페이지        | page       | Integer | query | X  | 기본 값: 1                                                                                                |
| 1페이지 노출 건수 | pageSize   | Integer | query | X  | 기본 값: 10; max=200                                                                                      |

***

**(3) 결과 데이터**

| 명칭              | 변수               | 데이터 타입  | 설명                                                            |
| --------------- | ---------------- | ------- | ------------------------------------------------------------- |
| result.contents | ticketId         | String  | 티켓 ID                                                         |
|                 | subject          | String  | 티켓 제목                                                         |
|                 | categoryId       | Integer | 접수유형 ID                                                       |
|                 | categoryName     | String  | 접수유형 명                                                        |
|                 | categoryFullName | String  | 카테고리 전체 경로(>로 각 뎁스 연결)                                        |
|                 | status           | String  | 티켓 상태. new: 미할당, open: 처리중, reply: 보류, solved: 해결, closed: 완료 |
|                 | statusName       | String  | 티켓 상태 명                                                       |
|                 | createdDt        | Long    | 티켓 생성시간                                                       |
|                 | updatedDt        | Long    | 티켓 업데이트 시간                                                    |
|                 | displayDt        | String  | 노출 시간(yyyy.MM.dd)                                             |
| result          | total            | Integer | 총 건수                                                          |
|                 | pages            | Integer | 총 페이지 수                                                       |
|                 | pageNum          | Integer | 현재 페이지                                                        |
|                 | pageSize         | Integer | 1페이지 당 노출 건수                                                  |

***

**(4) Response Body**

```json
{       
  "header": {       
    "resultCode": 200,      
    "resultMessage": "",        
    "isSuccessful": true        
  },        
  "result": {       
    "contents": [       
      {     
        "ticketId": "T1658213182227yb9hI",      
        "subject": "유형11",      
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "reply",      
        "statusName": "추가 확인",      
        "content": null,        
        "createdDt": 1658213182000,     
        "updatedDt": 1658215682000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T16582131010751o8BM",      
        "subject": "유형10",      
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "solved",     
        "statusName": "답변 완료",      
        "content": null,        
        "createdDt": 1658213101000,     
        "updatedDt": 1658215702000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658213078429EFmxm",      
        "subject": "유형9",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "closed",     
        "statusName": "최종 완료",      
        "content": null,        
        "createdDt": 1658213078000,     
        "updatedDt": 1658215720000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658213060072Witj6",      
        "subject": "유형8",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "open",       
        "statusName": "문의 확인",      
        "content": null,        
        "createdDt": 1658213060000,     
        "updatedDt": 1658215646000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658212816320fVxqS",      
        "subject": "유형7",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658212816000,     
        "updatedDt": 1658212816000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658211072628h00Qf",      
        "subject": "유형6",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658211073000,     
        "updatedDt": 1658211073000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658211058049HP1U0",      
        "subject": "유형5",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658211058000,     
        "updatedDt": 1658211058000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T165821104308563aoM",      
        "subject": "유형4",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658211043000,     
        "updatedDt": 1658211043000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658211028245FwMKd",      
        "subject": "유형3",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658211028000,     
        "updatedDt": 1658211028000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      },        
      {     
        "ticketId": "T1658211012753VCyy2",      
        "subject": "유형2",       
        "categoryId": 2542,     
        "categoryName": "유형1-1-1-1-1",      
        "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",      
        "status": "new",        
        "statusName": "접수 완료",      
        "content": null,        
        "createdDt": 1658211013000,     
        "updatedDt": 1658211013000,     
        "contents": null,       
        "attachments": null,        
        "displayDt": "2022.07.19"       
      }     
    ],      
    "total": 12,        
    "pages": 2,     
    "pageNum": 1,       
    "pageSize": 10      
  }     
}
```

***

## **➋ 티켓 상세**

> * 선택한 티켓의 문의내용, 처리내용 등 상세 정보를 조회하는 API 입니다.
> * [➊ 고객 티켓 리스트](#undefined)에서 조회한 후 상세 내역 조회가 필요한 티켓의 **티켓 ID(ticketId)**&#xB97C; 필수로 제공해야 하며, 해당 티켓의 상세 정보를 반환합니다.

**(1) 인터페이스 설명**

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1/ticket/enduser/{usercode}/{ticketId}/detail.json

| 인터페이스 명 | 프로토콜  | 호출방향 | 인코딩   | 결과 형식 | 인터페이스 설명         | 접근제한 여부 |
| ------- | ----- | ---- | ----- | ----- | ---------------- | ------- |
| 티켓 상세   | HTTPS | GET  | UTF-8 | JSON  | 고객이 접수한 티켓 상세 조회 | 공통 인증   |

***

**(2) 요청 파라미터 정의**

<table><thead><tr><th width="134">명칭</th><th width="125">변수</th><th width="116">데이터 타입</th><th width="101">변수 유형</th><th width="66">필수</th><th>설명</th></tr></thead><tbody><tr><td>서비스 ID</td><td>serviceId</td><td>String</td><td>path</td><td>O</td><td>서비스 ID，URL PATH 내에 설정한 {serviceId}</td></tr><tr><td>아이디</td><td>usercode</td><td>String</td><td>path</td><td>O</td><td>아이디(사용자 고유 ID), 문의 접수 시의 usercode</td></tr><tr><td>티켓 ID</td><td>ticketId</td><td>String</td><td>path</td><td>O</td><td>티켓 ID</td></tr><tr><td>언어코드</td><td>language</td><td>String</td><td>query</td><td>X</td><td>서비스 헬프센터 기본 언어 코드</td></tr></tbody></table>

***

**(3) 결과 데이터**

| 명칭             | 변수                                | 데이터 타입  | 설명                                                            |
| -------------- | --------------------------------- | ------- | ------------------------------------------------------------- |
| result.content | ticketId                          | String  | 티켓 ID                                                         |
|                | subject                           | String  | 서비스 ID                                                        |
|                | categoryId                        | Integer | 카테고리(접수유형) ID                                                 |
|                | categoryName                      | String  | 카테고리 명                                                        |
|                | categoryFullName                  | String  | 카테고리 전체 경로(>로 각 뎁스 연결)                                        |
|                | status                            | String  | 티켓 상태. new: 미할당, open: 처리중, reply: 보류, solved: 해결, closed: 완료 |
|                | statusName                        | String  | 티켓 상태 명                                                       |
|                | content                           | String  | 문의 내용                                                         |
|                | createdDt                         | Long    | 생성 시간                                                         |
|                | updatedDt                         | Long    | 수정 시간                                                         |
|                | contents                          | Array   | 티켓 상세 내용                                                      |
|                | contents.content                  | String  | 내용 상세                                                         |
|                | contents.type                     | String  | 문의 유형. enduser: 문의(접수 완료), csuser: 답변(접수 완료)                  |
|                | contents.typeName                 | String  | 내용 유형 명                                                       |
|                | contents.createdDt                | Long    | 티켓 처리 시간                                                      |
|                | contents.displayDt                | String  | 내용 노출 시간(yyyy.MM.dd)                                          |
|                | contents.attachments              | Array   | 티켓 처리 내용 첨부파일                                                 |
|                | contents.attachments.attachmentId | String  | 티켓 처리 내용 첨부파일 ID                                              |
|                | contents.attachments.fileName     | String  | 티켓 처리 내용 첨부파일 명                                               |
|                | contents.attachments.contentType  | String  | 티켓 처리 내용 첨부파일 유형                                              |
|                | contents.attachments.disposition  | String  | 티켓 처리 내용 첨부파일 처리 방식(attachment: 첨부파일)                         |
|                | contents.attachments.size         | Long    | 티켓 처리 내용 첨부파일 사이즈                                             |
|                | contents.attachments.createdDt    | Long    | 티켓 처리 내용 첨부파일 업로드 시간                                          |
|                | attachments                       | Array   | 티켓 문의 첨부파일                                                    |
|                | attachments.attachmentId          | String  | 티켓 문의 첨부파일 ID                                                 |
|                | attachments.fileName              | String  | 티켓 문의 첨부파일 명                                                  |
|                | attachments.contentType           | String  | 티켓 문의 첨부파일 유형                                                 |
|                | attachments.disposition           | String  | 티켓 문의 첨부파일 처리 방식(attachment: 첨부파일)                            |
|                | attachments.size                  | Long    | 티켓 문의 첨부파일 사이즈                                                |
|                | attachments.createdDt             | Long    | 티켓 문의 첨부파일 업로드 시간                                             |
|                | attachments.repealFlag            | Boolean | <p>티켓 문의 첨부파일 파기 여부<br>- 파기 X : false<br>- 파기 O : true</p>    |
|                | displayDt                         | String  | 노출 시간(yyyy.MM.dd)                                             |
| result         | total                             | Integer | 총 건수                                                          |
|                | pages                             | Integer | 총 페이지 수                                                       |
|                | pageNum                           | Integer | 페이지                                                           |
|                | pageSize                          | Integer | 페이지 당 건수                                                      |

***

**(4) Response Body**

```json
{       
  "header": {       
    "resultCode": 200,      
    "resultMessage": "",        
    "isSuccessful": true        
  },        
  "result": {       
    "content": {        
      "ticketId": "T1658199661153IXTfw",        
      "subject": "유형",      
      "categoryId": 2542,       
      "categoryName": "유형1-1-1-1-1",        
      "categoryFullName": "유형1>유형1-1>유형1-1-1>유형1-1-1-1>유형1-1-1-1-1",        
      "status": "solved",       
      "statusName": "답변 완료",        
      "content": "문의내용",        
      "createdDt": 1658199661000,       
      "updatedDt": 1658279983000,       
      "contents": [     
        {       
          "content": "<p>solved</p>",       
          "type": "reply",      
          "typeName": "답변",     
          "createdDt": 1658279983000,       
          "displayDt": "2025.08.29",        
          "attachments": [      
            {       
              "attachmentId": "a9e126cf01654631acc2d1e56e8c694e",       
              "fileName": "image.png",      
              "contentType": "image/png",       
              "disposition": "attachment",      
              "size": 90576,        
              "createdDt": 1658279969000,
              "repealFlag": true
            }       
          ]     
        },      
        {       
          "content": "<p>append comment</p>",       
          "type": "enduser",        
          "typeName": "질문",     
          "createdDt": 1658279813000,       
          "displayDt": "2025.08.20",        
          "attachments": null       
        },      
        {       
          "content": "<p>append comment</p>",       
          "type": "enduser",        
          "typeName": "질문",     
          "createdDt": 1658216460000,       
          "displayDt": "2025.08.20",        
          "attachments": null       
        },      
        {       
          "content": "<p>solved</p>",       
          "type": "reply",      
          "typeName": "답변",     
          "createdDt": 1658216406000,       
          "displayDt": "2025.08.29",        
          "attachments": null       
        }       
      ],        
      "attachments": null,      
      "displayDt": "2025.08.29"     
    }       
  }     
}
```

***

## **➌ 티켓 첨부파일**

> * 티켓에 첨부파일이 있을 경우, 열기 및 다운로드할 수 있는 API 입니다.
> * [➋ 티켓 상세](#undefined-1)에서 반환된 **첨부파일 ID(attachmentId)**&#xB97C; 필수로 제공해야 합니다.

**(1) 인터페이스 설명**

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/api/v2/ticket/attachments/{id}

| 인터페이스 명           | 프로토콜  | 호출방향 | 인코딩   | 결과 형식 | 인터페이스 설명        | 접근제한 여부 |
| ----------------- | ----- | ---- | ----- | ----- | --------------- | ------- |
| 티켓 첨부파일 열기 및 다운로드 | HTTPS | GET  | UTF-8 | JSON  | 티켓 첨부파일 열기/다운로드 | 필요 없음   |

***

**(2) 요청 파라미터 정의**

| 명칭        | 변수        | 데이터 타입 | 변수 유형 | 필수 | 설명                                             |
| --------- | --------- | ------ | ----- | -- | ---------------------------------------------- |
| 서비스 ID    | serviceId | String | path  | O  | URL PATH 내에 설정한 {serviceId}                    |
| 첨부한 파일 ID | id        | String | path  | O  | 첨부파일 ID, URL PATH 내에 설정한 {id}                  |
| 처리방식      | type      | String | query | X  | 기본 값은 브라우저로 열기(download: 다운로드, open: 브라우저로 열기) |

***

**(3) 결과 데이터**

* File

***

## **➍ 고객 재문의**

> * 고객이 답변 내역에 대해 추가 질문을 할 수 있도록 구현하고 싶을 경우 사용하는 API 입니다.
> * [➋ 티켓 상세](#undefined-1)에서 상세 내역을 조회한 후 고객이 추가질문을 작성할 수 있는 필드를 제공하고, 재문의 API를 호출하면 해당 티켓에 추가 질문이 등록되는 방식입니다.

**(1) 인터페이스 설명**

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1/ticket/enduser/{usercode}/{ticketId}/comment.json

| 인터페이스 명 | 프로토콜  | 호출방향 | 인코딩   | 결과 형식 | 인터페이스 설명          | 접근제한 여부 |
| ------- | ----- | ---- | ----- | ----- | ----------------- | ------- |
| 고객 재문의  | HTTPS | POST | UTF-8 | JSON  | 티켓 ID 기준으로 고객 재문의 | 공통 인증   |

***

**(2) 요청 파라미터 정의**

| 명칭     | 변수          | 데이터 타입 | 변수 유형 | 필수 | 설명                                                               |
| ------ | ----------- | ------ | ----- | -- | ---------------------------------------------------------------- |
| 서비스 ID | serviceId   | String | path  | O  | 서비스 ID，URL PATH 내에 설정한 {serviceId}                               |
| 아이디    | usercode    | String | path  | O  | 아이디(사용자 고유 ID), 문의 접수 시의 usercode                                |
| 티켓 ID  | ticketId    | String | path  | O  | 티켓 ID                                                            |
| 내용     | comment     | String | body  | O  | 재문의 내용                                                           |
| 첨부파일   | attachments | String | query | X  | 첨부파일 ID. 복수의 파일 첨부시 파일 ID를 (,)로 분리, max는 5건(파일ID1,파일ID2,…,파일ID5) |

***

**(3) 결과 데이터**

| 명칭             | 변수                       | 데이터 타입 | 설명                        |
| -------------- | ------------------------ | ------ | ------------------------- |
| result.content | content                  | String | 재문의 내용                    |
|                | type                     | String | 타입. 고정값: enduser          |
|                | typeName                 | String | 타입 명칭                     |
|                | createdDt                | Long   | 제출 시간                     |
|                | displayDt                | String | 노출 시간(yyyy.MM.dd)         |
|                | attachments              | Array  | 첨부파일                      |
|                | attachments.attachmentId | String | 첨부파일 ID                   |
|                | attachments.fileName     | String | 첨부파일 명                    |
|                | attachments.contentType  | String | 첨부파일 유형                   |
|                | attachments.disposition  | String | 파일 처리방식(attachment: 첨부파일) |
|                | attachments.size         | Long   | 첨부파일 사이즈                  |
|                | attachments.createdDt    | Long   | 첨부파일 업로드 시간               |

***

**(4) Response Body**

```json
{       
  "header": {       
    "resultCode": 200,      
    "resultMessage": "",        
    "isSuccessful": true        
  },        
  "result": {       
    "content": {        
      "content": "<p>append comnment</p>",      
      "type": "enduser",        
      "typeName": null,     
      "createdDt": 1658286589999,       
      "displayDt": null,        
      "attachments": [      
        {       
          "attachmentId": "a9e126cf01654631acc2d1e56e8c694e",       
          "fileName": "image.png",      
          "contentType": "image/png",       
          "disposition": "attachment",      
          "size": 90576,        
          "createdDt": 1658279969000        
        }       
      ]     
    }       
  }     
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.contiple.com/api/open-api/inquiry-history.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
