# xml
:::warning

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

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

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

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

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

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

<operation>
  <customer>
    <authenticationTicket>{Секретный тикет}</authenticationTicket>
    <ids>
      <webSiteUserId>{Идентификатор клиента}</webSiteUserId>
    </ids>
    <email>{Емэйл клиента}</email>
    <mobilePhone>{Мобильный телефон}</mobilePhone>
    <lastName>{Фамилия клиента}</lastName>
    <firstName>{Имя клиента}</firstName>
    <birthDate>{Дата рождения в формате YYYY-MM-DD}</birthDate>
    <password>{Пароль}</password>
    <subscriptions>
      <subscription>
        <pointOfContact>{Канал коммуникации Email/SMS/тд}</pointOfContact>
        <topic>{Тематика рассылок}</topic>
        <isSubscribed>{Статус подписки true/false}</isSubscribed>
      </subscription>
    </subscriptions>
    <customFields>
      <Дополнительное поле>{Значение дополнительного поля}</Дополнительное поле>
    </customFields>
  </customer>
</operation>
```

Секретный тикет нужен, если сервис дергается без секретного ключа напрямую с клиента. Его можно сформировать самостоятельно по алгоритму описанному [здесь](https://developers.mindbox.ru/docs/%D1%82%D0%B8%D0%BA%D0%B5%D1%82-%D0%B4%D0%BB%D1%8F-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%BD%D0%B0-%D1%81%D0%B0%D0%B9%D1%82%D0%B5)\
Также он может понадобится, если потребитель не аутентифицирован и переходит из письма по секретной ссылке. Тогда тикет берется из ссылки.

Чтобы затереть поле, надо передать тег с атрибутом `clear`. Например: `<mobilePhone clear="true"/>`

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

<Tabs defaultValue="data_editing" className="w-full">
  <ScrollArea className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="data_editing">Редактирование данных в личном кабинете</TabsTrigger>
      <TabsTrigger value="data_editing_ticket">Редактирование данных с аутентификацией по тикету</TabsTrigger>
      <TabsTrigger value="password_change">Замена пароля на новый с помощью секретной ссылки</TabsTrigger>
      <TabsTrigger value="clear">Очистка данных клиента</TabsTrigger>
    </TabsList>
  <ScrollBar orientation="horizontal" />
  </ScrollArea>
    <TabsContent value="data_editing">
```xml 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=EditCustomer

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

<operation>
  <customer>
    <ids>
      <bitrixId>346257</bitrixId>
    </ids>
    <email>pivan@mindbox.ru</email>
    <mobilePhone>79374134389</mobilePhone>
    <lastName>Петров</lastName>
    <firstName>Иван</firstName>
    <password>Qwerty</password>
    <customFields>
      <city>Mосква</city>
      <b2b>true</b2b>
    </customFields>
    <subscriptions>
      <subscription>
        <pointOfContact>Sms</pointOfContact>
        <topic>Recommendation</topic>
        <isSubscribed>false</isSubscribed>
      </subscription>
      <subscription>
        <pointOfContact>Email</pointOfContact>
        <topic>Recommendation</topic>
        <isSubscribed>true</isSubscribed>
      </subscription>
    </subscriptions>
  </customer>
</operation>
```
  </TabsContent>
  <TabsContent value="data_editing_ticket">
```xml 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=EditCustomer

Accept: application/xml
Content-Type: application/xml

<operation>
  <customer>
    <authenticationTicket>
      56D6169641757468656E74696361746|CA49A96250AB940A81C1E48BEF66BC48B8711
    </authenticationTicket>
    <email>pivan@mindbox.ru</email>
    <mobilePhone>79374134389</mobilePhone>
    <lastName>Петров</lastName>
    <firstName>Иван</firstName>
    <customFields>
      <city>Mосква</city>
      <b2b>true</b2b>
    </customFields>
    <subscriptions>
      <subscription>
        <pointOfContact>Sms</pointOfContact>
        <topic>Recommendation</topic>
        <isSubscribed>false</isSubscribed>
      </subscription>
      <subscription>
        <pointOfContact>Email</pointOfContact>
        <topic>Recommendation</topic>
        <isSubscribed>true</isSubscribed>
      </subscription>
    </subscriptions>
  </customer>
</operation>
```
  </TabsContent>
  <TabsContent value="password_change">
```xml
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=EditCustomer

Accept: application/xml
Content-Type: application/xml

<operation>
  <customer>
    <authenticationTicket>
      56D6169641757468656E74696361746|CA49A96250AB940A81C1E48BEF66BC48B8711
    </authenticationTicket>
    <password>Qwerty123</password>
  </customer>
</operation>
```
  </TabsContent>
  <TabsContent value="clear">
```xml 
POST https://api.mindbox.ru/v3/operations/async?endpointId=MindboxRu&operation=EditCustomer

Accept: application/xml
Content-Type: application/xml
Authorization: Mindbox secretKey="{Секретный ключ}"

<operation>
  <customer>
    <ids>
      <bitrixId>346257</bitrixId>
    </ids>
    <email clear="true"/>
    <mobilePhone clear="true"/>
    <lastName clear="true"/>
    <firstName clear="true"/>
    <password clear="true"/>
    <customFields>
      <city clear="true"/>
      <b2b clear="true"/>
    </customFields>
  </customer>
</operation>
```
  </TabsContent>
</Tabs>
