RozetkaPay

Виплати

Здійснення виплат на картки через RozetkaPay API

Виплати (Payouts) дозволяють переказувати кошти з балансу мерчанта на картки отримувачів.

Створення виплати на картку

curl -X POST https://api.rozetkapay.com/api/payouts/v1/request-payout \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"order": {
"external_id": "payout_12345",
"original_amount": "1000",
"currency": "UAH",
"description": "Виплата за замовлення",
"callback_url": "https://your-site.com/payout-callback"
},
"payer": {
"entity_id": "your_entity_id"
},
"recipient": {
"payout_type": "card",
"card": {
"first_name": "Іван",
"last_name": "Петренко",
"card_data": {
"number": "4242424242424242"
}
}
}
}'

Параметри запиту

order (обов’язкове)

ПараметрОбов’язковийОпис
external_idТакУнікальний ID виплати
original_amountТакСума виплати (string)
currencyТакВалюта (UAH)
descriptionТакОпис виплати (до 500 символів)
callback_urlНіURL для callback

payer (обов’язкове)

ПараметрОбов’язковийОпис
entity_idТакID сутності платника

recipient (обов’язкове)

ПараметрОбов’язковийОпис
payout_typeТакТип виплати: card або cash
cardДля cardДані картки отримувача
cashДля cashДані для готівкової виплати

card (для payout_type: card)

ПараметрОбов’язковийОпис
first_nameТакІм’я отримувача
last_nameТакПрізвище отримувача
middle_nameНіПо батькові
emailНіEmail отримувача
phoneНіТелефон (+380…)
ipnНіІПН (10 цифр)
card_dataТакДані картки

card_data

ПараметрОпис
numberПовний номер картки (якщо немає token)
tokenТокен картки з попередньої операції (якщо немає number)
option_idID картки з гаманця

Відповідь

{
"transaction_id": "b2f1c8d4-5a3e-4c7b-9d10-2e6f8a1b3c5d",
"external_id": "payout_12345",
"status": "pending",
"status_code": "transaction_in_progress",
"original_amount": "1000",
"payer_amount": "1000",
"currency": "UAH",
"payout_type": "card"
}

Перевірка статусу виплати

external_id передається як query-параметр:

curl -X GET "https://api.rozetkapay.com/api/payouts/v1/info?external_id=payout_12345" \
-u "login:password"

Перевірка балансу

Перед виплатою перевірте доступний баланс:

curl -X GET "https://api.rozetkapay.com/api/payouts/v1/account-balance?merchant_entity_id=entity_123" \
-u "login:password"

Відповідь

{
"available_amount": 30523.44,
"commitment_amount": 199.99
}
ПолеОпис
available_amountДоступно для виплат
commitment_amountЗарезервовано (в обробці)

Повторна відправка callback

curl -X POST https://api.rozetkapay.com/api/payouts/v1/resend-callback \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "payout_12345"
}'

Скасування готівкової виплати

Тільки для payout_type: cash:

curl -X POST https://api.rozetkapay.com/api/payouts/v1/cancel-payout \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "payout_12345"
}'

Виплата на токенізовану картку

Якщо у вас є токен картки з попередньої операції:

curl -X POST https://api.rozetkapay.com/api/payouts/v1/request-payout \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"order": {
"external_id": "payout_67890",
"original_amount": "500",
"currency": "UAH",
"description": "Повернення коштів"
},
"payer": {
"entity_id": "your_entity_id"
},
"recipient": {
"payout_type": "card",
"card": {
"first_name": "Іван",
"last_name": "Петренко",
"card_data": {
"token": "tok_abc123"
}
}
}
}'

Статуси виплат

СтатусОпис
initВиплата створена
pendingВ обробці
successВиплата успішна
failureВиплата невдала

Callback виплати

При зміні статусу виплати RozetkaPay надсилає POST-запит на callback_url:

{
"id": "payout_abc123",
"external_id": "payout_12345",
"status": "success",
"status_code": "transaction_successful",
"amount": 1000,
"currency": "UAH",
"payout_type": "card",
"processed_at": "2024-01-15T10:31:00Z"
}