> For the complete documentation index, see [llms.txt](https://manual.boxexchanger.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://manual.boxexchanger.net/obmen/parser-kursov/bestchange-v2.md).

# BestChange v2

## Установка парсера

Используя параметры ниже, установите парсер через функционал "**Install plugin**" по инструкции [Install plugin](/dopolnitelnye-sistemy/install-plugin.md).

<details>

<summary>Параметры для Install Plugin</summary>

**Plugin type**: <mark style="color:orange;">**`Parser-rate module`**</mark>

**Plugin URL**: <mark style="color:orange;">**`@boxexchanger-plugins/parser-bestchange-v2`**</mark>

**Directory path**: <mark style="color:orange;">**`bestchange-v2`**</mark>

**Auth: (Deploy token)**: оставляем пустым

**Package tag**: <mark style="color:orange;">**`latest`**</mark>

</details>

## Настройка парсера

1. Для запуска парсера, следуйте инструкции [Парсер курсов](/obmen/parser-kursov.md#konfiguraciya-parsera).

{% hint style="info" %}
Для применения изменений в поле, необходимо соглашаться с перезагрузкой процессов сервера.&#x20;
{% endhint %}

2. В поле **"api\_key**" укажите API ключ (см. уточнение ниже) для получения курсов обмена -> нажмите "**Применить изменения (API\_KEY)**.

{% hint style="info" %}
API ключ для получения курсов обмена вы можете сгенерировать в ЛК BestChange по ссылке: <https://www.bestchange.ru/partner/profile.html>. На странице "Профиль" - в разделе "API для получения курсов обмена", согласитесь с условиями использования BestChange -> нажмите "[**Получить**](#user-content-fn-1)[^1]" -> [**скопируйте**](#user-content-fn-2)[^2] API ключ.
{% endhint %}

3. Поле "**batch**" рекомендуем оставлять без изменений. Значение в данном поле отвечает за количество курсов, которое будет обрабатываться в одном API запросе. Максимальное значение: 500.
4. В поле "**places**" укажите места по которым необходимо получить курсы. К примеру, если необходимо получить курсы по 1,2 и 4 месту из списка BestChange по паре - введите <mark style="color:orange;">**`1,2,4`**</mark> -> нажмите "**Применить изменения (PLACES)"**
5. В поле "**routes**" введите пары, по которым необходимо получить курсы. **Подробнее о формате и особенностях ввода пар:**

{% hint style="info" %}
Обратите внимание, в качестве XML для валют и городов необходимо использовать сигнатуры, представленные на странице BestChange: <https://www.bestchange.ru/wiki/rates.html>
{% endhint %}

{% hint style="info" %}

* **Особенности при указании пар:**\
  а) **Безналичные валюты:** <mark style="color:orange;">**`XML1_XML2`**</mark>. К примеру, для того чтобы получить курсы по паре <mark style="color:green;">**USDT TRC20 -> Monobank UAH**</mark> необходимо ввести <mark style="color:orange;">**`USDTTRC20_MONOBUAH`**</mark>\
  б) **Наличные валюты**: <mark style="color:orange;">**`XML1_XML2-CITY`**</mark>. К примеру, для того чтобы получить курсы по паре <mark style="color:green;">**Cash USD KIEV -> USDT TRC20**</mark> необходимо ввести <mark style="color:orange;">**`CASHUSD_USDTTRC20-KIEV`**</mark>
* Пары необходимо разделять запятой (<mark style="color:orange;">**`,`**</mark>). **Пример**: <mark style="color:orange;">**`USDTTRC20_MONOBUAH,CASHUSD_USDTTRC20-KIEV,BTC_USDTTRC20`**</mark>
  {% endhint %}

-> нажмите "**Применить изменения (ROUTES)"**.

