Создать Split Payment
Подробности конечной точки
Метод:
POST
URL: BASE_URL/merchant/splitPayment/
Заголовок:
Authorization: Bearer <ACCESS_TOKEN>Описание:
Разделяет сумму транзакции между несколькими получателями. Каждый получатель получает субтранзакцию на указанную сумму. Транзакция помечается как разделенная после успешного завершения.
💡 Примечание. Получите recipientId у поставщика услуг (Paylov).
Тело запроса
| Поле | Тип | Требуется | Описание |
|---|---|---|---|
transactionId | string | Да | Уникальный идентификатор транзакции. |
recipients | array | Да | Список получателей, получающих транзакцию. |
recipients[].recipientId | string | Да | Уникальный идентификатор получателя. |
recipients[].amount | number | Да | Сумма, выделенная получателю. |
recipients[].items | array | Нет | Список элементов, связанных с получателем. |
recipients[].items[].title | string | Да | Имя или название предмета. |
recipients[].items[].price | number | Да | Цена товара до скидок. |
recipients[].items[].discount | number | Да | Скидка применяется к товару. |
recipients[].items[].count | number | Да | Количество товара. |
recipients[].items[].code | string | Да | Уникальный код, идентифицирующий товар. |
recipients[].items[].vat_percent | number | Да | VAT процент, применимый к товару. |
recipients[].items[].package_code | string | Да | Код, представляющий тип пакета. |
recipients[].items[].pinfl | string | Нет | Идентификационный номер налогоплательщика (PINFL). |
resendOFD | boolean | Нет | Флаг, указывающий, следует ли повторно отправлять данные в фискальную систему. |
Запросить пример
{
"transactionId": "9b3bd7be-9327-4608-b886-4353e49df05f",
"recipients": [
{
"recipientId": "string",
"amount": 100, #in tiyn
"items": [
{
"title": "string",
"price": 0,
"discount": 0,
"count": 0,
"code": "string",
"vat_percent": 0,
"package_code": "string",
"tin": "string", # tin or pinfl
"pinfl": "string"
}
]
},
{
"recipientId": "abda5234-16aq-4896-90a2-b095ff557654",
"amount": 100
}
],
"resendOFD": false
}Ответ
В случае успеха вы получите:
{
"result": {
"transactionId": "<transaction_id>"
}
}💡 Примечание. Если элементы включены в тело запроса, транзакция будет отправлена на OFD для генерации финансовых данных. Транзакция отправляется на OFD асинхронно, поэтому он не будет ждать ответа. OFD может быть задержан из-за большого трафика. После разделения платежа вы можете проверить статус с помощью специального метода. Если ответ не содержит данных OFD, вам необходимо повторно отправить запрос на разделение платежа с помощью
resendOFD: true.
Коды ошибок
permission_deniedtransaction_not_foundsplit_already_doneinvalid_amountrecipient_not_foundofd_commitent_or_subcommission_not_active— у комитента (TIN) или субкомиссии (PINFL) позиции чека нет активного договора OFD.data:itemIndex,tin,pinfl. Коды ошибок.
Пример для recipient_not_found:
{
"error": {
"code": "recipient_not_found",
"message": "One or more recipients not found.",
"data": {
"notFoundRecipientIds": [
"<recipient_id>"
]
}
}
}Примечания по реализации
- Проверка разрешений. Проверяет, что у мерчанта есть разделение разрешений на оплату.
- Проверка:
- Проверяет, что транзакция существует и еще не разделена.
- Гарантирует, что сумма сумм получателей соответствует сумме транзакции.
- Проверяет существование мерчантов-получателей.