# お問合せ

お問い合わせ受付機能を独自に実装する場合は、以下の手順に沿って実装してください。

1. **受付タイプリストの取得**
   1. Contiple に登録されている受付タイプのリストを取得します。
   2. 取得した受付タイプは、ユーザーが直接選択できるように UIを実装します。
   3. 特定の受付タイプを固定したい場合は、［サービス管理 ＞ チケット ＞ カテゴリー管理］ 画面にてカテゴリーID を確認し、category パラメータに固定値として指定してください。
2. **フィールドリストの取得**
   1. ユーザーが選択した受付タイプをパラメータとして、フィールドリストを取得します。
   2. 返却されたフィールドリストの Type に応じて、テキストフィールド、ドロップダウン、チェックボックスなどの UI を実装します。
3. **添付ファイルのアップロード**
   1. ファイル添付機能を実装する場合は、ファイルアップロード API を呼び出して添付機能を実装します。
   2. アップロードに成功すると、システムから添付ファイル IDが返却されます。チケット作成時には、当該 IDをパラメータとして指定してください。
4. **チケット作成**
   1. お問い合わせを送信する時に、ユーザーが各フィールドに入力した値をパラメータとして、チケット作成 API を呼び出します。

## **➊** 受付タイプリスト <a href="#submission-type-list" id="submission-type-list"></a>

#### **(1) インターフェース説明** <a href="#submission-type-list-interface" id="submission-type-list-interface"></a>

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

| インターフェース名 | プロトコル | 呼び出し方向 | エンコード | 結果形式 | インターフェース説明       | アクセス制限可否 |
| --------- | ----- | ------ | ----- | ---- | ---------------- | -------- |
| 受付タイプリスト  | HTTPS | GET    | UTF-8 | JSON | サービス内の受付タイプリスト照会 | 必要なし     |

***

#### **(2) リクエストパラメータ定義** <a href="#submission-type-request" id="submission-type-request"></a>

| 名称        | 変数        | データタイプ  | 変数タイプ | 必須 | 説明                               |
| --------- | --------- | ------- | ----- | -- | -------------------------------- |
| サービスID    | serviceId | String  | path  | O  | サービスID，URL PATH内に設定した{serviceId} |
| 上位カテゴリーID | parent    | Integer | query | X  | 上位カテゴリーに所属する下位カテゴリーリスト           |
| 下位カテゴリーID | child     | Integer | query | X  | 下位カテゴリーに所属する上位カテゴリーリスト           |
| 言語コード     | language  | String  | query | X  | サービスヘルプセンターの基本言語コード              |

***

#### **(3) 結果データ** <a href="#submission-type-list-response-data" id="submission-type-list-response-data"></a>

| 名称              | 変数         | データタイプ  | 説明                                                |
| --------------- | ---------- | ------- | ------------------------------------------------- |
| result.contents | categoryId | Integer | 受付タイプID                                           |
|                 | parent     | Integer | 上位受付タイプID                                         |
|                 | name       | String  | 受付タイプ名                                            |
|                 | level      | Integer | <p>受付タイプレベル</p><ul><li>1, 2, 3, 4, 5</li></ul>    |
|                 | path       | String  | <p>受付タイプ経路</p><ul><li>\で各レベルのカテゴリーIDを接続</li></ul> |
|                 | orderNo    | Integer | 表示手順                                              |
|                 | languages  | Object  | カテゴリー多言語名                                         |

***

#### **(4) Response Body** <a href="#submission-type-list-response-body" id="submission-type-list-response-body"></a>

