Routing - это продукт Mandarin для учета транзакций и их последующей передачи во внешние процессинговые и расчетные системы (банки-эквайеры, расчетные банки, учетные системы типа 1с и т.д.).

Routing позволяет взять обычную транзакцию с использованием банковской карты (функционал не ограничивается именно банковскими картами, использовано в качестве примера) и по заранее определенным правилам осуществить ее учет, например, разделить сумму транзакции на нескольких получателей.

Благодаря публичному API Routing может быть использован как в сочетании с процессингом Mandarin, так и со сторонним процессингом клиента.

Принцип работы

Основные сущности в системе - это счета (accounts), транзакции бизнес-клиента (мерчанта), который использует продукт Роутинг от Mandarin (далее - Контрагента) (transactions), операции движения денежных средств (operations) и правила обработки транзакций (operation rules).

Основной принцип работы заключается в следующем - каждая поступающая в сервис транзакция расщепляется на атомарные движения денежных средств. У каждой такой операции имеется счет плательщика (source) и счет получателя (destination). Правила обработки задаются заранее и содержат произвольный набор параметров транзакции (param1, param2 и т.д.), передаваемых в API при создании транзакции и шаблон движений денежных средств, которые необходимо создать.

Счета (Accounts)

Счета используются в системе для раздельного аналитического учета денежных средств.

К основным типам счетов относятся счета:

Для всех счетов кроме mandarin account и bank account имеется api для просмотра баланса , а также получения списка операций (кроме bank account).

Business Merchant Account / Master Merchant

Данный счет создается в системе для каждого Контрагента и используется для учета комиссий Контаргента (ЮЛ/ИП) и прочих движений денежных средств.

Данный счет позволяет создавать счета саб-мерчантов.

Business Merchant Account / Sub Merchant

Данный счет создается для учета денежных средств ЮЛ/ИП, которые участвуют в расчетах с мастер-мерчантом. Создание осуществляется мастер-мерчантом через API.

Individual Merchant Account

Данный счет создается для учета денежных средств физических лиц.

Создание осуществляется мастер-мерчантом через API.

Settlement Account

Данные счета создаются через API мастер-мерчантом и служат для аналитического учета денежных средств в соответствии с бизнес требованиями Контрагента.

При создании таких счетов им присваиваются параметры (param1, param2 и т.д.), которые впоследствии используются в правилах обработки транзакций для мэпинга счетов, подставляемых в source и destination

Примерами таких счетов являются, например:

Mandarin Account

Данный счет создается специально для каждого Контрагента для учета взаиморасчетов с ним.

Bank Account

Используются для хранения банковских реквизитов. Может быть использован для операций вывода остатков денежных средств с внутренних счетов.

Транзакции Контрагента (transactions)

Для загрузки транзакций в сервис используется API (POST запрос).

При создании транзакций указывается набор дополнительных параметров (param1, param2 и т.д.), которые впоследствии будут использованы в правилах обработки транзакций. Параметры передаются как объект params с массивом key:value внутри.

При создании транзакции система на основании ее параметров находит соответствующее параметрам правило обработки и создает необходимые операции движения денежных средств.

Для каждой транзакции может быть создано 1 и более операций движения денежных средств.

В случае, если для транзакции не найдено ни одного подходящего правила распределения - транзакции будет присвоен соответствующий статус. В этом случае можно через API внести изменения в данную транзакцию и запустить поиск правил обработки повторно.

Операции движения денежных средств (operations)

Данная сущность похожа на банковскую или бухгалтерскую проводку - у каждой записи есть счет списания (source) и счет зачисления (destination), а также сумма. Дополнительно через правила обработки можно задать для каждой записи определенный набор тегов.

По факту создания всех операций, соответствующих транзакции, система отправляет уведомление в очередь.

В эту очередь смотрят коннекторы к учетным системам, которые трансформируют информацию в соответствие с техническими протоколами учетных систем или расчетных банков.

Правила обработки транзакций (operation rules)

Сущность, устанавливающая взаимосвязь между параметрами транзакции и тем, какие операции (их количество и порядок, значения для счета списания и счета зачисления, а также сумму) необходимо создать.

Правила создаются через API и исполняются в порядке приоритета.