Перейти до вмісту

P2P перекази

P2P (Person-to-Person) перекази дозволяють переказувати кошти з картки платника на картку отримувача.

P2P перекази включають два кроки:

  1. Ініціювання — списання коштів з карти платника
  2. Підтвердження — зарахування коштів на картку отримувача

Крок 1: Ініціювання переказу

Section titled “Крок 1: Ініціювання переказу”
Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/new \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"currency": "UAH",
"external_id": "transfer_12345",
"mode": "hosted",
"confirm": false,
"callback_url": "https://your-site.com/callback",
"result_url": "https://your-site.com/result",
"description": "Переказ коштів",
"customer": {
"email": "sender@example.com",
"phone": "380501234567",
"external_id": "sender_123",
"first_name": "Іван",
"last_name": "Петренко"
},
"recipient": {
"email": "receiver@example.com",
"phone": "380509876543",
"external_id": "receiver_456",
"first_name": "Марія",
"last_name": "Коваленко",
"payment_method": {
"type": "cc_token",
"cc_token": {
"token": "tok_recipient_card_token"
}
}
}
}'

Параметри отримувача (recipient)

Section titled “Параметри отримувача (recipient)”
ПараметрОбов’язковийОпис
emailНіEmail отримувача
phoneНіТелефон отримувача
external_idНіID отримувача
first_nameНіІм’я
last_nameНіПрізвище
cityНіМісто
countryНіКраїна
postal_codeНіПоштовий індекс
payment_methodТакПлатіжний метод отримувача

Типи payment_method отримувача

Section titled “Типи payment_method отримувача”
ТипОпис
cc_tokenТокен картки (з callback або віджета)
cc_numberПовний номер картки
walletID картки з гаманця

Приклад з номером картки

Section titled “Приклад з номером картки”
{
"recipient": {
"payment_method": {
"type": "cc_number",
"cc_number": {
"number": "5454545454545454",
"use_3ds_flow": true
}
}
}
}
{
"recipient": {
"payment_method": {
"type": "wallet",
"wallet": {
"option_id": "opt_abc123"
}
}
}
}

Крок 2: Підтвердження переказу

Section titled “Крок 2: Підтвердження переказу”

Після успішного списання коштів підтвердіть зарахування:

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/confirm \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "transfer_12345",
"callback_url": "https://your-site.com/callback"
}'

Для прямої інтеграції вкажіть mode: "direct" та платіжний метод відправника:

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/new \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"amount": 500,
"currency": "UAH",
"external_id": "transfer_12345",
"mode": "direct",
"confirm": false,
"customer": {
"external_id": "sender_123",
"payment_method": {
"type": "cc_token",
"cc_token": {
"token": "tok_sender_card_token",
"use_3ds_flow": true
}
}
},
"recipient": {
"external_id": "receiver_456",
"payment_method": {
"type": "cc_token",
"cc_token": {
"token": "tok_recipient_card_token"
}
}
}
}'

Якщо потрібно скасувати переказ до підтвердження:

Terminal window
curl -X POST https://api.rozetkapay.com/api/payments/v1/cancel \
-u "login:password" \
-H "Content-Type: application/json" \
-d '{
"external_id": "transfer_12345"
}'
┌───────────────┐ ┌───────────────┐
│ Відправник │ │ Отримувач │
│ (customer) │ │ (recipient) │
└───────┬───────┘ └───────┬───────┘
│ │
│ 1. Create Payment │
│ confirm: false │
▼ │
┌───────────────┐ │
│ Списання │ │
│ коштів │ │
└───────┬───────┘ │
│ │
│ 2. Confirm Payment │
│ │
▼ ▼
┌───────────────┐ ┌───────────────┐
│ Кошти │─────────────────────────────▶│ Зарахування │
│ переказано │ │ коштів │
└───────────────┘ └───────────────┘
  1. confirm: false — обов’язковий параметр для P2P
  2. Підтвердження потрібно робити окремим запитом
  3. Без підтвердження кошти автоматично розблокуються
  4. Ключі для P2P відрізняються від звичайних еквайрингових