```json
{   
    "header": { 
        "resultCode": 200,  
        "resultMessage": "",    
        "isSuccessful": true    
    },  
    "result": { 
        "contents": [   
            {   
                "categoryId": 2536, 
                "parent": 0,    
                "name": "유형1",  
                "level": 1, 
                "path": "\\",   
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1",    
                    "th": "พิมพ์1", 
                    "ja": "タイプ1",   
                    "en": "Type1",  
                    "zh": "类型1" 
                }   
            },  
            {   
                "categoryId": 2537, 
                "parent": 0,    
                "name": "유형2",  
                "level": 1, 
                "path": "\\",   
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형2",    
                    "th": "พิมพ์2", 
                    "ja": "タイプ2",   
                    "en": "Type2",  
                    "zh": "类型2" 
                }   
            },  
            {   
                "categoryId": 2538, 
                "parent": 2536, 
                "name": "유형1-1",    
                "level": 2, 
                "path": "\\2536\\", 
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1-1",  
                    "th": "พิมพ์1-1",   
                    "ja": "タイプ1-1", 
                    "en": "Type1-1",    
                    "zh": "类型1-1"   
                }   
            },  
            {   
                "categoryId": 2539, 
                "parent": 2536, 
                "name": "유형1-2",    
                "level": 2, 
                "path": "\\2536\\", 
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1-2",  
                    "th": "พิมพ์1-2",   
                    "ja": "タイプ1-2", 
                    "en": "Type1-2",    
                    "zh": "类型1-2"   
                }   
            },  
            {   
                "categoryId": 2540, 
                "parent": 2538, 
                "name": "유형1-1-1",  
                "level": 3, 
                "path": "\\2536\\2538\\",   
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1-1-1",    
                    "th": "พิมพ์1-1-1", 
                    "ja": "タイプ1-1-1",   
                    "en": "Type1-1-1",  
                    "zh": "类型1-1-1" 
                }   
            },  
            {   
                "categoryId": 2541, 
                "parent": 2540, 
                "name": "유형1-1-1-1",    
                "level": 4, 
                "path": "\\2536\\2538\\2540\\", 
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1-1-1-1",  
                    "th": "พิมพ์1-1-1-1",   
                    "ja": "タイプ1-1-1-1", 
                    "en": "Type1-1-1-1",    
                    "zh": "类型1-1-1-1"   
                }   
            },  
            {   
                "categoryId": 2542, 
                "parent": 2541, 
                "name": "유형1-1-1-1-1",  
                "level": 5, 
                "path": "\\2536\\2538\\2540\\2541\\",   
                "orderNo": 0,   
                "languages": {  
                    "ko": "유형1-1-1-1-1",    
                    "th": "พิมพ์1-1-1-1-1", 
                    "ja": "タイプ1-1-1-1-1",   
                    "en": "Type1-1-1-1-1",  
                    "zh": "类型1-1-1-1-1" 
                }   
            }   
        ]   
    }   
}
```

***

## **➋** 受付タイプフィールドリスト <a href="#submission-type-field-list" id="submission-type-field-list"></a>

#### **(1) インターフェース説明** <a href="#submission-type-field-list-interface" id="submission-type-field-list-interface"></a>

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/api/v2/ticket/field/user/{categoryId}.json

| インターフェース名     | プロトコル | 呼び出し方向 | エンコード | 結果形式 | インターフェース説明            | アクセス制限可否 |
| ------------- | ----- | ------ | ----- | ---- | --------------------- | -------- |
| 受付タイプフィールドリスト | HTTPS | GET    | UTF-8 | JSON | 受付タイプで対応するフィールドリストを確認 | 共通認証     |

***

#### **(2) リクエストパラメータ定義** <a href="#submission-type-field-list-request" id="submission-type-field-list-request"></a>

| 名称      | 変数         | データタイプ  | 変数タイプ | 必須 | 説明                                  |
| ------- | ---------- | ------- | ----- | -- | ----------------------------------- |
| サービスID  | serviceId  | String  | path  | O  | サービスID，URL PATH内に設定した{serviceId}    |
| 受付タイプID | categoryId | Integer | path  | O  | 受付タイプID, URL PATH内に設定した{categoryId} |
| 言語コード   | language   | String  | query | X  | サービスヘルプセンターの基本言語コード                 |

***

#### **(3) 結果データ** <a href="#submission-type-field-list-response-data" id="submission-type-field-list-response-data"></a>

| 名称              | 変数          | データタイプ  | 説明                                                                      |
| --------------- | ----------- | ------- | ----------------------------------------------------------------------- |
| result.contents | fieldId     | Integer | 顧客フィールドID                                                               |
|                 | code        | String  | 項目コード                                                                   |
|                 | type        | String  | 項目タイプ                                                                   |
|                 | title       | String  | 項目名                                                                     |
|                 | description | String  | 案内文句                                                                    |
|                 | placeholder | String  | 題語                                                                      |
|                 | length      | Integer | <p>最大長さ</p><ul><li>0: 長さ制限なし</li></ul>                                  |
|                 | required    | Boolean | <p>必須可否</p><ul><li>true: yes </li><li>false: no</li></ul>               |
|                 | encrypt     | Boolean | <p>暗号化可否</p><ul><li>true: yes </li><li>false: no</li></ul>              |
|                 | holdingText | Boolean | <p>削除可否</p><ul><li>true: yes </li><li>false: no</li></ul>               |
|                 | options     | Array   | <p>テキストボックス, チェックボックス, ドロップボックス </p><ul><li>例: \[区分1、区分2、...]</li></ul> |
|                 | value       | String  | ユーザー入力値                                                                 |

***

#### **(4) Response Body** <a href="#submission-type-field-list-response-body" id="submission-type-field-list-response-body"></a>

```json
{       
    "header": {     
        "resultCode": 200,      
        "resultMessage": "",        
        "isSuccessful": true        
    },      
    "result": {     
        "contents": [       
            {       
                "fieldId": 1,       
                "code": "category",     
                "type": "dropdown",     
                "title": "유형",      
                "description": "",      
                "placeholder": "",      
                "length": 0,        
                "required": true,       
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 3,       
                "code": "mail",     
                "type": "text",     
                "title": "이메일",     
                "description": "",      
                "placeholder": "",      
                "length": 100,      
                "required": true,       
                "encrypt": true,        
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 5,       
                "code": "subject",      
                "type": "text",     
                "title": "제목",      
                "description": "",      
                "placeholder": "",      
                "length": 200,      
                "required": true,       
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 6,       
                "code": "content",      
                "type": "textarea",     
                "title": "문의내용",        
                "description": "",      
                "placeholder": "",      
                "length": 5000,     
                "required": true,       
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 2,       
                "code": "name",     
                "type": "text",     
                "title": "이름",      
                "description": "",      
                "placeholder": "",      
                "length": 100,      
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 4,       
                "code": "phone",        
                "type": "text",     
                "title": "전화번호",        
                "description": "",      
                "placeholder": "",      
                "length": 30,       
                "required": false,      
                "encrypt": true,        
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 9,       
                "code": "attachment",       
                "type": "file",     
                "title": "첨부파일",        
                "description": "10MB 이내 모든 이미지 및 허용된 문서 (MS office, hwp, pdf, txt)와 zip 파일을 5개까지 첨부가능합니다.",     
                "placeholder": "",      
                "length": 0,        
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 18,      
                "code": "typeOne",      
                "type": "text",     
                "title": "구분1",     
                "description": "",      
                "placeholder": "",      
                "length": 200,      
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 19,      
                "code": "typeTwo",      
                "type": "text",     
                "title": "구분2",     
                "description": "",      
                "placeholder": "",      
                "length": 200,      
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 720,     
                "code": "caption",      
                "type": "caption",      
                "title": "단순 텍스트 이름",       
                "description": "<div style=\"color:red\">단순 텍스트 설명</div>",      
                "placeholder": "<div style=\"font-size:20px;color:red\">단순 텍스트 내용</div>",       
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 721,     
                "code": "textbox",      
                "type": "text",     
                "title": "텍스트 박스 이름",       
                "description": "<div style=\"color:red\">텍스트 박스 설명</div>",      
                "placeholder": "텍스트 박스 자리 표시자",     
                "length": 50,       
                "required": true,       
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 722,     
                "code": "checkbox",     
                "type": "checkbox",     
                "title": "체크박스 이름",     
                "description": "체크박스 설명",       
                "placeholder": "",      
                "length": 50,       
                "required": false,      
                "encrypt": true,        
                "holdingText": true,        
                "options": [        
                    "옵션1",      
                    "옵션2",      
                    "옵션3"       
                ],      
                "value": null       
            },      
            {       
                "fieldId": 723,     
                "code": "dropdown",     
                "type": "dropdown",     
                "title": "드롭박스 이름",     
                "description": "드롭박스 설명",       
                "placeholder": "",      
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": [        
                    "옵션1",      
                    "옵션2",      
                    "옵션3"       
                ],      
                "value": null       
            },      
            {       
                "fieldId": 724,     
                "code": "radiobutton",      
                "type": "radio",        
                "title": "라디오 버튼 이름",       
                "description": "라디오 버튼 설명",     
                "placeholder": "",      
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": [        
                    "옵션1",      
                    "옵션2",      
                    "옵션3"       
                ],      
                "value": null       
            },      
            {       
                "fieldId": 725,     
                "code": "date",     
                "type": "date",     
                "title": "일자 이름",       
                "description": "일자 설명",     
                "placeholder": "2022-07-11",        
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 726,     
                "code": "datetime",     
                "type": "datetime",     
                "title": "일시",      
                "description": "일시",        
                "placeholder": "2022-07-11 00:00",      
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 727,     
                "code": "dateperiod",       
                "type": "date_period",      
                "title": "기간 일자 이름",        
                "description": "기간 일자 설명",      
                "placeholder": "2022-07-01 ~ 2022-07-31",       
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 728,     
                "code": "datetimeperiod",       
                "type": "datetime_period",      
                "title": "기간 일시 이름",        
                "description": "기간 일시 설명",      
                "placeholder": "2022-07-01 00:00 ~ 2022-07-31 23:59",       
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 729,     
                "code": "agreetotheterms",      
                "type": "agree",        
                "title": "동의하기 이름",     
                "description": "안내 문구",     
                "placeholder": "동의 문구",     
                "length": 50,       
                "required": false,      
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            },      
            {       
                "fieldId": 11,      
                "code": "personalAgree",        
                "type": "agree",        
                "title": "개인정보수집",      
                "description": "수집하는 개인 정보[(필수) 이메일, 휴대폰 번호, 문의내용, (선택) 첨부 파일]는 문의 내용 처리 및 고객 불만을 해결하기 위해 사용되며, <b><span style=\"font-size: 11pt;\">관련 법령에 따라 3년간 보관 후 삭제</span></b>됩니다. 문의 접수, 처리 및 회신을 위해 꼭 필요한 정보이므로 동의해 주셔야 서비스를 이용하실 수 있습니다.",     
                "placeholder": "위, 개인정보 수집 및 활용에 동의합니다.",       
                "length": 0,        
                "required": true,       
                "encrypt": false,       
                "holdingText": true,        
                "options": null,        
                "value": null       
            }       
        ]       
    }       
}
```

