Распределение

Общая информация

Средства, поступившие в результате оплаты счета, обычно поступают на банковские реквизиты, указанные при настройке Маркетплейса (если не было сделано иных корректировок). В случае, если нужно разделить полученные средства на разные счета (разные подрядчики, поставщики услуг и т.п.), используется поле amountDistribution при создании счета. Поле amountDistribution - это json массив, состоящий из объектов следующего вида:
typescript
type TDistribution = { "recipient": { "name": string, "tin": string, "bic": string, "bankName": string, "bankAccount": string }, "amount": string, "order": number, "vor": boolean, "isFeePayer": boolean, "overpaymentPart": number }
полетипОбязательноописание
recipientobjectдаЭто реквизиты получателя средств. Соответствует типу RecipientField. Описание можно увидеть в Playground API DOCS.
amountstringдаСумма, которая будет перечислена.
ordernumberнетОчередность распределения средств. По умолчанию равно нулю (0). Используется для тонкой настройки в случае частичной оплаты.
vorbooleanнетАббревиатура от Victim of Rounding. Указывает кто будет брать на себя результат округления. Например, если делить 100 на 3, то два получателя получат по 33.33, а тот, у кого указано vor: true, получит 33,34.
isFeePayerbooleanнетПоказывает кто из получателей средств будет платить комиссию домов.
overpaymentPartnumberнетЗадает долю от переплаты, которая отправится к получателю. Например, если только у одного получателя будет указано overpaymentPart: 1, то ему отправится вся переплата. Если у двоих получателей будет указано overpaymentPart: 1, то каждый из них получит по половине переплаты. Все поля и их типы указаны в схеме данных, которые можно найти в песочнице: https://condo.d.doma.ai/admin/api.
Ограничения:
  • Максимальное количество получателей: 5.
  • Реквизиты получателей должны быть предварительно добавлены в систему. Это делается через обращение в техподдержку.
  • Получатели должны быть уникальными. Нельзя задать два получателя в распределении с одинаковыми реквизитами.
  • Сумма распределения должна совпадать с суммой счета. Нельзя распределить только часть средств.
  • В каждой группе (получатели с одинаковым order) должен быть строго один получатель с vor: true.
  • Получатель, у которого указано vor: true, обязательно должен быть среди плательщиков комиссии (isFeePayer: true) и получателей переплаты (overpaymentPart).

Примеры распределения

Для упрощения вместо объекта recipient укажем строку.

Пример 1: базовый

Самое простое распределение. Нет частичной оплаты, нет переплаты. Просто оплата счета с двумя получателями.
Сумма счета: 1000
json
{ "amountDistribution": [ {"recipient": "recipient1", "amount": "200", "vor": true, "isFeePayer": true, "overpaymentPart": 1 }, {"recipient": "recipient2", "amount": "800" } ] }
Сумма платежа: 1000
Комиссия: 5%
Результат распределения:
ПолучательСумма
recipient1150
recipient2800
комиссия50

Пример 2: округление

Пример, показывающий как работает vor: true. Здесь три получателя и все они платят комиссию. Нет частичной оплаты, нет переплаты. Просто оплата счета с тремя получателями.
Сумма счета: 300
json
{ "amountDistribution": [ {"recipient": "recipient1", "amount": "100", "isFeePayer": true }, {"recipient": "recipient2", "amount": "100", "vor": true, "overpaymentPart": 1, "isFeePayer": true }, {"recipient": "recipient3", "amount": "100", "isFeePayer": true } ] }
Сумма платежа: 300
Комиссия: 10 (3,33333%)
Результат распределения:
ПолучательСумма
recipient196.67
recipient296.66
recipient396.67
комиссия10

Калькулятор

Ниже представлена песочница, позволяющая делать расчеты распределения.
Сумма платежа:
Комиссия с платежа: