Перейти к основному содержимому

Вывод средств

Данная статья описывает сценарий и детали вывода денежных средств с баланса электронного кошелька Empayre.

Требования

Для того чтобы операция вывода ЭДС завершилась успешно, должны быть соблюдены следующие условия:

  • сумма ЭДС на балансе кошелька должна быть больше или равна сумме операции с учетом вознаграждения/комиссии Empayre, если таковые имеются согласно условиям соответствующего договора;
  • создан приемник денежных средств с необходимым значением resourcetype;
  • получено право на вывод средств (в случае, когда инициатор операции не является владельцем кошелька или приемника).
  • см. «Обзор» → «Валюта».

Сценарии реализации

Вывести денежные средства с баланса кошелька можно с помощью прямого обращения к REST API. Ниже представлен один из сценариев такого взаимодействия с платформой: отражает успешный вывод ЭДС на банковскую карту в случае, когда требуется предварительно создать приемник средств.

Техническая реализация

Перед созданием самой выплаты на банковскую карту необходимо создать личность и кошелек. После этого необходимо токенизировать и привязать карту к личности.

Привязка карт

Токенизация карты

Передаем карточные данные в метод токенизации и получаем карточный токен:

curl -X POST \
https://api.empayre.com/payres/v0/bank-cards \
-H 'Authorization: Bearer {YOUR_API_KEY}' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'X-Request-ID: {REQUEST_ID}' \
-d '{
"type": "BankCard",
"cardNumber": "4242424242424242",
"expDate": "12/21",
"cardHolder": "KEYN FAWKES"
}'

Пример ответа платформы:

{
"authData": "5ZAuwcI6zqZUJDtqOq1P4Y",
"bin": "424242",
"lastDigits": "4242",
"paymentSystem": "visa",
"token": "eyJiaW4iOiI0MjQyNDIiLCJsYXN0RGlnaXRzIjoiNDI0MiIsInBheW1lbnRTeXN0ZW0iOiJ2aXNhIiwidG9rZW4iOiI2UVN5SzBPYndhdjUxNVF4U0N4WDV4In0"
}

Привязка карты к личности

Привязываем полученный карточный токен к личности:

curl -X POST \
https://api.empayre.com/wallet/v0/destinations \
-H 'Authorization: Bearer {YOUR_API_KEY}' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'X-Request-ID: {REQUEST_ID}' \
-d '{
"name": "Customer #1234567890",
"identity": "{IDENTITY_ID}",
"currency": "RUB",
"resource": {
"type": "BankCardDestinationResource",
"token": "eyJiaW4iOiI0MTUwMzkiLCJsYXN0RGlnaXRzIjoiMDkwMCIsInBheW1lbnRTeXN0ZW0iOiJ2aXNhIiwidG9rZW4iOiI1TXlURjVha0VRWmVEMVZLS2JpNVluIn0"
},
"metadata": {
"display_name": "Drivers Card #4242"
}
}'

Пример ответа платформы:

{
"createdAt": "2018-08-06T13:55:28.824975Z",
"currency": "RUB",
"id": "{DESTINATION_ID}",
"identity": "{IDENTITY_ID}",
"isBlocked": false,
"metadata": {
"display_name": "Card #4242"
},
"name": "Customer #1234567890",
"resource": {
"bin": "415039",
"lastDigits": "0900",
"paymentSystem": "visa",
"token": "5MyTF5akEQZeD1VKKbi5Yn",
"type": "BankCardDestinationResource"
},
"status": "Unauthorized"
}

Проверка статуса привязки

По идентификатору привязки, возвращенному из предыдущего запроса, проверяем статус привязки опросом событий, либо подписываемся на соответствующий вебхук. Пример с опросом событий:

curl -X GET \
https://api.empayre.com/wallet/v0/destinations/{DESTINATION_ID} \
-H 'Authorization: Bearer {YOUR_API_KEY}' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'X-Request-ID: {REQUEST_ID}'

Пример ответа платформы:

{
"createdAt": "2018-08-06T13:55:28.824975Z",
"currency": "RUB",
"id": "{DESTINATION_ID}",
"identity": "{IDENTITY_ID}",
"isBlocked": false,
"metadata": {
"display_name": "Card #4242"
},
"name": "Customer #1234567890",
"resource": {
"bin": "415039",
"lastDigits": "0900",
"paymentSystem": "visa",
"token": "5MyTF5akEQZeD1VKKbi5Yn",
"type": "BankCardDestinationResource"
},
"status": "Authorized"
}
к сведению

После перехода привязки в статус "авторизована", "status": "Authorized", процесс привязки завершен. В будущем для создания выводов достаточно будет передать идентификатор кошелька с которого осуществляется вывод и идентификатор привязки.

Создание выплаты на карту

Запускаем процесс выплаты на карту. Пример запроса:

curl -X POST \
https://api.empayre.com/wallet/v0/withdrawals \
-H 'Authorization: Bearer {YOUR_API_KEY}' \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'X-Request-ID: {REQUEST_ID}' \
-d '{
"wallet": "{WALLET_ID}",
"destination": "{DESTINATION_ID}",
"body": {
"amount": 10000,
"currency": "RUB"
}
}'

Пример ответа платформы:

{
"body": {
"amount": 10000,
"currency": "RUB"
},
"createdAt": "2018-08-06T14:03:16.137075Z",
"destination": "{DESTINATION_ID}",
"id": "{WITHDRAWAL_ID}",
"status": "Pending",
"wallet": "{WALLET_ID}"
}

По идентификатору выплаты, возвращенному из предыдущего запроса, проверяем статус привязки опросом событий, либо подписываемся на вебхук. Пример с опросом событий:

curl -X GET \
https://api.empayre.com/wallet/v0/withdrawals/{WITHDRAWAL_ID} \
-H 'Authorization: Bearer {YOUR_API_KEY}'

После перехода выплаты в состояние Succeeded выплату можно считать успешно завершенной.

Массовые выплаты

Для массовых выплат вызываем методы выплат на карту в массовом объеме.