***

## **➌** チケット添付ファイルアップロード <a href="#ticket-attachment" id="ticket-attachment"></a>

#### **(1) インターフェース説明** <a href="#ticket-attachment-interface" id="ticket-attachment-interface"></a>

* URL: https\://{domain}.oc.nhncloud.com/{serviceId}/openapi/v1-1/ticket/attachments/upload.json

| インターフェース名        | プロトコル | 呼び出し方向 | エンコード | 結果形式 | インターフェース説明      | アクセス制限可否 |
| ---------------- | ----- | ------ | ----- | ---- | --------------- | -------- |
| チケット添付ファイルアップロード | HTTPS | POST   | UTF-8 | JSON | サーバーにファイルアップロード | 共通認証     |

***

#### **(2) リクエストパラメータ定義** <a href="#ticket-attachment-request" id="ticket-attachment-request"></a>

| 名称         | 変数        | データタイプ | 変数タイプ    | 必須 | 説明                                                                                                                                                                                               |
| ---------- | --------- | ------ | -------- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| サービスID     | serviceId | String | path     | O  | URL PATH内に設定した{serviceId}                                                                                                                                                                        |
| アップロードファイル | file      | File   | formData | O  | <p>ファイルをformに提出。</p><ul><li>サポートするファイル形式:  jpg, png, gif, bmp, jpeg, tif, tiff, pdf, txt, hwp, xls, xlsx, doc, docx, ppt, pptx, mp3, wav, zip</li><li>ファイルサイズ<10MB</li><li>ファイル名長さ<100</li></ul> |