6. В поле "**cityKey**" укажите формат отображения названия города в паре:\
   а) Значение <mark style="color:orange;">**`name`**</mark> (**по умолчанию**). При таком параметре, название города в админ панели будет отображаться как имя города на английском языке, которое указано на [странице](https://www.bestchange.com/wiki/rates.html) BestChange. К примеру, если в поле "**routes**" ввести <mark style="color:orange;">**`CASHUSD_USDTTRC20-WRCL`**</mark>, то в админ панели пара будет отображаться как <mark style="color:green;">**TOP\_1 - CASHUSD - WROCLAW -> USDTTRC20**</mark>.\
   б) Значение <mark style="color:orange;">**`code`**</mark>. При таком параметре, название города в админ панели будет отображаться как сигнатура города, которая указана на [странице](https://www.bestchange.com/wiki/rates.html) BestChange. К примеру, если в поле "**routes**" ввести <mark style="color:orange;">**`CASHUSD_USDTTRC20-WRCL`**</mark>, то в админ панели пара будет отображаться как <mark style="color:green;">**TOP\_1 - CASHUSD - WRCL -> USDTTRC20**</mark>.\
   \
   -> нажмите "**Применить изменения (CITYKEY)"**.

{% hint style="warning" %}
В случае изменения формата отображения города в поле "**cityKey**" при условии, что парсер активен и в нем существуют пары - существующие курсы с предущим названием города перестанут обновляться, однако будут добавлены новые курсы, которые указаны в поле "**routes**" с обновленным названием города.&#x20;
{% endhint %}

6. В поле "**sourceRate**" укажите источник курса:\
   а) Значение <mark style="color:orange;">**`bestchange.ru`**</mark>. При таком параметре курсы будут парситься из русскоязычной версии BestChange.\
   б) Значение <mark style="color:orange;">**`bestchange.com`**</mark>. При таком параметре курсы будут парситься из англоязычной версии BestChange.
7. В поле "**Интервал**" укажите в миллисекундах частоту обновления курсов. Рекомендуемое значение: `15000` -> нажмите "**Применить изменения (INTERVAL)".**
8. В поле "**ignoreChangerIds**" вы можете указать BestChange id обменных сервисов, курсы которых будут игнорироваться при парсинге.&#x20;

{% hint style="success" %}
Обязательно добавьте в поле "**ignoreChangerIds**" BestChange Id вашего обменного сервиса. Данный шаг необходим для того чтобы парсер игнорировал курс вашего обменника при получении курсов и учитывал лишь курсы ваших конкурентов.
{% endhint %}

9. Парсер настроен.&#x20;

{% hint style="info" %}
Перед использованием парсера также ознакомьтесь с разделом [Парсер курсов](/obmen/parser-kursov.md#prioritetnost-obnovlenii-kursov) для понимания порядка обновления курсов.&#x20;
{% endhint %}

### Валидация курсов

В случае, если на BestChange отсутствуют курсы по паре, указанной в поле "**routes**" -> система установит курс 0 для такой пары.&#x20;

* На клиентской части, направление с курсом 0 будет отображаться, однако станет [**недоступным**](#user-content-fn-3)[^3] для создания заявки.&#x20;
* В админ панели на странице "**Настройка направлений"** - в поле с направлением, у которого выставлен курс 0, будет отображаться <mark style="color:red;">**знак предупреждения**</mark>. При наведении на данный знак, будет отображаться комментарий "[**Parser rate invalid rate can't be 0**](#user-content-fn-4)[^4]".
* В случае, если на BestChange курс по паре появится, то в парсере курс автоматически обновится и направление будет снова доступно для создания заявки на клиентской части. В админ панели, в свою очередь, курс также обновится и пропадет знак предупреждения. &#x20;

[^1]: ![](/files/qkJKckePKCAWGlVNO0bL)

[^2]: ![](/files/y80dCfrtMofMmsuLnP6A)

[^3]: ![](/files/mvSNZMjYZdre6brYsoJ3)

[^4]: ![](/files/bff273ygmF8npqGLBwOh)
