PayU
Overview - PayU
PayU is an innovative payment system that is very popular in Poland and the Czech Republic.
PayU allows customers to pay via bank transfer, credit card, BLIK, digital wallet (Google Pay, Visa Checkout, Masterpass, etc.).
In addition, customers could pay in installments or pay later by invoice.
Customer Experience - PayU
Step | Description | Image |
---|---|---|
1 | Choose PayU | |
2 | Click Pay | |
3 | Redirect to PayU | |
4 |
Proceed on the PayU page. Choose between the following payment options:
| |
5A | In case of bank transfer, choose your bank and proceed with the inputs. | |
5B | In case of BLIK, enter the BLIK code and proceed.
|
Note: This customer experience is valid for a live environment. In a test environment, the customer experience may look different.
PayEngine Details - PayU
General
Name | Details |
---|---|
Product | PayU |
Payment Options (for Customer) |
|
Channels | ECOM |
Currencies | PLN, CZK |
Countries | PL, CZ |
Technical Flow | Asynchronous |
Recurring | No |
Chargebacks | No |
B2B applicable | No |
Supported Features and Services
Name | Details |
---|---|
Debit | Yes |
Preauthorization | No |
Cancelation | No |
Capture | No |
Refunds | Yes |
Notifications | Yes (webhook and email) |
Settlement Reporting | Yes - Unified Settlement Reporting |
Integration Types
Name | Details |
---|---|
API | Yes |
Widget | Yes |
Bridge | No |
Shop Plugin | No |
Paylink | No |
Integration via API - PayU
Technical Flow
Webhook and email notifications
At the time of the redirect, it is still uncertain whether a transaction will be completed successfully or not. Therefore, Payengine awaits for the final asynchronous notification before the status of a DEBIT transaction is changed from PENDING to SUCCESS or FAILURE.
A merchant should register for Payengine's notifications to receive this final status update.
Alternatively, a GET request on the order or DEBIT transaction would also work, but it is not ensured that the final status will be available immediately after the redirect and a merchant might have to query the GET multiple times.
Therefore, it is strongly recommended that Payengine's asynchronous notifications are used instead.
Merchants could receive notifications via URL (webhook) or email.
The notifications could be subscribed:
- via the payengine API (link to API documentation)
- via the Payengine Merchant Center (link to Merchant Center notifications documentation)
Specifications - PayU
Input Parameters for Authorizing Transactions
Parameter | Mandatory/Optional (M/O) | Description | Type | Example |
---|---|---|---|---|
async.cancelUrl | M | Redirect URL when payment is canceled | string | http://my.shop.com/cancel |
async.failureUrl | M | Redirect URL for unsuccessful payment | string | http://my.shop.com/fail |
async.successUrl | M | Redirect URL for successful payment | string | http://my.shop.com/success |
currency | M | The currency of the transaction. Accepted values: PLN, CZK | string | PLN |
payment.accountHolder | O | The PayU accountholder name | string | Dr. Hans-Peter Meier |
payment.compliantEmail | O | The accountholder's email | string | test@test.com |
Samples
Debit transaction
POST/{{publicApiUrl}}/v1/orders/debit
Create Debit Request
{ "product": "payu", "terms": 1468590412476, "privacy": 1468590412476,
Create Debit Response
{ "createdAt": 1583335400722, "modifiedAt": 1583335400781, "merchantId": "merchant_bwwo5xstjr",
Refund transaction
POST/{{publicApiUrl}}/{{apiVersion}}/orders/{{orderId}}/transactions/{{transactionId}}/refund
Create Refund Request
{ "description": "description for transaction.", "initialAmount": 6060, "currency": "PLN",
Create Refund Response
{ "createdAt": 1583327063079, "modifiedAt": 1583327063130, "type": "REFUND",
Testing
PayU can be tested via the Payengine Simulator.
The testing amounts for the two scenarios can be found below:
Result | Description |
---|---|
Success | Any applicable amount (excluding failure amounts listed below). The transaction's status changes from OK to SUCCESS. |
Failure |
Each of the amounts listed below: 11111 (€111,11) 111 (€1,11) The transaction's status changes from "OK" to "FAILURE". |