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

Выплаты на банковскую карту с виджетом

Этот сценарий описывает отправку выплаты на банковскую карту в случае, если вы не можете собирать данные банковских карт и хранить на своей стороне.

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

Шаг 1. Сгенерируйте публичный токен

Токен нужен для работы с виджетом. Отправьте запрос на создание токена token, передайте в нем тип виджета, с которым хотите работать. В ответе придет токен.

Пример
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"tokenize_widget": {
"access": true
}
}'

Шаг 2. Покажите получателю форму для сбора данных карты

Подключите нашу JavaScript-библиотеку и добавьте виджет для токенизации на страницу.

Получатель введет данные карты, а вы получите токенизированные данные, с которыми можно проводить выплату.

Инициализировать виджет можно с помощью токена, который вы получили на предыдущем шаге.

Как добавить виджет для токенизации

Шаг 3. Начните выплату

  1. Отправьте запрос на создание платежной сессии session/create.

    Пример
     curl -X POST \
    https://proxy-demo.pikepayments.com/api/v1/session/create \
    -H 'Content-Type: application/json' \
    -H 'X-PARTNER-PROJECT: your_project_name' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "amount_details": {
    "amount": 10000,
    "currency": "rub"
    },
    "metadata": "order123"
    }'
  2. Отправьте запрос на создание выплаты с идентификатором этой сессии session/start/payout. В объекте encrypted_card передайте токенизированные данные банковской карты, полученные из виджета.

    Вы можете узнать информацию о токене или о карте с помощью метода token/info. В том числе — получить последние 4 цифры номера карты, чтобы показать пользователю, куда придет выплата.

    Набор обязательных параметров зависит от типа карты получателя.

    Пример
     curl -X POST \
    https://proxy-demo.pikepayments.com/api/v1/session/start/payout \
    -H 'Content-Type: application/json' \
    -H 'X-PARTNER-PROJECT: your_project_name' \
    -H 'X-PARTNER-SIGN: signature' \
    -d '{
    "session_id": "3230",
    "payment_method": {
    "type": "card",
    "card": {
    "type": "encrypted_card",
    "encrypted_card": {
    "number_hash": "63191fa17cc7edf818ee5d6611a2c2169ab30b705111cffd710af39880deef09",
    "expiration_date_hash":"f4286b9a8e0eb7974f34a996ee732fd861868f2fc7aaa7ed5cca8de2489534ad",
    "cardholder_name_hash":"dd6cce1e06790019dd266c6f70430f87dd378df802c6b7494395156f62533ce6",
    "security_code_hash":"7756b897e88c035f34c6658a147e263b29b480a5cdf76581012ff10ede478c4c"
    }
    }
    },
    "metadata": "good"
    }'

Шаг 4. Дождитесь уведомления о готовности сделать выплату

Pike отправит вам вебхук ready_to_confirm. Это значит, что выплату можно провести и Pike ждет вашего подтверждения (или отмены). В теле вебхука придут все данные для выплаты.

В ответ следует отдавать HTTP-код 200.

Пример
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "ready_to_confirm",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2024-05-27T02:03:00.000000Z",
"updated_at": "2024-05-27T02:03:00.000000Z",
"next_action": "confirm",
"payments": [{
"id": "po_1234",
"status": "pending",
"created_at": "2024-05-27T02:03:00.000000Z",
"customer": {
"reference": "user123",
"contacts": [{
"email": "user@gmail.com"
}]
},
"payment_method": {
"type": "card",
"card": {
"last4": "4242",
"brand": "visa"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "good"
}]
}
}'

Шаг 5. Подтвердите или отмените выплату

Проверьте данные для выплаты и подтвердите, что готовы её провести (с помощью запроса session/confirm) или отмените (отправьте запрос session/cancel).

Пример
curl -X POST \
https://proxy-demo.pikepayments.com/api/v1/session/confirm \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "3230"
}'

Шаг 6. Дождитесь уведомления о результате выплаты

Pike отправит вам вебхук payment_finished. В теле вебхука придут все данные, с которыми проводилась выплата. Результат выплаты приходит в поле status в массиве payments/payout_list.

Если статус succeeded, значит, выплата прошла успешно.

Подробнее о статусах выплаты