Перекази між рахунками (A2A)
A2A, або платежі з рахунку на рахунок, - це прямі електронні перекази коштів з банківського рахунку покупця на рахунок отримувача. Платежі A2A оминають традиційні платіжні системи і миттєво зараховуються на рахунок одержувача.
Наразі можливе використання даного методу лише при direct-інтеграції.
Direct-інтеграція
Формат взаємодії:
інформація
Зверніть увагу, що при direct-інтеграції весь інтерфейс взаємодії повинен бути реалізованим на вашій стороні.
Перелік допрацювань:
- відобразити кнопку а2а методу оплати на вашому сайті (1 на схемі)
- відобразити сторінку з QR платникові або направити одразу за лінкою (6 на схемі)
- рекомендовано для оплати з десктопу відобразити якусь проміжну сторінку, поки користувач виконує платіж в своєму застосунку.
Наприклад, "Підтвердіть/завершіть транзакцію у мобільному застосунку вашого банку" (7-8 на схемі) - відобразити фінальний статус платежу (10 на схемі)
Запит на створення платежу при direct-інтеграції повинен містити такі параметри:
| Parameter | Type | Required | Description |
pos_id | UUID | ✅ | Merchant's identifier (POS_ID) |
mode | MODE | ✅ | direct |
method | METHOD | ✅ | Payment method ( purchase) |
amount | Number | ✅ | Transaction amount. Must be a positive number. The number of decimal digits must be less than or equal to 2 (e.g., 100.00, 250, 50.50) |
currency | CURRENCY | ✅ | Transaction currency (ISO_4217) |
description | String | ✅ | Payment description |
order_id | String | ✅ | Unique identifier of order |
order_3ds_bypass | String | ✅ | 3-D Secure flow option |
payway | String | ✅ | Optional payway. Use "bank_pay" for processing a2a payments |
products | Array[Product] | Array of products to be paid | |
customer_id | String | ✅ | Customer identifier in merchant's system. Is not mandatory in case of using customer_tax_id |
customer_tax_id | String | ✅ | Customer’s tax identification number. The parameter is mandatory for a2a payments |
customer_fname | String | Customer first name | |
customer_lname | String | Customer last name | |
customer_email | String | Customer email | |
customer_phone | String | Customer phone | |
customer_ip | String | Customer IP address | |
customer_country | String | Customer country (ISO 3166-1 (alpha-2)). For instance, UA for Ukraine | |
server_url | URL | Webhook notification will be sent to this URL | |
result_url | URL | Customer will be redirected to this URL after payment. | |
merchant_mcc | MCC | MCC for this transaction | |
payload | String | Field for merchant custom data. Max 4000 symbols. | |
validation_url | String | Preflight request will be sent to this URL |
Приклад запиту:
curl --location 'https://cpay.tranzzo.com/api/v1/payment' \
--header 'Content-Type: application/json' \
--header 'X-API-AUTH: CPAY-HMAC-SHA1 $API_KEY:$SIGNATURE' \
--header 'X-API-KEY: $ENDPOINTS_KEY' \
--data '{
"pos_id": "${POS_ID}",
"mode": "direct",
"method": "purchase",
"amount": 1,
"currency": "UAH",
"description": "Order description",
"order_id": "123",
"order_3ds_bypass": "always",
"payway": "bank_pay",
"server_url": "http://callback-stub:9000/consume",
"result_url": "https://example.com/result",
"payload": "sale=true"
}'
Приклад відповіді після ініціалізації оплати (повертається user_action_url):
{
"amount": 1,
"billing_order_id": 11231231231,
"cc_mask": "411111******1111",
"cc_token": "ODJkZjBhNmY2OTMyNDJlN2wjMjFjfTQzOXU3ZDFhYzI6cWJmWHFmMHlzM3hYaXJMWEZv",
"cc_token_expiration": "2028-10-10T10:10:22",
"created_at": "2026-02-09T16:06:34.456",
"currency": "UAH",
"customer_country": "UA",
"customer_email": "[email protected]",
"customer_fname": "Tom",
"customer_lname": "Hanks",
"customer_phone": "+380999999999",
"description": "Order description",
"eci": "07",
"gateway_order_id": "2bf5044c-1daa-47b8-a6c0-b9173675ca5c",
"mcc": "4900",
"method": "purchase",
"mode": "direct",
"options_3ds": "always",
"order_id": "2769312212",
"payload": "sale=true",
"payment_id": "bee8e3b9-46ee-4db8-8275-95d8be202aeb",
"payway": "bank_pay",
"pos_id": "ab4c4e99-0154-449a-abae-e42cafdfce54",
"processed_at": "2026-02-09T16:06:35.456",
"receipt_url": "https://cpay.tranzzo.com/public/receipt/12491284012940129402424124124124124ffef3re3rf32f2vf",
"result_url": "https://example.com/result",
"status": "pending",
"status_code": "2124",
"status_description": "Waiting for redirect to continue payment",
"user_action_required": true,
"user_action_url": "https://int.secure3d.net/BNzZkf/action/bee8e3b9-46ee-4db8-8275-95d8be202aeb/start"
}
Додаткові параметри Webhook, передбачені цим методом:
| Parameter | Type | Required | Description |
bank_pay.sender_mfo | String | ✅ | Sender's Bank Identifier Code (BIC) |
bank_pay.sender_iban | String | ✅ | Sender's IBAN |
bank_pay.sender_bank | String | ✅ | Sender's bank name |
bank_pay.sender_name | String | ✅ | Sender's full name |
bank_pay.sender_tax_id | String | ✅ | Sender's tax ID |
bank_pay.receiver_iban | String | ✅ | Receiver's IBAN |
bank_pay.description | String | ✅ | Description of a2a payment |
Приклад:
"bank_pay": {
"sender_mfo": "test_mfo_456",
"sender_bank": "Pumb",
"sender_iban": "UA558771690896444199621297483",
"sender_name": "John Doe",
"sender_tax_id": "1234567890",
"receiver_iban": "UA573220000000026007233566001",
"description": "Test operation"
}