***

#### **(3) 結果データ**<mark style="color:green;">**(成功)**</mark> <a href="#ticket-attachment-response-data-success" id="ticket-attachment-response-data-success"></a>

| 名称             | 変数           | データタイプ  | 説明                                                  |
| -------------- | ------------ | ------- | --------------------------------------------------- |
| result.content | attachmentId | String  | 添付ファイルID                                            |
|                | fileName     | String  | 添付ファイル名                                             |
|                | contentType  | String  | 添付ファイルタイプ                                           |
|                | disposition  | String  | <p>ファイル処理方式</p><ul><li>attachment: 添付ファイル</li></ul> |
|                | size         | Long    | 添付ファイルサイズ(byte)                                     |
|                | createdDt    | Long    | ファイル添付時間                                            |
|                | repealFlag   | Boolean | 添付ファイルの削除有無                                         |

***

#### **(4) Response Body&#x20;**<mark style="color:green;">**(成功)**</mark> <a href="#ticket-attachment-response-body-success" id="ticket-attachment-response-body-success"></a>

```json
  "header": {   
    "resultCode": 200,  
    "resultMessage": "",    
    "isSuccessful": true    
  },    
  "result": {   
    "content": {    
      "attachmentId": "8f0dc5854d2446b6aa2e6e41a0a2f55c",   
      "fileName": "image.png",  
      "contentType": "image/png",   
      "disposition": "attachment",  
      "size": 90576,    
      "createdDt": null,
      "repealFlag": null
    }   
  } 
}
```

***

#### **(5) 結果データ&#x20;**<mark style="color:orange;">**(失敗)**</mark> <a href="#ticket-attachment-response-data-fail" id="ticket-attachment-response-data-fail"></a>

| 名称             | 変数        | データタイプ | 説明                                           |
| -------------- | --------- | ------ | -------------------------------------------- |
| result.content | exception | String | 固定値: OcException                             |
|                | message   | String | <p>エラーメッセージ</p><ul><li>以下の失敗ケースを参照</li></ul> |

<mark style="background-color:orange;">**失敗ケース**</mark>

> **ファイルサイズが 10MB を超過**
>
> ```json
> {
>     "header": {
>         "resultCode": 4001,
>         "resultMessage": "10MB以内のファイルのみ添付可能です。",
>         "isSuccessful": false
>     },
>     "result": {
>         "content": {
>             "exception": "OcException",
>             "message": "10MB以内のファイルのみ添付可能です。"
>         }
>     }
> }
> ```
>
> **ファイル名が 100 文字を超過**
>
> ```json
> {
>     "header": {
>         "resultCode": 4002,
>         "resultMessage": "ファイル名が100文字以内のファイルのみ添付可能です。",
>         "isSuccessful": false
>     },
>     "result": {
>         "content": {
>             "exception": "OcException",
>             "message": "ファイル名が100文字以内のファイルのみ添付可能です。"
>         }
>     }
> }
> ```
>
> **許可されていない拡張子**
>
> ```json
> {
>     "header": {
>         "resultCode": 4003,
>         "resultMessage": "添付できないファイル形式です。",
>         "isSuccessful": false
>     },
>     "result": {
>         "content": {
>             "exception": "OcException",
>             "message": "添付できないファイル形式です。"
>         }
>     }
> }
> ```
>
> \
> **許可されていないMIMEタイプ**
>
> * 許可されるタイプ:  `"image", "application/pdf", "application/vnd", "text/plain", "application/zip", "application/x-tika-ooxml", "application/x-hwp", "application/x-tika-msoffice", "image/tiff", "audio/mpeg", "audio/wav", "audio/vnd.wave", "audio/x-wav"`
>
> ```json
> {
>     "header": {
>         "resultCode": 9017,
>         "resultMessage": "ファイルの内容が許可されている MIME タイプと一致しません。",
>         "isSuccessful": false
>     },
>     "result": {
>         "content": {
>             "exception": "OcException",
>             "message": "ファイルの内容が許可されている MIME タイプと一致しません。"
>         }
>     }
> }
> ```

