PayU Single Platform (PL, CZ, HU, SK)
Follow the standard PaymentsOS integration procedure, and then apply the relevant extra specifications described below.
- API Version
- Payment Methods
- Currencies
- Features
- Requests
- Setup Procedures
- Integration Procedures
- Provider Specific Response Codes
- Testing
API Version
Minimum required API version: 1.0.0
The following features require an API version higher than the minimum:
- 3DS 2.0 Internal requires API version 1.3.0
- 3DS 2.0 External requires API version 1.3.0
Payment Methods
The following table lists all supported payment methods.
Payment Method | Payment Method Type |
---|---|
MAESTRO | Cards |
MASTERCARD | Cards |
Payment Wall | Bank Transfer |
PBL Pay by Link | Bank Transfer |
VISA | Cards |
Currencies
BGN, CHF, CZK, DKK, EUR, GBP, HRK, HUF, NOK, PLN, RON, RUB, SEK, UAH, USD
Bank transfer only supports CZK, EUR and PLN.
Features
The following table provides an overview of all supported and non-supported features.
Requests
The following table lists all supported requests. Use the bodybuilder to create a sample request body for each request type.
Request | Partial/Multiple | Mode | Notes |
---|---|---|---|
Authorize | Partial and multiple are not supported | Asynchronous | Following an Authorize request, the request will have a status of ‘Waiting for confirmation’ in your PayU Single Platform account. |
Capture | Partial and multiple are not supported | Asynchronous |
|
Refund | Partial is supported | Asynchronous | |
Void | Not Applicable | Asynchronous |
Request | Partial/Multiple | Mode | Notes |
---|---|---|---|
Authorize | Partial and multiple are not supported | Asynchronous | Following an Authorize request, the request will have a status of ‘Waiting for confirmation’ in your PayU Single Platform account. |
Capture | Partial and multiple are not supported | Asynchronous | The hold on the funds will be released if you did not capture the funds within 10 days of the Authorize request. |
Refund | Partial is supported | Asynchronous |
Setup Procedures
The following table lists the setup procedures that are specific to this provider.
Configuration | Required/Optional |
---|---|
In the PaymentsOS Control Center, configure the following credentials:
For your live credentials, login to your PayU Account. In the PayU Biz Panel, in the Online payments tab, click > My Shops > click POS of the relevant shop > click the name under POS > CONFIGURATION KEYS. | Required |
In the PaymentsOS Control Center, register webhooks to be notified when a transaction changes its status. The payment flows for PayU Single Platform are asynchronous, which return responses with the pending status. | Required |
In your PayU Single Platform account, disable the Automatic collection option in your PayU Single Platform account for the relevant PayU Single Platform payment methods. This will enable the correct processing of authorization requests, and keep PaymentsOS in sync with the PayU system. | Required |
In your PayU Single Platform account, configure the currencies you want to use in transactions (only applicable to the credit card and payment_wall payment methods). | Required |
In your PayU Single Platform account, enable Tokenization for credit card payment methods. Contact PayU Single Platform support for assistance. | Required |
In your PayU Single Platform account, disable the CVV check if desired. Contact PayU Single Platform support for assistance. | Optional |
Integration Procedures
The following sections list the integration procedures that are specific to this provider.
Redirecting your customer for Asynchronous Payment Flows
You'll need to redirect your customer for the following payment methods:
- Credit card payments that include 3D Secure
- PBL bank transfers
- payment_wall payments
When you send a post authorization
request, we will return an authorization resource containing an authorization.redirection.url
, and a status of pending
. Redirect your customer to this URL, so that they can authenticate themselves and complete the payment flow:
- For credit card payment methods, the redirection is to a 3D Secure site.
- For the PBL payment method, the redirection is to your customer's bank authentication site.
- For the payment_wall payment method, the redirection is to a PayU Single Platform hosted page, where your customer can select a payment method.
Once the authentication / payment method selection process at the provider is done, we'll redirect your customer's browser back to your site, using the merchant_site_url
(that you provided in the post authorization
). We've included the following URL parameters in the merchant_site_url
, to provide you with the context of the page that you'll need to load: payment_id
, authorization_id
, and status
(of the authorization). Here's an example:
<merchant_site_url>
?payment_id=dd1fbe34-4636-4a61-8cb1-27ac8a175284
&authorization_id=aec1c306-e0f7-452b-8fb5-5b34489e9d10
&status=Pending
Note
The status of your authorization request may still be pending
when we redirect your customer back to your site (while the provider is processing the request).
If you do not pass a merchant_site_url
, the user will not be able to complete the 3DS authentication flow. The response data of the Create Authorization request will indicate this in the additional_details.error
field:
{
"additional_details": {
"error": "The transaction requires 3DS authentication, but cannot be completed as the merchant_site_url was not provided"
}
...
}
Note
If the user could not complete the 3DS authentication flow, the transaction will remain in status Pending
. After 5 days, the transaction will transition to a status of Failed
.
Parsing the Response of the Retrieve Supported Payment Methods Request
When building your checkout page, you can choose to invoke the Retrieve Supported Payment Methods request to retrieve a list of supported payment methods. The response will have a structure similar to the following:
...
{
"supported_payment_methods": [
{
"display_name": "Płacę później",
"vendor": "dp",
"source_type": "bank_transfer",
"status": "ENABLED",
"logo_url": "https://static.payu.com/images/mobile/logos/pbl_dp.png"
},
{
"display_name": "BLIK",
"vendor": "blik",
"source_type": "bank_transfer",
"status": "ENABLED",
"logo_url": "https://static.payu.com/images/mobile/logos/pbl_blik.png"
}
...
],
...
}
When creating a transaction flow for PBL and Payment Wall, you are required to pass in the bank_name
in the request body of the Create Authorization request. Contrary to what you would expect, the bank_name
corresponds to the vendor
field returned in the response data of the Retrieve Supported Payment Methods request.
Here's a sample Create Authorization request for a bank transfer using the PBL payment method. Notice that bank_name
is populated with the value of the vendor
field you obtained when invoking the Retrieve Supported Payment Methods request. You should specify a bank_name
value, regardless of the source_type
returned by the Retrieve Supported Payment Methods request.
{
"merchant_site_url": "http://www.abc.com/return-url",
"payment_method": {
"source_type": "bank_transfer",
"type": "untokenized",
"vendor": "PBL",
"additional_details": {
"bank_name": "blik", // This is the vendor
"language": "pl"
}
},
"reconciliation_id": "40762342"
}
Provider Specific Response Codes
The following response codes are specific to PayU Single Platform.
Error Code | Description |
---|---|
ERROR_VALUE_INVALID, OPENPAYU_PAYMENT_CREATE_BLOCKED_CHECKOUT_PAY_METHOD |
Chosen payment method is currently unavailable. |
SSD | In the event that an exempt from 3DS authentication was requested and the request is evaluated by an issuer that only supports 3DS1, then you will receive a soft decline code (SSD). The error response code and description will indicate the reasons for the decline. You should then retry the authorization, passing in a three_d_secure_attributes.internal.challenge_indicator value of 4 (Challenge requested (Mandate)) in the Create Authorization request. |
Testing
This section list the test card numbers you can use for testing your integration and outlines the test procedures for bank transfer payment methods.
Testing with Credit Card Payment Methods
You can use test cards for testing.
Card number | Expiration date | CVV | Expected response | 3-D Secure | Card type |
---|---|---|---|---|---|
4444333322221111 | 01-2021 | 123 | Positive authorization | no | Visa |
5434021016824014 | 01-2021 | 123 | Positive authorization | no | MasterCard |
5099802211165618 | 01-2021 | 123 | Positive authorization | no | Maestro |
4012001037141112 | 01-2021 | 123 | Positive authorization | yes | Visa |
5000105018126595 | 01-2021 | 123 | Negative authorization | no | Maestro |
You can use the following public sandbox test POSes without registering:
POS Currency | POS ID | secret_key | second_key |
---|---|---|---|
POS_PLN | 356102 | 67c13e1355d7694e6c7a3f22d1cc8bea | 7d73d76c776bcee7245d3459aebccf62 |
POS_EUR | 356103 | cf73c2810d8769b1b3ff243464dc5429 | e90905cc04234967e969da988589d0ef |
POS_USD | 356104 | 60566c3d8a4d7771ae8f2ec10b8b74c6 | 7947b03b6d5cf08c82da2778f44a519b |
POS_SEK | 356105 | 7ef1918c0884da716e2c27e0d72352cf | f91f7b4481a9d3d1fdc80d2ad38e3593 |
POS_CZK | 356107 | a83fd674e3912acb7c5a3233f25eb3f1 | d3a369c216e12e189bb735dd317de932 |
For testing a 3DS 2 flow, use the following cards:
Card number | Expected Response |
---|---|
4245757666349685 | Required 3DS2 challenge |
4012001037141120 | Required 3DS method (device fingerprinting made by the issuer) and required 3DS challenge |
5100052384536826 | 3DS2 frictionless flow |
Testing with the PBL or payment_wall Payment Methods
To test an authorization request, use the following values for the payment_method.additional_details.bank_name
field:
- For the live environment use: "t", "payment_wall".
- For the test environment use: "m", "o", "p", "c", or "payment_wall".