Управление клиентом и его счётом¶
В этой статье описаны основные сценарии управления клиентом и его счётом, а также технические ограничения, которые необходимо учитывать при их выполнении.
Создание клиента и счёта¶
Создание клиента и счёта являются обязательными этапами информационного взаимодействия с платформой и выполняются последовательно:
В результате появляется электронный кошелёк.
Обратите внимание
Клиент, не имеющий счёта, не может совершать платежи, а также ряд иных (нефинансовых) операций.
Сценарий «Создание клиента и счёта» может быть привязан к какому-либо событию в системе партнёра или выполняться независимо.
Примеры событий
Клиент партнёра (физическое лицо):
- зарегистрировался в интерфейсе;
- авторизовался в интерфейсе;
- захотел открыть электронный кошелёк или выпустить карту — нажал на кнопку в интерфейсе, сформировал устный или письменный запрос и т.д.
Успешный сценарий «Создание клиента и счёта» изображён на диаграмме ниже.
Обратите внимание
При необходимости для одного физического лица может быть создано несколько clientId
в платформе.
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant B as BaaS
С->>P: Событие/действие
P->>+B: Запрос на создание клиента
Note right of P: productId, clientId, clientIpAddress
B-->>-P: Ответ на запрос создания клиента
Note left of B: productId, clientId, identificationLevel, active
P->>+B: Запрос на создание счёта
Note right of P: productId, clientId, accountId, accountCurrency
B-->>-P: Ответ на запрос создания счёта
Note left of B: productId, clientId, accountId, currency, ownFunds
P->>P: Связь accountId и clientId
P->>С: Коммуникация с клиентом
Запросы описаны в документации Clients API.
Важная информация
При реализации данного сценария необходимо учитывать существующие в платформе ограничения.
Клиент может быть создан активным или неактивным.
Активный клиент может совершить любые действия, в том числе:
- сделать платеж согласно своему уровню идентификации (см. разделы портала «Пополнение» и «Расходные операции»);
- проверить лимиты;
- узнать баланс;
- пройти идентификацию (см. раздел портала «Идентификация»);
- выпустить банковскую карту.
Неактивному клиенту доступны лишь некоторые из них, такие как просмотр баланса и лимитов. Подробнее см. в разделе «Список разрешённых действий».
По умолчанию клиент создаётся активным. Создание неактивного клиента описано в одноимённом разделе.
Ограничения¶
- Счёт создаётся для конкретного клиента: без предварительного заведения
clientId
создать счёт не удастся. - Счёт создаётся в валюте
RUB
, другие валюты недоступны. -
Для клиента может быть создан лишь один счёт.
Пример
- Для клиента с идентификатором
client1
создан счёт с идентификаторомaccount1
. - Попытка создать для
client1
счёт с идентификаторомaccount2
будет неуспешной.
- Для клиента с идентификатором
Создание неактивного клиента¶
При выполнении запроса на создание клиента может быть задан признак его активности (createInactive
). Значение true
говорит о создании неактивного клиента.
Если партнёр создаст активного клиента — тот сможет сразу совершать платежи в рамках законодательных лимитов. Иногда партнёру требуется выполнить ряд подготовительных действий до того, как клиент совершит платёж. Например установить собственные лимиты и запретить проведение определённых операций. В этом случае мы рекомендуем создавать клиента с признаком createInactive:true
и активировать его лишь после завершения необходимых действий.
Список разрешённых действий¶
Список запросов, которые разрешено выполнять для неактивного client_id
:
- активация клиента;
- получение информации о клиенте;
- создание счёта;
- получение информации о счёте;
- получение информации о всех счетах;
- получение информации о лимитах;
- установка лимитов;
- выпуск карты;
- создание правил проведения авторизаций.
Запросы описаны в документации Clients API, Limits API и Cards-lifecycle API.
Активация клиента¶
Активация клиента предполагает последовательное выполнение следующих шагов:
- создать неактивного клиента и счёт;
- осуществить необходимые действия (например установить собственные лимиты и запретить проведение определённых операций);
- активировать клиента.
Пример использования сценария «Активация клиента» изображён на диаграмме ниже. Сценарий «Создание клиента и счёта» см. в данном разделе. Остальные упомянутые на диаграмме сценарии см. в статьях:
sequenceDiagram
participant P as Партнёр
participant B as BaaS
rect rgb(230, 230, 230)
P->>+B: Сценарий «Создание клиента и счёта» (Clients API)
Note right of P: В запросе на создание клиента следует передать createInactive:true
B-->>-P:
end
rect rgb(255, 238, 223)
P->>+B: Сценарий «Установка лимита» (Limits API)
B-->>-P:
end
rect rgb(230, 230, 230)
P->>+B: Сценарий «Выпуск банковской карты» (Cards-lifecycle API)
B-->>-P:
end
rect rgb(255, 238, 223)
P->>+B: Сценарий «Создание правил проведения авторизаций» (Cards-lifecycle API)
B-->>-P:
end
P->>+B: Запрос на активацию клиента (Clients API)
Note right of P: productId, clientId
B-->>-P: Ответ на запрос активации клиента
Note left of B: productId, clientId, identificationLevel, active: true
Запросы описаны в документации Clients API, Limits API и Cards-lifecycle API.
Блокировка клиента¶
Клиент может быть заблокирован QIWI в случае обнаружения компанией мошеннической активности. Блокировка означает, что совершение клиентом любых операций становится невозможным.
Партнёр узнаёт о блокировке, получив уведомление об изменении статуса блокировки от платформы (clientBlocked:true
), подробнее см. в статье «Уведомления». Сообщение о блокировке партнёр самостоятельно отправляет клиенту в push-уведомлении или любым другим доступным способом.
Блокировка является обратимым действием — клиенту необходимо обратиться в QIWI и оставить запрос на разблокировку. В случае разблокировки партнёр снова получит уведомление об изменении статуса (clientBlocked:false
).
Обратите внимание
Признак активности клиента не эквивалентен признаку блокировки. Активация клиента партнёром не влияет на значение clientBlocked
— только QIWI может разблокировать clientId
.
Просмотр баланса¶
Для того чтобы узнать баланс клиента, необходимо выполнить запрос на получение информации о счёте. Значение параметра ownFunds
в ответе отражает сумму доступных средств.
Пример использования запроса изображён на диаграмме ниже.
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant B as BaaS
С->>P: Переход на страницу интерфейса
P->>+B: Запрос на получение информации о счёте
Note right of P: productId, clientId, accountId
B-->>-P: Ответ на запрос получения информации о счёте
Note left of B: productId, clientId, accountId, currency, ownFunds
P->>С: Отображение баланса
Note left of P: ownFunds
Запрос описан в документации Clients API.