> For the complete documentation index, see [llms.txt](https://docs.contiple.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.contiple.com/jp/api/open-api/inquiry.md).

# お問合せ

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

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": {…...}
}
```
