# Створення компанії POST /api/external/company/create

Метод створює компанію у статусі `DRAFT`, з договором-офертою `OFFER`, створює чернетку ключа суперадміністратора та привʼязує компанію до зовнішньої системи.

Якщо компанія з таким кодом вже привʼязана до цієї зовнішньої системи, метод не створює нову компанію, а повертає існуючий обʼєкт `ESSCompany`.

Якщо компанія з таким кодом вже активна, але не привʼязана до цієї зовнішньої системи, метод повертає помилку `company_already_active`.

##### **REQUEST**

<div class="c_container__c89" id="bkmrk-url-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4-%D0%B7%D0%B0%D0%BF%D0%B8%D1%82%D1%83-pos"><div class="copy-code-container"><div class="wy-table-responsive"><table class="colwidths-given docutils align-default" style="width: 78.8095%;"><colgroup><col style="width: 21.1568%;"></col><col style="width: 78.8043%;"></col></colgroup><tbody><tr class="row-odd"><td>**URL**

</td><td>  
</td></tr><tr class="row-even"><td>Метод запиту

</td><td>POST

</td></tr><tr class="row-odd"><td>URL запиту

</td><td>**/api/external/company/create**

</td></tr><tr><td>**Authorization**

</td><td>  
</td></tr><tr><td>Auth type

</td><td>API key</td></tr><tr><td>Key / Value

</td><td>**x-system-id** - токен, отриманий при підключенні</td></tr><tr class="row-odd"><td>**Headers**

</td><td> </td></tr><tr class="row-odd"><td>Content-Type

</td><td>application/json

</td></tr><tr><td>**REQUEST**

</td><td> </td></tr><tr><td>REQUEST Body

</td><td>**info** - дані суперадміністратора компанії, для якого буде створено чернетку ключа.

