Payment in installments Pumb
General information
Pay in installments by PUMB is an interest-free installment plan provided by PUMB that allows customers to split a purchase into a convenient number of payments within the credit limit установлен by PUMB. To use this payment method, the payment must be made exclusively with a PUMB card.
More detailed information about the service features and terms can be found on the PUMB website.
Direct integration
Direct integration allows you to accept payments using your own payment page.
Interaction format:
The use of direct integration when collecting card data on the merchant side requires PCI DSS certification. Alternatively, you can use our tokenization widget by implementing it on your site.
Features of using direct integration:
- The payment page must use the HTTPS protocol.
- Customer details must be persistent and unique.
- Use the HTTP POST method.
Request parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
pos_id | UUID | ✅ | Merchant's identifier (POS_ID) |
mode | MODE | ✅ | hosted |
method | METHOD | ✅ | Payment method (auth or purchase) |
amount | Number | ✅ | Transaction amount. Must be a positive number (min 500 UAH) |
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 | ✅ | Use fuib_payparts for processing direct payments through Pumb Payment by Parts |
products | Array[Product] | ✅ | Array of products to be paid |
customer_id | String | Customer's identifier in merchant's system | |
customer_fname | String | Customer's first name. | |
customer_lname | String | Customer's last name. | |
customer_patronym | String | Customer's patronym | |
customer_email | String | Customer's email | |
customer_phone | String | ✅ | Customer's phone |
customer_ip | String | Customer IP address | |
customer_country | String | Customer's country (ISO 3166-1 (alpha-2)). For instance, UA for Ukraine | |
customer_referrer | URL | Page customer is redirected from | |
customer_tax_id | String | Customer's tax identification number. The parameter is mandatory for merchants operating in the microfinance sector when the payment amount exceeds 30 000 UAH | |
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 custom data. Max 4000 symbols. | |
validation_url | URL | Preflight request will be sent to this URL | |
browser_fingerprint | JSON | ✅ | Browser fingerprint. These parameters could be used in 3DS 2.0 verification |
properties.parts_count | String. | ✅ | The number of parts into which the payment amount is divided (must be => 3 and <= 24) |
Example request:
$ curl "https://cpay.tranzzo.com/api/v1/payment" \
-H "Content-Type: application/json" \
-H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}" \
-H "X-API-KEY: ${ENDPOINTS_KEY}" \
-X POST -d '{
"pos_id": "${POS_ID}",
"mode": "direct",
"method": "purchase",
"amount": 500,
"payway": "fuib_payparts",
"currency": "UAH",
"description": "Order description",
"order_id": "123",
"order_3ds_bypass": "always",
"customer_phone": "+380000000000",
"server_url": "https://callback.blackhole.com/callback",
"result_url": "https://example.com/result",
"customer_referrer": "https://example.com",
"properties": {
"part_counts": "3"
},
"products": [
{
"name": "Apple",
"amount": 500,
"qty": 1
}
],
"browser_fingerprint": {
"browserColorDepth": "24",
"browserScreenHeight": "860",
"browserScreenWidth": "1600",
"browserJavaEnabled": "false",
"browserLanguage": "uk-UA",
"browserTimeZone": "Europe/Kiev",
"browserTimeZoneOffset": "-120",
"browserAcceptHeader": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"browserIpAddress": "127.0.0.1",
"browserUserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36"
},
}'
Response parameters:
| Parameter | Type | Description |
|---|---|---|
payment_id | UUID | Unique Tranzzo payment identifier |
order_id | String(≤256) | Unique identifier of order |
gateway_order_id | GW_ID | Unique order identifier in bank acquirer system. |
billing_order_id | BILLING_ID | Unique Tranzzo billing identifier |
transaction_id | UUID | Tranzzo transaction identifier |
pos_id | UUID | Merchant's identifier (POS_ID) |
mode | MODE | direct |
method | METHOD | Payment method (auth or purchase) |
amount | Number | Transaction amount |
currency | CURRENCY | Transaction currency (ISO_4217) |
description | String(≤2048) | Payment description |
status | STATUS | Transaction status |
status_code | STATUS_CODE | Tranzzo payment status code |
status_description | STATUS_DESCRIPTION | Tranzzo payment status code description |
user_action_required | Boolean | Either customer action is required to proceed with payment |
user_action_url | URL | If user_action_required is true then user should be redirected to this URL |
eci | ECI | Electronic Commerce Indicator - authentication result of credit card payment on 3D Secure |
mcc | MCC | MCC for this transaction |
options_3ds | String | 3-D Secure flow option |
customer_id | String | Customer’s identifier in merchant's system |
customer_fname | String | Customer’s first name |
customer_lname | String | Customer’s last name |
customer_patronym | String | Customer’s patronym |
customer_email | String | Customer’s email |
customer_phone | String | Customer’s phone |
customer_country | String | Customer’s country (ISO 3166-1 (alpha-2)). For instance, UA for Ukraine |
customer_birthday | String | Customer’s birthday (format: yyyy-MM-dd) |
result_url | URL | Customer will be redirected to this URL after payment. |
created_at | TIMESTAMP | Timestamp when transaction was created |
processing_time | TIMESTAMP | Timestamp when transaction was updated last time |
fee | Object | Amount and currency of commission |
fixed_fee | Object | Amount and currency of fixed commission (fee), which constitutes a portion of the total commission (fee) |
percent_fee | Object | Amount and currency representing the interest commission (fee), which constitutes a portion of the total commission (fee) |
payload | String | Field for custom data |
bank_short_name | String | Bank short name. |
Response example:
{
"payment_id": "9b1392a5-d030-4e85-b02d-9b7191ea2a5e",
"order_id": "123",
"gateway_order_id": "9B39A076243EB3EBB0925EAA981763AC:158545961",
"billing_order_id": "11231231231",
"transaction_id": "a8d80c86-0c7b-41bc-b63d-1e78f80edcd9",
"pos_id": "dc728de1-51ef-4ef1-80f7-3b44b07b5667",
"mode": "direct",
"method": "purchase",
"amount": 500,
"currency": "UAH",
"description": "Order description",
"status": "pending",
"status_code": "2122",
"status_description": "pending",
"user_action_required": false,
"user_action_url": "null",
"eci": "null",
"mcc": "null",
"options_3ds": "supported",
"customer_id": "123",
"customer_ip": "194.183.171.239",
"customer_fname": "Tom",
"customer_lname": "Hanks",
"customer_email": "[email protected]",
"customer_phone": "+380999999999",
"customer_country": "UA",
"result_url": "https://example.com/result",
"created_at": "2018-10-10T10:10:22.100",
"processed_at": "2018-10-10T10:10:23.300",
"payload": "sale=true",
"receipt_url": "https://cpay.tranzzo.com/public/receipt/12491284012940129402424124124124124ffef3re3rf32f2vf"
}
Hosted integration
Hosted integration will allow you to accept payments from customers from the Tranzzo payment page.
To activate the “Pay in installments from FUIB” method on the payment page, please contact Tranzzo Support
The payment creation request must contain the following parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
pos_id | UUID | ✅ | Merchant's identifier (POS_ID) |
mode | MODE | ✅ | hosted |
method | METHOD | ✅ | Payment method (auth or 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 |
products | Array[Product] | ✅ | Array of products to be paid |
name | String | ✅ | Product name |
amount | Number | ✅ | Product price (does not influence total payment 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 | String | ✅ | Product price currency |
qty | Number | ✅ | Product quantity. Max three decimals (e.g. 1.455) |
customer_id | String | Customer's identifier in merchant's system | |
customer_fname | String | Customer's first name. The parameter is mandatory for merchants operating in either the microfinance sector or the iGaming sector | |
customer_lname | String | Customer's last name. The parameter is mandatory for merchants operating in either the microfinance sector or the iGaming sector | |
customer_patronym | String | Customer's patronym | |
customer_email | String | Customer's email | |
customer_phone | String | ✅ | Customer's phone |
customer_lang | String | Checkout language. Supported values. | |
customer_country | String | Customer's country (ISO 3166-1 (alpha-2)). For instance, UA for Ukraine | |
customer_birthday | String | Customer's birthday (format: yyyy-MM-dd) | |
customer_tax_id | String | Customer's tax identification number. The parameter is mandatory for merchants operating in the microfinance sector when the payment amount exceeds 30 000 UAH | |
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 custom data. Max 4000 symbols. | |
validation_url | URL | Preflight request will be sent to this URL | |
order_timeout | Integer | Payment lifespan. Value in seconds | |
f_receipt_delivery | String | Fiscal receipt delivery option (email, sms, viber, none). For more details, refer to the Receiving Fiscal Receipts section. |
Request example:
$ curl "https://cpay.tranzzo.com/api/v1/payment" \
-H "Content-Type: application/json" \
-H "X-API-AUTH: CPAY-HMAC-SHA1 ${API_KEY}:${SIGNATURE}" \
-H "X-API-KEY: ${ENDPOINTS_KEY}" \
-X POST -d '{
"pos_id": "${POS_ID}",
"mode": "hosted",
"method": "purchase",
"amount": 500,
"currency": "UAH",
"description": "Order description",
"order_id": "123",
"order_3ds_bypass": "always",
"customer_id": 1234,
"customer_fname": "Tom",
"customer_lname": "Hanks",
"customer_email": "[email protected]",
"customer_phone": "+380999999999",
"server_url": "https://callback.blackhole.com/callback",
"result_url": "https://example.com/result",
"payload": "sale=true",
"products": [
{
"name" : "Apple",
"amount" : 100,
"currency": "UAH",
"qty" : 2
},
{
"name" : "Pineapple",
"amount" : 350,
"currency": "UAH",
"qty" : 1
}
]
}'
A 303 HTTP response status to a successful request contains a location header to which the customer should be redirected to proceed with payment.
Response example:
HTTP/2 303
# .. other headers
Location: https://cpay.tranzzo.com/api/v1/checkout/1b806782-3d97-4444-abb9-6e4b45d34663/form
Next steps
To test the subscription creation process:
- Create an account in the merchant portal
- Use the authentication data of the test project.
- Configure webhooks.
- Use the test data to obtain different operation result codes.
- Handle received errors.
Find more details in the integration checklist.
Going live:
- Create a live project in the merchant portal.
- With direct integration pass PCI DSS certification (if you intend to work with card data of the payers on your side) or implement a tokenization widget (possibility of making direct payments without using card data).
- Upon activation of the live project by our Compliance Team, use its authentication data instead of the one of the test project.