# 대량 업로드 인증

## 대량 업로드 인증

<mark style="color:green;">`POST`</mark> `https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert`

별표(`*`)로 표시된 필드는 필수입니다.

심볼(`[*]`)은 특정 필드가 인증 객체 배열의 일부임을 나타냅니다.

#### Headers

| Name                                                   | Type   | Description                                                                                                                                   |
| ------------------------------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Content-Type<mark style="color:red;">\*</mark>         | String | application/json                                                                                                                              |
| x-http-authorization<mark style="color:red;">\*</mark> | String | <p><https://iafcertsearch.org/import-management/api-integration에서> 받은 API 키</p><p>예시:</p><p><code>x-http-authorization: <\<API 키>></code></p> |

#### Request Body

| Name                                                                                         | Type    | Description                                                                                                                                                                                                                               |
| -------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| certifications.\[\*]<mark style="color:red;">\*</mark>                                       | String  | <p>{</p><p>"certifications" : \[</p><p>{</p><p>"certificate\_number": "string",</p><p>"certification\_status": "string",</p><p><strong>. . . .</strong></p><p>}</p><p>]</p><p>}</p>                                                       |
| certifications.\[\*].certificate\_number<mark style="color:red;">\*</mark>                   | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_status<mark style="color:red;">\*</mark>                 | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certificate\_accreditation\_status                                      | String  | <p>수락된 값:</p><p>인증 받음(Accredited)</p><p>인증 받지 않음(NoneAccredited)</p>                                                                                                                                                                      |
| certifications.\[\*].certification\_type<mark style="color:red;">\*</mark>                   | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_scope                                                    | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_original\_issue\_date                                    | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_issue\_date<mark style="color:red;">\*</mark>            | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_expiry\_date<mark style="color:red;">\*</mark>           | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_name<mark style="color:red;">\*</mark>               | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_english\_name                                        | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_trading\_name                                        | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_unique\_id<mark style="color:red;">\*</mark>         | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_street\_address                                      | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_city                                                 | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_state                                                | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_post\_code                                           | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certified\_entity\_country<mark style="color:red;">\*</mark>            | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_body\_name<mark style="color:red;">\*</mark>             | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_body\_acronym\_name                                      | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].certification\_body\_identity\_number<mark style="color:red;">\*</mark> | String  |                                                                                                                                                                                                                                           |
| certifications.\[\*].confidential\_certified\_entity                                         | Boolean |                                                                                                                                                                                                                                           |
| certifications.\[\*].schemes<mark style="color:red;">\*</mark>                               | Array   | <p>예시</p><p>{</p><p>"schemes": \[</p><p>{</p><p>"scheme\_name": "string",</p><p>"standard\_list": \[</p><p>{</p><p>"standards\_name": "string"</p><p>}</p><p>]</p><p>}</p><p>]</p><p>}</p>                                                |
| certifications.\[\*].sites                                                                   | Array   | <p>예시</p><p>{</p><p>"sites": \[</p><p>{</p><p>"street": "string",</p><p>"city": "string",</p><p>"state": "string",</p><p>"country": "string",</p><p>"postcode": "string",</p><p>"scope\_description": "string</p><p>}</p><p>]</p><p>}</p> |

{% tabs %}
{% tab title="200: OK 요청 성공." %}

```json
{
  "data": {
    "success": true
  }
}
```

{% endtab %}

{% tab title="400: Bad Request API 응답에 설명된 다른 오류." %}

```json
{
    "data": {
      "errors": {
        "record_index": 0,
        "errors": [
          {
            "message": "error_message",
            "code": "error_code",
            "meta": {
              "field_name": "input"
            }
          }
        ]
      }
    }
}
```

{% endtab %}

{% tab title="401: Unauthorized 유효하지 않은 API 키를 사용할 때 발생." %}

```json
{
    "error": true,
    "timestamp": number (Epoch time),
    "elapse": number,
    "errors": {
      "message": "유효하지 않은 세션 토큰을 사용했습니다.",
      "code": "invalid_session_token"
    }
}
```

{% endtab %}

{% tab title="422: Unprocessable Entity 유효성 검사를 통과하지 못함." %}

```json
{
    "error": true,
    "timestamp": number (Epoch time),
    "elapse": number,
    "errors": {
        "code": "validation_error",
        "message": {
            "field_name": "error_message"
        }
    }
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**대량 업로드 인증**

인증 데이터 공개 중 오류를 피하기 위해 API 요청 간격을 10분으로 유지하는 것을 권장합니다.
{% endhint %}

{% hint style="info" %}
응답 데이터 예시를 보려면, 응답 설명 우측의 오른쪽 화살표를 클릭하세요.
{% endhint %}

{% hint style="info" %}
<https://api.sandbox.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert를> 사용하여 Sandbox 서버에서 테스트할 수도 있습니다.
{% endhint %}

이 메소드를 호출하는 방법을 살펴보세요:

{% tabs %}
{% tab title="cURL" %}

```shell
curl --location --request POST 'https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert' \
--header 'Content-Type: application/json' \
--header 'x-http-authorization: <<API_KEY>>' \
--data-raw '{
    "certifications": [
        {
            "certificate_number": "string",
            "certification_status": "string",
            "certificate_accreditation_status": "string",
            "certification_type": "string",
            "certification_scope": "string",
            "certification_original_issue_date": "string",
            "certification_issue_date": "string",
            "certification_expiry_date": "string",
            "certified_entity_name": "string",
            "certified_entity_english_name": "string",
            "certified_entity_trading_name": "string",
            "certified_entity_unique_id": "string",
            "certified_entity_street_address": "string",
            "certified_entity_street_city": "string",
            "certified_entity_state": "string",
            "certified_entity_post_code": "string",
            "certified_entity_country": "string",
            "certification_body_name": "string",
            "certification_body_acronym_name": "string",
            "certification_body_identity_number": "string",
            "confidential_certified_entity": "boolean",
            "schemes": [
                {
                    "scheme_name": "string",
                    "standard_list": [
                        {
                            "standards_name": "string"
                        }
                    ]
                }
            ],
            "sites": [
                {
                    "street": "string",
                    "city": "string",
                    "state": "string",
                    "country": "string",
                    "postcode": "string",
                    "scope_description": "string"
                }
            ]
        }
    ]
}'
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require "uri"
require "json"
require "net/http"

url = URI("https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["x-http-authorization"] = "<<API_KEY>>"
request.body = JSON.dump({
  "certifications": [
    {
      "certificate_number": "string",
      "certification_status": "string",
      "certificate_accreditation_status": "string",
      "certification_type": "string",
      "certification_scope": "string",
      "certification_original_issue_date": "string",
      "certification_issue_date": "string",
      "certification_expiry_date": "string",
      "certified_entity_name": "string",
      "certified_entity_english_name": "string",
      "certified_entity_trading_name": "string",
      "certified_entity_unique_id": "string",
      "certified_entity_street_address": "string",
      "certified_entity_street_city": "string",
      "certified_entity_state": "string",
      "certified_entity_post_code": "string",
      "certified_entity_country": "string",
      "certification_body_name": "string",
      "certification_body_acronym_name": "string",
      "certification_body_identity_number": "string",
      "confidential_certified_entity": "boolean",
      "schemes": [
        {
          "scheme_name": "string",
          "standard_list": [
            {
              "standards_name": "string"
            }
          ]
        }
      ],
      "sites": [
        {
          "street": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "postcode": "string",
          "scope_description": "string"
        }
      ]
    }
  ]
})

response = https.request(request)
puts response.read_body
```

{% endtab %}

{% tab title="Python" %}

```python
import http.client
import json

conn = http.client.HTTPSConnection("api.iafcertsearch.org")
payload = json.dumps({
  "certifications": [
    {
      "certificate_number": "string",
      "certification_status": "string",
      "certificate_accreditation_status": "string",
      "certification_type": "string",
      "certification_scope": "string",
      "certification_original_issue_date": "string",
      "certification_issue_date": "string",
      "certification_expiry_date": "string",
      "certified_entity_name": "string",
      "certified_entity_english_name": "string",
      "certified_entity_trading_name": "string",
      "certified_entity_unique_id": "string",
      "certified_entity_street_address": "string",
      "certified_entity_street_city": "string",
      "certified_entity_state": "string",
      "certified_entity_post_code": "string",
      "certified_entity_country": "string",
      "certification_body_name": "string",
      "certification_body_acronym_name": "string",
      "certification_body_identity_number": "string",
      "confidential_certified_entity": "boolean",
      "schemes": [
        {
          "scheme_name": "string",
          "standard_list": [
            {
              "standards_name": "string"
            }
          ]
        }
      ],
      "sites": [
        {
          "street": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "postcode": "string",
          "scope_description": "string"
        }
      ]
    }
  ]
})
headers = {
  'Content-Type': 'application/json',
  'x-http-authorization': '65603d8724a92'
}
conn.request("POST", "/api/client/v1/ab/bulk-upload-cert", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "certifications": [
        {
            "certificate_number": "string",
            "certification_status": "string",
            "certificate_accreditation_status": "string",
            "certification_type": "string",
            "certification_scope": "string",
            "certification_original_issue_date": "string",
            "certification_issue_date": "string",
            "certification_expiry_date": "string",
            "certified_entity_name": "string",
            "certified_entity_english_name": "string",
            "certified_entity_trading_name": "string",
            "certified_entity_unique_id": "string",
            "certified_entity_street_address": "string",
            "certified_entity_street_city": "string",
            "certified_entity_state": "string",
            "certified_entity_post_code": "string",
            "certified_entity_country": "string",
            "certification_body_name": "string",
            "certification_body_acronym_name": "string",
            "certification_body_identity_number": "string",
            "confidential_certified_entity": "boolean",
            "schemes": [
                {
                    "scheme_name": "string",
                    "standard_list": [
                        {
                            "standards_name": "string"
                        }
                    ]
                }
            ],
            "sites": [
                {
                    "street": "string",
                    "city": "string",
                    "state": "string",
                    "country": "string",
                    "postcode": "string",
                    "scope_description": "string"
                }
            ]
        }
    ]
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'x-http-authorization: <<API_KEY>>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"certifications\": [\n        {\n            \"certificate_number\": \"string\",\n            \"certification_status\": \"string\",\n            \"certificate_accreditation_status\": \"string\",\n            \"certification_type\": \"string\",\n            \"certification_scope\": \"string\",\n            \"certification_original_issue_date\": \"string\",\n            \"certification_issue_date\": \"string\",\n            \"certification_expiry_date\": \"string\",\n            \"certified_entity_name\": \"string\",\n            \"certified_entity_english_name\": \"string\",\n            \"certified_entity_trading_name\": \"string\",\n            \"certified_entity_unique_id\": \"string\",\n            \"certified_entity_street_address\": \"string\",\n            \"certified_entity_street_city\": \"string\",\n            \"certified_entity_state\": \"string\",\n            \"certified_entity_post_code\": \"string\",\n            \"certified_entity_country\": \"string\",\n            \"certification_body_name\": \"string\",\n            \"certification_body_acronym_name\": \"string\",\n            \"certification_body_identity_number\": \"string\",\n            \"confidential_certified_entity\": \"boolean\",\n            \"schemes\": [\n                {\n                    \"scheme_name\": \"string\",\n                    \"standard_list\": [\n                        {\n                            \"standards_name\": \"string\"\n                        }\n                    ]\n                }\n            ],\n            \"sites\": [\n                {\n                    \"street\": \"string\",\n                    \"city\": \"string\",\n                    \"state\": \"string\",\n                    \"country\": \"string\",\n                    \"postcode\": \"string\",\n                    \"scope_description\": \"string\"\n                }\n            ]\n        }\n    ]\n}");
Request request = new Request.Builder()
  .url("https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("x-http-authorization", "<<API_KEY>>")
  .build();
Response response = client.newCall(request).execute();
```

{% endtab %}

{% tab title="Node.js" %}

```javascript
var axios = require('axios');
var data = JSON.stringify({
  "certifications": [
    {
      "certificate_number": "string",
      "certification_status": "string",
      "certificate_accreditation_status": "string",
      "certification_type": "string",
      "certification_scope": "string",
      "certification_original_issue_date": "string",
      "certification_issue_date": "string",
      "certification_expiry_date": "string",
      "certified_entity_name": "string",
      "certified_entity_english_name": "string",
      "certified_entity_trading_name": "string",
      "certified_entity_unique_id": "string",
      "certified_entity_street_address": "string",
      "certified_entity_street_city": "string",
      "certified_entity_state": "string",
      "certified_entity_post_code": "string",
      "certified_entity_country": "string",
      "certification_body_name": "string",
      "certification_body_acronym_name": "string",
      "certification_body_identity_number": "string",
      "confidential_certified_entity": "boolean",
      "schemes": [
        {
          "scheme_name": "string",
          "standard_list": [
            {
              "standards_name": "string"
            }
          ]
        }
      ],
      "sites": [
        {
          "street": "string",
          "city": "string",
          "state": "string",
          "country": "string",
          "postcode": "string",
          "scope_description": "string"
        }
      ]
    }
  ]
});
var config = {
  method: 'post',
  url: 'https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert',
  headers: { 
    'Content-Type': 'application/json', 
    'x-http-authorization': '<<API_KEY>>'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert"
  method := "POST"

  payload := strings.NewReader(`{
    "certifications": [
        {
            "certificate_number": "string",
            "certification_status": "string",
            "certificate_accreditation_status": "string",
            "certification_type": "string",
            "certification_scope": "string",
            "certification_original_issue_date": "string",
            "certification_issue_date": "string",
            "certification_expiry_date": "string",
            "certified_entity_name": "string",
            "certified_entity_english_name": "string",
            "certified_entity_trading_name": "string",
            "certified_entity_unique_id": "string",
            "certified_entity_street_address": "string",
            "certified_entity_street_city": "string",
            "certified_entity_state": "string",
            "certified_entity_post_code": "string",
            "certified_entity_country": "string",
            "certification_body_name": "string",
            "certification_body_acronym_name": "string",
            "certification_body_identity_number": "string",
            "confidential_certified_entity": "boolean",
            "schemes": [
                {
                    "scheme_name": "string",
                    "standard_list": [
                        {
                            "standards_name": "string"
                        }
                    ]
                }
            ],
            "sites": [
                {
                    "street": "string",
                    "city": "string",
                    "state": "string",
                    "country": "string",
                    "postcode": "string",
                    "scope_description": "string"
                }
            ]
        }
    ]
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("x-http-authorization", "<<API_KEY>>")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
var client = new RestClient("https://api.iafcertsearch.org/api/client/v1/ab/bulk-upload-cert");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("x-http-authorization", "<<API_KEY>>");
var body = @"{" + "\n" +
@"    ""certifications"": [" + "\n" +
@"        {" + "\n" +
@"            ""certificate_number"": ""string""," + "\n" +
@"            ""certification_status"": ""string""," + "\n" +
@"            ""certificate_accreditation_status"": ""string""," + "\n" +
@"            ""certification_type"": ""string""," + "\n" +
@"            ""certification_scope"": ""string""," + "\n" +
@"            ""certification_original_issue_date"": ""string""," + "\n" +
@"            ""certification_issue_date"": ""string""," + "\n" +
@"            ""certification_expiry_date"": ""string""," + "\n" +
@"            ""certified_entity_name"": ""string""," + "\n" +
@"            ""certified_entity_english_name"": ""string""," + "\n" +
@"            ""certified_entity_trading_name"": ""string""," + "\n" +
@"            ""certified_entity_unique_id"": ""string""," + "\n" +
@"            ""certified_entity_street_address"": ""string""," + "\n" +
@"            ""certified_entity_street_city"": ""string""," + "\n" +
@"            ""certified_entity_state"": ""string""," + "\n" +
@"            ""certified_entity_post_code"": ""string""," + "\n" +
@"            ""certified_entity_country"": ""string""," + "\n" +
@"            ""certification_body_name"": ""string""," + "\n" +
@"            ""certification_body_acronym_name"": ""string""," + "\n" +
@"            ""certification_body_identity_number"": ""string""," + "\n" +
@"            ""confidential_certified_entity"": ""boolean""," + "\n" +
@"            ""schemes"": [" + "\n" +
@"                {" + "\n" +
@"                    ""scheme_name"": ""string""," + "\n" +
@"                    ""standard_list"": [" + "\n" +
@"                        {" + "\n" +
@"                            ""standards_name"": ""string""" + "\n" +
@"                        }" + "\n" +
@"                    ]" + "\n" +
@"                }" + "\n" +
@"            ]," + "\n" +
@"            ""sites"": [" + "\n" +
@"                {" + "\n" +
@"                    ""street"": ""string""," + "\n" +
@"                    ""city"": ""string""," + "\n" +
@"                    ""state"": ""string""," + "\n" +
@"                    ""country"": ""string""," + "\n" +
@"                    ""postcode"": ""string""," + "\n" +
@"                    ""scope_description"": ""string""" + "\n" +
@"                }" + "\n" +
@"            ]" + "\n" +
@"        }" + "\n" +
@"    ]" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
```

{% endtab %}
{% endtabs %}