**company -** обʼєкт з даними про компанію [ESSCompany](https://wiki-v2.edin.ua/books/robota-z-api-portalu-edin-id/page/objekt-esscompany)

</td></tr></tbody></table>

</div></div></div>**COMPANY:**

<div class="c_tableWrapper__a48" id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B5-%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%A2%D0%B8%D0%BF-1-%D0%9E%D0%BF"><table style="width: 78.8095%;"><thead><tr><th style="width: 16.9098%;">Поле</th><th style="width: 13.2626%;">Формат</th><th style="width: 16.5782%;">Тип <sup>1</sup></th><th style="width: 53.2162%;">Опис</th></tr></thead><tbody><tr><td style="width: 16.9098%;">`fullName`</td><td style="width: 13.2626%;">string</td><td style="width: 16.5782%;">M</td><td style="width: 53.2162%;">Повна назва компанії/ФОП.</td></tr><tr><td style="width: 16.9098%;">`shortName`</td><td style="width: 13.2626%;">string</td><td style="width: 16.5782%;">M</td><td style="width: 53.2162%;">Скорочена назва компанії/ФОП.</td></tr><tr><td style="width: 16.9098%;">`fullNameEN`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Повна назва англійською.</td></tr><tr><td style="width: 16.9098%;">`shortNameEN`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Скорочена назва англійською.</td></tr><tr><td style="width: 16.9098%;">`type`</td><td style="width: 13.2626%;">enum</td><td style="width: 16.5782%;">M</td><td style="width: 53.2162%;">Тип компанії: `COMPANY` або `SELF_EMPLOYED`.</td></tr><tr><td style="width: 16.9098%;">`code`</td><td style="width: 13.2626%;">string</td><td style="width: 16.5782%;">M</td><td style="width: 53.2162%;">Для компанії — ЄДРПОУ, для ФОП — РНОКПП.</td></tr><tr><td style="width: 16.9098%;">`ipn`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">ІПН платника ПДВ, якщо є.</td></tr><tr><td style="width: 16.9098%;">`country`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Країна.</td></tr><tr><td style="width: 16.9098%;">`state`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Область/регіон.</td></tr><tr><td style="width: 16.9098%;">`locality`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Населений пункт.</td></tr><tr><td style="width: 16.9098%;">`street`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">Адреса.</td></tr><tr><td style="width: 16.9098%;">`ceoName`</td><td style="width: 13.2626%;">string/null</td><td style="width: 16.5782%;">O</td><td style="width: 53.2162%;">ПІБ керівника.</td></tr></tbody></table>

</div><dl class="footnote brackets" id="bkmrk-1---%D0%9F%D1%96%D0%B4-%D0%B2%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F%D0%BC-"><dt class="label">---

</dt><dt class="label" id="bkmrk-1---%D0%9F%D1%96%D0%B4-%D0%B2%D0%B8%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F%D0%BC--1"><span class="brackets">1 - </span>Під визначенням колонки **Тип поля** мається на увазі скорочене позначення:</dt><dd>- M (mandatory) — обов’язкові до заповнення поля;
- O (optional) — необов’язкові (опціональні) до заповнення поля.

</dd></dl><div class="c_tableWrapper__a48" id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B5-%D0%A2%D0%B8%D0%BF-%D0%9E%D0%B1%D0%BE%D0%B2%CA%BC%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B5"></div>Поля договору у запиті передавати не потрібно. Сервер завжди створює компанію з:

<div class="c_tableWrapper__a48" id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B5-%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%BD%D1%8F-status"><table><thead><tr><th>Поле</th><th>Значення</th></tr></thead><tbody><tr><td>`status`</td><td>`DRAFT`</td></tr><tr><td>`agreemType`</td><td>`OFFER`</td></tr><tr><td>`agreemNumber`</td><td>`null`</td></tr><tr><td>`agreemDate`</td><td>`0`</td></tr></tbody></table>

</div>**INFO:**

<div class="c_tableWrapper__a48" id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B5-%D0%A2%D0%B8%D0%BF-%D0%9E%D0%B1%D0%BE%D0%B2%CA%BC%D1%8F%D0%B7%D0%BA%D0%BE%D0%B2%D0%B5-1"><table><thead><tr><th>Поле</th><th>Тип</th><th>Обовʼязкове</th><th>Опис</th></tr></thead><tbody><tr><td>`fullName`</td><td>string</td><td>так</td><td>ПІБ суперадміністратора.</td></tr><tr><td>`ipn`</td><td>string</td><td>так</td><td>ІПН/РНОКПП суперадміністратора.</td></tr><tr><td>`phone`</td><td>string</td><td>так</td><td>Телефон у форматі `380XXXXXXXXX`.</td></tr><tr><td>`email`</td><td>string</td><td>так</td><td>Email суперадміністратора.</td></tr><tr><td>`organizationUnit`</td><td>string/null</td><td>ні</td><td>Підрозділ для даних ключа.</td></tr><tr><td>`position`</td><td>string/null</td><td>ні</td><td>Посада для даних ключа.</td></tr></tbody></table>

</div><div class="c_container__c89" id="bkmrk-"><div class="copy-code-container"><div class="wy-table-responsive" id="bkmrk-url-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4-%D0%B7%D0%B0%D0%BF%D0%B8%D1%82%D1%83-get"></div></div></div><div class="c_container__c89" id="bkmrk--1"><div class="copy-code-container"><details><summary>JSON приклад запиту</summary>

<div class="c_container__c89" id="bkmrk--2"><div class="copy-code-container">  
</div></div>```json
{
  "company": {
    "fullName": "ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \"ТЕСТ\"",
    "shortName": "ТОВ \"ТЕСТ\"",
    "fullNameEN": "TEST LLC",
    "shortNameEN": "TEST LLC",
    "type": "COMPANY",
    "code": "00000000",
    "ipn": null,
    "country": "UA",
    "state": "м. Київ",
    "locality": "Київ",
    "street": "вул. Тестова, 1",
    "ceoName": "Іваненко Іван Іванович"
  },
  "info": {
    "fullName": "Іваненко Іван Іванович",
    "ipn": "0000000000",
    "phone": "380671234567",
    "email": "ivanenko@example.com",
    "organizationUnit": "Адміністрація",
    "position": "Директор"
  }
}

```

<div class="c_container__c89" id="bkmrk--3"><div class="copy-code-container">  
</div></div></details></div></div>##### **RESPONSE** 

У відповідь повертаються статус 200 та обʼєкт [ESSCompany.](https://wiki-v2.edin.ua/books/robota-z-api-portalu-edin-id/page/objekt-esscompany)

<div class="c_container__c89" id="bkmrk--4"></div>##### **CURL**

```bash
curl -X POST 'https://host/api/external/company/create' \
  -H 'x-system-id: 019eb581-307b-7562-8a1f-20227511e898' \
  -H 'Content-Type: application/json' \
  -d '{
    "company": {
      "fullName": "ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \"ТЕСТ\"",
      "shortName": "ТОВ \"ТЕСТ\"",
      "fullNameEN": "TEST LLC",
      "shortNameEN": "TEST LLC",
      "type": "COMPANY",
      "code": "00000000",
      "ipn": null,
      "country": "UA",
      "state": "м. Київ",
      "locality": "Київ",
      "street": "вул. Тестова, 1",
      "ceoName": "Іваненко Іван Іванович"
    },
    "info": {
      "fullName": "Іваненко Іван Іванович",
      "ipn": "0000000000",
      "phone": "380671234567",
      "email": "ivanenko@example.com",
      "organizationUnit": "Адміністрація",
      "position": "Директор"
    }
  }'
```

##### **Помилки**

<table id="bkmrk-type-%D0%9E%D0%BF%D0%B8%D1%81-access_den" style="width: 99.5238%;"><thead><tr><th style="width: 24.3836%;">`type`</th><th style="width: 75.5893%;">Опис</th></tr></thead><tbody><tr><td style="width: 24.3836%;">`access_denied`</td><td style="width: 75.5893%;">Невірний `x-system-id` або доступ за IP заборонений.</td></tr><tr><td style="width: 24.3836%;">`empty_body`</td><td style="width: 75.5893%;">Тіло запиту порожнє.</td></tr><tr><td style="width: 24.3836%;">`invalid_body`</td><td style="width: 75.5893%;">Некоректний JSON або відсутні обовʼязкові поля.</td></tr><tr><td style="width: 24.3836%;">`company_already_active`</td><td style="width: 75.5893%;">Компанія з таким кодом вже активна, але не привʼязана до цієї зовнішньої системи.</td></tr><tr><td style="width: 24.3836%;">`unknown_company`</td><td style="width: 75.5893%;">Компанію не знайдено в публічних реєстрах, але не коректний ІПН/РНОКПП</td></tr><tr><td style="width: 24.3836%;">`wrong_ipn`</td><td style="width: 75.5893%;">Користувач з таким телефоном вже існує, але має інший ІПН/РНОКПП.</td></tr><tr><td style="width: 24.3836%;">`offline_exists`</td><td style="width: 75.5893%;">Користувач з таким телефоном вже існує з offline-ідентифікацією.</td></tr></tbody></table>