***

## **➍** チケット作成 <a href="#ticket" id="ticket"></a>

#### **(1) インターフェース説明** <a href="#ticket-interface" id="ticket-interface"></a>

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

| インターフェース名 | プロトコル | 呼び出し方向 | エンコード | 結果形式 | インターフェース説明 | アクセス制限可否 |
| --------- | ----- | ------ | ----- | ---- | ---------- | -------- |
| チケット作成    | HTTPS | POST   | UTF-8 | JSON | 新規チケットの作成  | 共通認証     |

***

#### **(2) リクエストパラメータ定義** <a href="#ticket-request" id="ticket-request"></a>

| 称         | 変数                       | データタイプ  | 変数タイプ | 必須 | 説明                                                                                                                                                                                                                  |
| --------- | ------------------------ | ------- | ----- | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| サービスID    | serviceId                | String  | path  | O  | URL PATH内に設定した{serviceId}                                                                                                                                                                                           |
| チケット情報    | request body             | Object  | body  | O  | チケット情報(JSON)                                                                                                                                                                                                        |
| カテゴリー     | categoryId               | Integer |       | O  | カテゴリー(受付タイプ) ID                                                                                                                                                                                                     |
| タイトル      | subject                  | String  |       | O  | <p>タイトル</p><ul><li>max= 255</li></ul>                                                                                                                                                                               |
| 説明        | content                  | String  |       | O  | 原則として、プレーンテキストのみを許可しています。Base64 形式の内容を送信した場合、チケット確認時にデータ量が多くなり、問題が発生する可能性があります。 画像は添付ファイル形式でアップロードするか、ファイルアップロード後に、HTML の imgタグの src=""/{serviceId}/api/v2/ticket/attachments/{attachmentId}""/ を指定して読み込んで使用してください。 |
| 顧客情報      | endUser                  | Object  |       | O  | 顧客情報                                                                                                                                                                                                                |
| ID        | endUser.usercode         | String  |       | X  | 会員固有 ID 情報。会員連携機能を利用する場合は、プラットフォーム側のユーザー固有 ID を `usercode` として使用できます。`usercode` を使用することで、当該会員のお問い合わせ履歴を取得することが可能です。非会員からのお問い合わせの場合は、本値を送信する必要はありません。                                                                |
| メール       | endUser.email            | String  |       | O  | <p>メール情報。<br>チケット処理時に、［サービス管理 ＞ チケット ＞ メール設定］ メニューで設定された送信元アドレスから、お客様宛てにメールが送信されます。</p>                                                                                                                             |
| 名前        | endUser.username         | String  |       | O  | 名前情報。メールパラメータ入力時の必須項目であり、未入力の場合はメールを送信できません。                                                                                                                                                                        |
| 電話        | endUser.phone            | String  |       | X  | 電話番号                                                                                                                                                                                                                |
| 添付ファイル    | attachments              | Array   |       | X  | <p>添付ファイル-</p><ul><li>max 5件</li></ul>                                                                                                                                                                              |
| 添付ファイルID  | attachments.attachmentId | String  |       | O  | 添付ファイルID                                                                                                                                                                                                            |
| 区分1       | typeOne                  | String  |       | X  | <p>区分1</p><ul><li>拡張システムフィールド1</li></ul>                                                                                                                                                                            |
| 区分2       | typeTwo                  | String  |       | X  | <p>区分2</p><ul><li>拡張システムフィールド2</li></ul>                                                                                                                                                                            |
| 言語        | language                 | String  |       | X  | 言語                                                                                                                                                                                                                  |
| チャネル      | source                   | String  |       | X  | <p>チケットのチャネル</p><ul><li>web: ウェブ</li><li> spweb: モバイルウェブ</li><li>api: API</li><li>基本値: web</li></ul>                                                                                                                |
| ユーザーフィールド | userFields               | Array   |       | X  | ユーザーフィールド                                                                                                                                                                                                           |
| 項目コード     | userFields.code          | String  |       | O  | ユーザーフィールドの項目コード                                                                                                                                                                                                     |
| ユーザー入力値   | userFields.value         | String  |       | O  | ユーザーフィールドの入力値                                                                                                                                                                                                       |

***

#### **(3) Request Body** <a href="#ticket-request-body" id="ticket-request-body"></a>

```json
{   
    "categoryId": "2542",   
    "subject": "유형",    
    "content": "문의내용",  
    "endUser": {    
        "usercode": "st18888",  
        "email": "enduser_simple@nhn-st.com",   
        "username": "이름",   
        "phone": "13333333333"  
    },  
    "attachments": [    
        {   
            "attachmentId": "8f0dc5854d2446b6aa2e6e41a0a2f55c"  
        }   
    ],  
    "typeOne": "구분1",   
    "typeTwo": "구분2",   
    "language": "ko",   
    "source": "web",    
    "userFields": [ 
        {   
            "code": "textbox",  
            "value": "텍스트 박스 이름"    
        },  
        {   
            "code": "checkbox",     
            "value": [  
                "옵션1",  
                "옵션2"   
            ]   
        },  
        {   
            "code": "dropdown",     
            "value": "옵션1"  
        },  
        {   
            "code": "radiobutton",  
            "value": "옵션1"  
        },  
        {   
            "code": "date",     
            "value": "2022-07-11"   
        },  
        {   
            "code": "datetime",     
            "value": "2022-07-11 00:00" 
        },  
        {   
            "code": "dateperiod",   
            "value": "2022-07-01 ~ 2022-07-31"  
        },  
        {   
            "code": "datetimeperiod",   
            "value": "2022-07-01 00:00 ~ 2022-07-31 23:59"  
        },  
        {   
            "code": "agreetotheterms",  
            "value": "true" 
        }   
    ]   
}
```

***

#### **(4) 結果データ**<mark style="color:green;">**(成功)**</mark> <a href="#ticket-response-data-success" id="ticket-response-data-success"></a>

| 名称             | 変数                       | データタイプ | 説明                                                                                        |
| -------------- | ------------------------ | ------ | ----------------------------------------------------------------------------------------- |
| result.content | ticketId                 | String | チケットID                                                                                    |
|                | categoryId               | int    | 受付タイプID                                                                                   |
|                | subject                  | String | チケットのタイトル                                                                                 |
|                | content                  | String | チケット内容                                                                                    |
|                | status                   | String | <p>チケットのステータス </p><ul><li>固定値: new(アサイン待ち)</li><li>open(処理中)</li><li>closed(完了)</li></ul> |
|                | createdDt                | Long   | チケット作成時間                                                                                  |
|                | updatedDt                | Long   | チケットアップデート時間                                                                              |
|                | attachments              | Array  | 添付ファイル                                                                                    |
|                | attachments.attachmentId | String | 添付ファイルID                                                                                  |
|                | attachments.fileName     | String | 添付ファイル名                                                                                   |
|                | attachments.contentType  | String | 添付ファイルタイプ                                                                                 |
|                | attachments.disposition  | String | <p>ファイル処理方式</p><ul><li>attachment:添付ファイル</li></ul>                                        |
|                | attachments.size         | String | 添付ファイルサイズ(byte)                                                                           |
|                | attachments.createdDt    | String | チケットアップデート時間                                                                              |

***

#### **(5) Response Body&#x20;**<mark style="color:green;">**(成功)**</mark> <a href="#ticket-response-body-success" id="ticket-response-body-success"></a>

