# json
:::warning

 В инструкции описаны **примеры** POST-запросов. Интеграция с Mindbox не будет работать, если использовать запросы из примеров ниже без редактирования.

 Операции именно под вашу задачу создает и описывает в техническом задании менеджер проекта, если у вас нет такого документа, то обратитесь к вашему менеджеру.
:::

## Описание метода

Осуществляется с помощью POST-запроса. Название операции и набор принимаемых полей настраиваются в системе Майндбокс. Подробней про вызов метода можно прочитать [здесь](https://developers.mindbox.ru/docs/v3).

```json title="Универсальная операция"
POST https://api.mindbox.ru/v3/operations/{синхронная/асинхронная операция}?endpointId={уникальный идентификатор сайта/мобильного приложения/и т.п.}&operation={название операции}&deviceUUID={уникальный идентификатор устройства}

Accept: application/json
Content-Type: application/json
Authorization: SecretKey {Секретный ключ, обязательность уточнить у менеджера}

{
  "customer": {
    "ids": {
      "<Идентификатор>": "<Значение идентификатора>",
    },
    "lastName": "<Фамилия клиента>",
    "firstName": "<Имя клиента>",
    "middleName": "<Отчество клиента>",
    "mobilePhone": "<Мобильный телефон клиента>",
    "email": "<Емэйл клиента>",
    "password": "<Пароль>",
    "area": {
      "ids": {
        "externalId": "<Идентификатор региона клиента>"
      }
    },
    "customFields": {
      "<Дополнительное поле>": "<Значение дополнительного поля>",
      "<Дополнительное поле со множеством значений>": [
      "<Значение дополнительного поля>",
      "<Значение дополнительного поля>"
      ],
    },
    "subscriptions": [
      {
        "pointOfContact": "<Канал коммуникации Email/SMS/тд>",
        "topic": "<Тематика рассылок>",
      }
    ]
  }
}
```

## Примеры операций

<Tabs defaultValue="registration" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="registration">Регистрация</TabsTrigger>
      <TabsTrigger value="track">Трекинг входа на сайт</TabsTrigger>
      <TabsTrigger value="order_call">Заказ обратного звонка</TabsTrigger>
      <TabsTrigger value="popap">Попап подписки</TabsTrigger>
    </TabsList>
  <TabsContent value="registration">
```json 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=registration

Accept: application/json
Content-Type: application/json
Authorization: SecretKey D061p764m85bklq

{
  "customer": {
    "ids": {
      "bitrixId": "346257"
    },
    "mobilePhone": 79374134389,
    "fullName": "Петров Иван",
    "email": "test@mindbox.ru",
    "password": "Qwerty",
    "customFields": {
      "city": "Mосква",
      "b2b": true,
      "childrenNames": [
        "Маша",
        "Петя"
      ]
    },
    "subscriptions": [
      {
        "pointOfContact": "Sms",
        "topic": "News"
      },
      {
        "pointOfContact": "Email",
        "topic": "Digest"
      }
    ]
  }
}
```
  </TabsContent>
  <TabsContent value="track">
```json 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=WebSiteLogin

Accept: application/json
Content-Type: application/json
Authorization: SecretKey D061p764m85bklq

{
  "customer": {
    "ids": {
      "bitrixId": "346257"
    },
    "email": "test@mindbox.ru",
    "mobilePhone": "79374134389"
  }
}
```
  </TabsContent>
  <TabsContent value="order_call">
```json 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=callback

Accept: application/json
Content-Type: application/json
Authorization: SecretKey D061p764m85bklq

{
  "customer": {
    "mobilePhone": "79374134389"
  }
}
```
  </TabsContent>
  <TabsContent value="popap">
```json 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=popup

Accept: application/json
Content-Type: application/json
Authorization: SecretKey D061p764m85bklq

{
  "customer": {
    "email": "test@mindbox.ru",
    "subscriptions": [
      {
        "pointOfContact": "Email"
      }
    ]
  }
}
```
  </TabsContent>
</Tabs>

## Ответ

<Tabs defaultValue="registration_new" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="registration_new">Успешная регистрация нового потребителя</TabsTrigger>
      <TabsTrigger value="consumer">Если такой потребитель уже есть</TabsTrigger>
    </TabsList>
  <TabsContent value="registration_new">
```json 
{
  status: "Success"
}
```
  </TabsContent>
  <TabsContent value="consumer">
```json 
{
  status: "ValidationError",
  validationMessages: [
    {
      message: "Потребитель с таким адресом электронной почты уже зарегистрирован",
      location: "/operation/customer/email"
    },
    {
      message: "Потребитель с таким мобильным телефоном уже зарегистрирован",
      location: "/operation/customer/mobilePhone"
    }
  ]
}
```
  </TabsContent>
</Tabs>