Transfer between bank accounts (A2A)
A2A, or account-to-account payments, are direct electronic transfers of funds from the buyer's bank account to the recipient's account. A2A payments bypass traditional payment systems and are instantly credited to the recipient's account.
Currently, this method is only available with direct integration.
Direct integration
Interaction format:
When creating a payment, send a request with the following parameters:
| 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 |
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 |
Request example:
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"
}'
Additional Webhook parameters provided by a2a payments:
| 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 |
Example:
"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"
}