Выплаты на кошелёк¶
Клиент может получать бонусы, кешбэки или иные выплаты. В этом случае средства:
- списываются со счёта так называемого источника — сущности, которая хранит деньги под определённую цель;
- зачисляются на счёт клиента в Baas.
Средства на счёте источника могут принадлежать партнёру, QIWI или иной компании — это зависит от бизнес-сценария. Способы ввода средств на счёт источника уточняйте у курирующего менеджера.
Чтобы выплатить средства клиенту, необходимо выполнить запрос к Payments API. В запросе нужно указать идентификатор источника средств (fromFunderId
). Значение fromFunderId
уточняйте у курирующего менеджера.
Успешный сценарий выплаты средств со счёта источника на счёт клиента изображён на диаграмме ниже.
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":15,
"noteFontSize":14,
"actorMargin":
75 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant B as BaaS
P->>+B: Запрос на выплату
Note over P, B: productId, transactionId, fromFunderId, toClientId, transactionAmount
B->>-P: Ответ на запрос совершения выплаты
Note over P, B: productId, transactionId, fromFunderId, toClientId, transactionAmount, "status": "SUCCESS"
rect rgb(255, 238, 223)
P->>+B: Сценарий «Решение об успешности платежа»
B-->>-P:
Note left of B: status:SUCCESS
end
P->>С: Коммуникация с клиентом
Запрос описан в документации Payments API. Сценарий принятия решения об успешности платежа см. в статье «Общие принципы и правила» → «Решение об успешности платежа» → «Синхронный вариант проведения платежа».
Жизненный цикл операции выплаты на кошелёк описан в этом разделе.
Жизненный цикл операции выплаты¶
flowchart TD
Start --> SUCCESS
Start --> DECLINED
Start --> errorCode
Партнёр отправляет запрос на выплату средств клиенту. BaaS возвращает партнёру один из ответов:
- HTTP 200 OK и
status:SUCCESS
— если операция выполнена успешно, средства зачислены на счёт клиента;status:DECLINED
— если операция не выполнена, счёт клиента не был пополнен.
- HTTP 4xx/5xx и
errorCode
— когда данные не прошли валидацию или другие внутренние проверки ⇒ операция не создана по причине, указанной вerrorCode
.
Ошибку (errorCode
) необходимо интерпретировать согласно справочнику кодов ошибок, обработать и затем возобновить работу с операцией, если ошибка не является фатальной и её можно устранить.
Обратите внимание
В редких случаях Baas может вернуть партнёру статус операции PROCESSING
. В такой ситуации партнёр должен выполнять одно из следующих действий до получения финального статуса (SUCCESS
или DECLINED
):
- отправлять запрос на совершение операции (повторный запрос должен быть идентичен исходному — методы Payments API являются идемпотентными);
- запрашивать статус операции.
Правила и ограничения¶
См. «Пополнение» → «Правила и ограничения» → «Общие правила».