Обозначение
Сплитование позволяет перевести средства разным получателям посредством одной транзакции
Предварительная настройка
Для создания пользователей необходимо воспользоваться роутом https://cloudpayments.atlassian.net/wiki/spaces/CA/pages/2611707931#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D1%82%D0%B5%D0%BB%D1%8F
Необходимо получить платежные идентификаторы пользователей (layoutId). Они возвращаются из ответа создания получателей или их можно получить по методу поиска пользователей https://cloudpayments.atlassian.net/wiki/spaces/CA/pages/2611707931#%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9
Проведение платежа
Получение publicId
Перед проведением платежа определяем терминал, по которому будет происходить оплата.
Адрес: https://api.cloudtips.ru/api/payment/publicid
Тип: POST
Запрос:
Наименование | Тип | Обязательность(в флоу сплитования) | Описание |
---|---|---|---|
layoutId | String | Да | Идентификатор платежной ссылки (один из пользователей, который участвует в сплитовании) |
split | Array | Нет | Массив сотрудников, для которых будет применено сплитование |
split[].layoutId | string | Нет | Идентификатор платежной страницы сотрудника |
split[].amount | decimal | Нет | Сумма, которая будет переводиться конкретному получателю |
Пример запроса:
{ "layoutId": "layoutId2", "split" : [ { "layoutId" : "layoutId1", "amount" : 100 }, { "layoutId" : "layoutId2", "amount" : 200 } ] }
Ответ:
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
publicId | String | Да | Уникальный идентификатор терминала |
succeed | Boolean | Да | Статус запроса, значение true и false |
errors | Array of string | Да | Возвращатеся список ошибок, относящихся целиком к запросу |
validationErrors | Array of string | Да | Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса |
Пример ответа:
{ "data": { "publicId": "string" }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }
Проведение оплаты
В методы авторизации платежа добавляется объект Split
, который отвечает за сплитование.
Методы, куда передается объект Split
:
Оплата по YandexPay - https://cloudpayments.atlassian.net/wiki/spaces/CA/pages/2616524991/Yandex+Pay#%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%B0
Оплата по TinkoffPay - https://cloudpayments.atlassian.net/wiki/spaces/CA/pages/2899804227/Tinkoff+Pay#%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%B0
Измененные параметры (только в request)
Наименование | Тип | Обязательность (в флоу сплитования) | Описание |
---|---|---|---|
amount | decimal | Да | Сумма транзакции (сумма всех значений split[].Amount) |
layoutId | Array | Да | Идентификатор платежной ссылки (один из пользователей, который участвует в сплитовании) |
split[].layoutId | string | Да | идентификатор платежной страницы сотрудника |
split[].amount | decimal | Да | сумма, которая будет переводиться сотруднику |
Ограничения
Сумма amount должна быть равна sum(split[].amount)
Получатели должны быть созданы и относятся к одному заведению