Создание пакета выплат¶
Подготовка файла¶
Что означает «в формате CSV»?
CSV (Comma Separated Values — значения, разделённые запятыми) — текстовый формат для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одну или несколько частей (ячеек), разделенных запятыми или другими разделителями (точкой с запятой, табуляцией и т.п.).
Формат файла CSV поддерживается практически всеми электронными таблицами и системами управления базами данных, включая LibreOffice Calc, Microsoft Excel, Numbers, KCells, Google Spreadsheets и др. Выбор разделителя определяется при создании либо импорте файла.
В качестве разделителя полей при создании пакетных выплат MilkyPay используется запятая — ,
, а в качестве разделителя свойств внутри объектов fields_data
, customer
, customer_metadata
— точка с запятой ;
.
Верхняя строка файла должна содержать заголовки колонок:
service
— сервис отправки выплат (название метода + код валюты);service_amount
— сумма выплаты;fields_data
— объект с реквизитами перевода (номер аккаунта, кредитной карты и т.п.) — его свойства должны совпадать с полями реквизитов, требуемых для отправки единичной выплаты соответствующим методом.reference_id
— ID запроса.
Все последующие строки — значения соответствующих полей.
Также в файл можно добавить колонки объектов с данными клиента — customer
и customer_metadata
. Если в строке присутствуют эти объекты, внутри ячейки customer
обязательно указывается значение reference_id
клиента: тогда строка пройдёт валидацию и данные о клиенте и соответствующей выплате будут добавлены в общую базу данных.
Все строки проверяются по количеству символов, который принимает выбранный метод оплаты (если подобное ограничение задано на стороне провайдера), и дополнительно проверяется суммарное количество символов в файле, которое не должно превышать 100 000 символов Base64. Таким образом, в зависимости от количества символов в среднем в строке, одним файлом можно подготовить к отправке до 1000 транзакций.
Пример организации таблицы для выплат
service,service_amount,fields_data,reference_id,description,customer,customer_metadata
test_usd,100,account:587964,BI10,test,reference_id:example_ref1;email:test@example.com;phone:+12345678945;name:John Snow,""
swift_usd,1,swift_code:TESTUAUKXXX;account_number:GB94BARC193459;recipient_name:John;country_code:UA;address:Kyiv;purpose:test,BI20,test swift,reference_id:example_ref1,meta:value;key:another_value
payment_card_usd,50,card_number:5519283812030000,BI30,test cards,"",""
Этот же пример в виде готового csv-файла →
Загрузка¶
Подготовленный файл загружается в панель управления, в разделе «Выплаты» → «Пакетные выплаты» по клику на кнопке «Создать (+ New)» .
Обязательные для заполнения поля:
- выбор валютного счета, с которого будет произведено списание средств — если валюта выбранного сервиса для выплат отличается, средства будут конвертированы по текущему курсу;
- название пакета.
Идентификатор единичной выплаты будет создан соединением двух элементов: идентификатора пакета и идентификатора выплаты, заданного в соответствующей ячейке csv-таблицы. При этом финальный ID должен быть уникальным, это необходимо учитывать: если вы используете один файл несколько раз, не изменяя значений reference_id
для выплат, укажите разные ID для пакетов. Либо оставьте поле пустым: если идентификатор пакета не указан, он будет задан автоматически по дате создания (в формате yyyy-mm-ddThh-mm-ss
).
Валидация и процессирование¶
Созданный пакет выплат проходит валидацию при загрузке файла. Система проверяет доступность указанных сервисов для выплат и соответствие параметров. Строки, в которых были допущены ошибки, пропускаются при дальнейшей обработке.
До начала процессирования элементы пакета можно отредактировать построчно. Для этого выберите пункт "Редактировать (Edit)" в выпадающем меню по кнопке (...) в конце строки:
Процессирование пакета выплат запускается кнопкой «Обработать (Process)». Если часть транзакций ещё находится в статусе ready
(подготовленные, но не отправленные), их отправку можно остановить с помощью кнопки «Прервать (Terminate)».
Просмотр результата¶
Данные по каждой из выплат отображаются как в разделе «Пакетные выплаты» в составе пакета, так и по отдельности в разделе «Выплаты»:
Если для выплаты был добавлен объект customer
со свойством reference_id
, их также можно будет просмотреть в записи данных о соответствующем клиенте.