> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/learn/3.-valyuty-i-dengi/04-fields-validators.md).

# Поля, файлы и валидаторы

Настройте реквизиты, обычные поля и защищённую загрузку файлов для валют и направлений

## Что вы получите

Клиент увидит понятные поля для адреса, номера карты или документа. Обычные значения будут проверяться до создания заявки, а загруженные файлы попадут в связанную заявку и будут доступны только клиенту-владельцу и сотруднику с доступом к ней.

В системе есть два разных уровня настройки:

| Уровень             | Для чего нужен                                                                                 |
| ------------------- | ---------------------------------------------------------------------------------------------- |
| Поля счёта валюты   | Основной адрес кошелька, номер карты или счёта со стороны «Отдаю» и «Получаю»                  |
| Дополнительные поля | Дополнительный текст, выбор значения или один либо несколько файлов для валюты или направления |

## Настройте основной реквизит валюты

Откройте нужную валюту в **«Основное» — «Валюты» — «Список валют»**, затем перейдите в **«Общее» — «Доп. поля»**.

| Поле панели                     | Пример для криптовалюты |
| ------------------------------- | ----------------------- |
| Название для поля «Номер счета» | Адрес кошелька          |
| Название поля «со счета»        | С адреса                |
| Название поля «на счет»         | На адрес                |

Для банковской валюты используйте понятные подписи: «Номер карты», «С номера карты» и «На номер карты». Название должно объяснять действие клиенту, а не повторять внутренний термин панели.

{% tabs %}
{% tab title="Криптовалюта в «Отдаю»" %}
**«Скрыть номер счёта для «Отдаю»»** можно включить, если адрес отправителя не используется для AML, возврата, сопоставления или связи с провайдером. Скрытие не создаёт заменяющее поле.
{% endtab %}

{% tab title="Криптовалюта в «Получаю»" %}
Поле адреса выплаты обычно должно быть видно. Клиент обязан указать адрес именно той сети, которая выбрана в форме.
{% endtab %}

{% tab title="Банк или карта" %}
Не скрывайте номер карты или счёта, если без него нельзя выполнить выплату, проверить отправителя или провести возврат.
{% endtab %}
{% endtabs %}

Поля **«Мин. кол-во символов»** и **«Макс. кол-во символов»** задавайте по подтверждённому формату сети или банка. Не копируйте длину адреса из другой сети.

В полях **«Валидатор поля «со счета»»** и **«Валидатор поля «на счет»»** выбирайте только проверку нужной валюты и сети. Например, валидаторы Bitcoin и Litecoin не взаимозаменяемы.

## Выберите область дополнительного поля

Откройте один из двух разделов:

* **«Основное» — «Валюты» — «Доп. поля валют»** — если поле зависит от выбранной валюты;
* **«Основное» — «Направление обмена» — «Доп. поля»** — если поле относится к конкретному направлению.

Не создавайте одинаковое обязательное поле на обоих уровнях: клиент может получить два запроса на одни и те же данные.

## Создайте обычное или файловое поле

{% stepper %}
{% step %}

### Нажмите «Добавить»

Выберите валюту или направление, для которого должно работать поле, и заполните название на используемых языках. Если есть описание, кратко объясните, что нужно предоставить.
{% endstep %}

{% step %}

### Решите, где показывать название

Включите **«Показывать название над полем»**, если без подписи клиент не поймёт назначение поля. После сохранения проверьте, что название не дублируется соседним текстом формы.
{% endstep %}

{% step %}

### Выберите «Способ заполнения поля»

**«Стандартное поле»** принимает обычное значение. **«Загрузка файлов»** показывает клиенту загрузчик вместо текстового ввода.
{% endstep %}

{% step %}

### Сохраните правильный режим

Способ заполнения фиксируется при создании и затем не меняется. Если выбран неверный режим, создайте новое поле с правильной настройкой и только после проверки отключите или удалите старое.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
Не превращайте существующее текстовое поле в файловое обходным способом. У этих режимов разные данные, проверка и отображение в заявке.
{% endhint %}

## Настройте загрузку файлов

После создания откройте файловое поле для редактирования.

{% stepper %}
{% step %}

### Выберите разрешённые типы

В поле **«Разрешённые типы файлов»** отметьте хотя бы один формат: PNG, JPEG, PDF, Excel или CSV. Разрешайте только то, что команда действительно умеет безопасно проверять.
{% endstep %}

{% step %}

### Ограничьте размер одного файла

В поле **«Максимальный размер одного файла, МБ»** укажите рабочий предел. Значение `0` снимает только ограничение этого поля; физические лимиты PHP, веб-сервера и платформы продолжают действовать.
{% endstep %}

{% step %}

### Ограничьте количество

В поле **«Максимальное количество файлов»** укажите нужное число. Для нового поля по умолчанию доступен один файл. Значение `0` снимает ограничение количества на уровне поля, поэтому используйте его только при утверждённой необходимости.
{% endstep %}

{% step %}

### Проверьте клиентский загрузчик

Клиент может выбрать файлы, перетащить их в область загрузки или вставить из буфера обмена. До отправки формы он должен видеть форматы, ограничения, прогресс и список вложений.
{% endstep %}
{% endstepper %}

Форма не должна создавать заявку, пока обязательная загрузка не завершена, файл отклонён или повторная отправка ещё выполняется. Превышение допустимого количества нужно исправить удалением лишних файлов, а не повторным нажатием отправки.

## Проверьте заявку и доступ

1. Используйте обезличенные PNG, PDF и при необходимости табличный файл допустимого размера.
2. Проверьте выбор, перетаскивание и вставку из буфера обмена.
3. Попробуйте запрещённый формат, слишком большой файл и превышение количества.
4. Создайте контрольную заявку и откройте её клиентом-владельцем.
5. Откройте ту же заявку в панели сотрудника с разрешённым доступом.
6. Убедитесь, что PNG и JPEG открываются в предпросмотре, а PDF, Excel и CSV скачиваются.
7. Откройте публичную страницу отслеживания без авторизации и убедитесь, что приватные вложения там не раскрываются.

{% hint style="danger" %}
Не загружайте паспорт, банковскую карту или другой реальный документ для проверки курса. Используйте специально подготовленные обезличенные файлы и утверждённый срок хранения.
{% endhint %}

## Этап завершён, если

* [ ] подписи основного реквизита совпадают с валютой и сетью;
* [ ] поле «Отдаю» скрыто только при безопасном рабочем процессе;
* [ ] длина и валидатор проверены правильным и неправильным значением;
* [ ] дополнительное поле создано на одном подходящем уровне;
* [ ] способ заполнения выбран до создания и понятен команде;
* [ ] файловые форматы, размер и количество ограничены осознанно;
* [ ] незавершённая или ошибочная загрузка блокирует отправку формы;
* [ ] клиент и оператор видят файлы в заявке, а посторонний посетитель — нет.

Далее настройте [сети для валют](/learn/3.-valyuty-i-dengi/05-currency-networks.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/learn/3.-valyuty-i-dengi/04-fields-validators.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
