# Объединение клиентов по запросу
:::warning

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

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

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

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

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

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

<operation>
  <customersToMerge>
    <customer>
      <ids>
        <webSiteId>{Id первого клиента}</webSiteId>
      </ids>
    </customer>
    <customer>
      <ids>
        <webSiteId>{Id второго клиента}</webSiteId>
      </ids>
    </customer>
  </customersToMerge>
  <resultingCustomer>
    <ids>
      <webSiteId>{Id результирующего клиента}</webSiteId>
    </ids>
  </resultingCustomer>
</operation>
```

В `resultingCustomer` надо передавать клиента, в которого хотим объединить. В `customersToMerge` - остальных клиентов, которых надо объединить с `resultingCustomer`. Все переданные клиенты уже должны быть в БД, чтобы произошло объединение.

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

```xml title="Объединение трех клиентов"
POST https://api.mindbox.ru/v3/operations/sync?endpointId=MindboxRu&operation=MergeCustomer

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

<operation>
  <customersToMerge>
    <customer>
      <ids>
        <webSiteId>11</webSiteId>
      </ids>
    </customer>
    <customer>
      <ids>
        <webSiteId>22</webSiteId>
      </ids>
    </customer>
  </customersToMerge>
  <resultingCustomer>
    <ids>
      <webSiteId>33</webSiteId>
    </ids>
  </resultingCustomer>
</operation>
```

В результате выполнения данной операции клиенты с идентификаторами 11 и 22 будут объединены в клиента с идентификатором 33.

## Ответ

<Tabs defaultValue="true" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="true">Ответ, если все клиенты есть</TabsTrigger>
      <TabsTrigger value="false">Ответ, если некоторых клиентов нет</TabsTrigger>
    </TabsList>
  <TabsContent value="true">
```xml 
Content-Type: application/xml

<result>
  <status>Success</status>
  <customersToMerge>
    <customer>
      <processingStatus>Found</processingStatus>
      <ids>
        <webSiteId>11</webSiteId>
      </ids>
    </customer>
    <customer>
      <processingStatus>Found</processingStatus>
      <ids>
        <webSiteId>22</webSiteId>
      </ids>
    </customer>
  </customersToMerge>
  <resultingCustomer>
    <processingStatus>Merged</processingStatus>
    <ids>
      <webSiteId>33</webSiteId>
    </ids>
  </resultingCustomer>
</result>
```
   </TabsContent>
  <TabsContent value="false">
```xml 
Content-Type: application/xml

<result>
  <status>Success</status>
  <customersToMerge>
    <customer>
      <processingStatus>Found</processingStatus>
      <ids>
        <webSiteId>11</webSiteId>
      </ids>
    </customer>
    <customer>
      <processingStatus>NotFound</processingStatus>
      <ids>
        <webSiteId>22</webSiteId>
      </ids>
    </customer>
  </customersToMerge>
  <resultingCustomer>
    <processingStatus>NotFound</processingStatus>
    <ids>
      <webSiteId>33</webSiteId>
    </ids>
  </resultingCustomer>
</result>
```
   </TabsContent>
</Tabs>