```json
{   
  "header": {   
    "resultCode": 200,  
    "resultMessage": "",    
    "isSuccessful": true    
  },    
  "result": {   
    "content": {    
      "ticketId": "T1658199661153IXTfw",    
      "subject": "유형",  
      "categoryId": 2542,   
      "categoryName": null, 
      "categoryFullName": null, 
      "status": "new",  
      "statusName": null,   
      "content": "문의내용",    
      "createdDt": 1658199661151,   
      "updatedDt": 1658199661151,   
      "contents": null, 
      "attachments": [  
        {   
          "attachmentId": "8f0dc5854d2446b6aa2e6e41a0a2f55c",   
          "fileName": "image.png",  
          "contentType": "image/png",   
          "disposition": "attachment",  
          "size": 90576,    
          "createdDt": 1658192910000    
        }   
      ],    
      "displayDt": null 
    }   
  } 
}
```

***

#### **(6) 結果データ&#x20;**<mark style="color:orange;">**(失敗)**</mark> <a href="#ticket-response-data-fail" id="ticket-response-data-fail"></a>

| 名称              | 変数         | データタイプ | 説明                                                                                 |
| --------------- | ---------- | ------ | ---------------------------------------------------------------------------------- |
| result.contents | objectName | String | ユーザーフィールドの項目コード                                                                    |
|                 | field      | String | ユーザーフィールドの項目ID                                                                     |
|                 | validate   | String | <ul><li>invalid: 無効な値</li><li>length:最大長超過</li><li>required:項目を入力してください。</li></ul> |
|                 | key        | String | "validate.ticket." + objectName + "." + validate                                   |
|                 | message    | String | "validate.ticket." + objectName + "." + validate                                   |

***

#### **(7-1) Response Body&#x20;**<mark style="color:orange;">**(失敗)**</mark> <a href="#ticket-response-body-fail-01" id="ticket-response-body-fail-01"></a>

```json
{       
  "header": {       
    "resultCode": 400,      
    "resultMessage": null,      
    "isSuccessful": false       
  },        
  "result": {       
    "contents": [       
      {     
        "objectName": "mail",       
        "field": "3",       
        "validate": "invalid",      
        "key": "validate.ticket.mail.invalid",      
        "message": "validate.ticket.mail.invalid",      
        "rejectValue": ""       
      },        
      {     
        "objectName": "phone",      
        "field": "4",       
        "validate": "length",       
        "key": "validate.ticket.phone.length",      
        "message": "validate.ticket.phone.length",      
        "rejectValue": ""       
      },        
      {     
        "objectName": "textbox",        
        "field": "721",     
        "validate": "length",       
        "key": "validate.ticket.textbox.length",        
        "message": "validate.ticket.textbox.length",        
        "rejectValue": ""       
      },        
      {     
        "objectName": "checkbox",       
        "field": "722",     
        "validate": "invalid",      
        "key": "validate.ticket.checkbox.invalid",      
        "message": "validate.ticket.checkbox.invalid",      
        "rejectValue": ""       
      },        
      {     
        "objectName": "dropdown",       
        "field": "723",     
        "validate": "invalid",      
        "key": "validate.ticket.dropdown.invalid",      
        "message": "validate.ticket.dropdown.invalid",      
        "rejectValue": ""       
      }     
    ]       
  }     
}
```

***

#### **(7-2) Response Body&#x20;**<mark style="color:orange;">**(失敗)**</mark> <a href="#ticket-response-body-fail-02" id="ticket-response-body-fail-02"></a>

* スパム ポリシーの適用による失敗
  * resultCode : 1001
    * 同一IPで1分以内に3回以上問い合わせを試みた場合、24時間チケットの作成をブロック
  * resultCode : 1002
    * 同一IPで24時間以内に10回以上問い合わせを試みた場合、24時間チケットの作成をブロック

```json
{
    "header": {
        "resultCode": 1001,
        "resultMessage": "お問い合わせ回数が上限を超えました。暫く経ってからお問い合わせください。",
        "isSuccessful": false
    },
    "result": {…...}
}
```

```json
{
    "header": {
        "resultCode": 1002,
        "resultMessage": "お問い合わせ回数が上限を超えました。暫く経ってからお問い合わせください。",
        "isSuccessful": false
    },
    "result": {…...}
}
```


---

# 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/jp/api/open-api/inquiry.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.
