Introduction
This page provides essential information regarding PayU payments. It covers a range of topics, including the available payment methods, supported languages and currencies. In addition to that, it will also direct you towards relevant resources which will help you with seamless integration. Additionally, provided below are some guiding questions that can assist you in determining the most suitable payment solution tailored to your specific needs.
Our suite of APIs provides a comprehensive range of functionalities that empower you to create, settle, cancel and retrieve orders. Additionally, it facilitates seamless transactions for payouts and offers capabilities beyond these basic features.
To simplify integration, you can use one of our plugins. You can also use utilize our PHP SDK or Mobile SDK. In addition, many shopping platforms offer built-in integration with PayU. If the platform you're using is one of them, follow the instructions on their site to quickly set up payments via PayU.
To improve convenience for your customers, we provide support for a diverse selection of currencies, allowing you to accept payments in various currencies beyond your store's native one. Moreover, we offer support for multiple languages to accommodate different customer backgrounds, ensuring smooth and effective communication.
Choosing Solutions
Before you start, it is important to choose the right solutions for your needs, as there are several options available. The service you need to integrate and the configuration of your account may depend on the following:
Will you fullfil each order paid via PayU?
Are you selling more expensive goods or services?
If yes, boost your sales with PayU | Installments.
Will you process a lot of refunds?
If yes, you definitely should consider implementing API calls to facilitate refunds programatically, instead of performing them via the Panel.
Would you like to enable the payers to choose a payment method on your website?
If yes, build your own checkout page with our payment methods.
Will you create user accounts for your customers?
If yes, implement Card Tokenization service and PayU will securely store card data, so your returning customers do not have to provide them each time and will be able to pay with a single click.
Will you charge your customers on a recurring basis (e.g. monthly)?
If yes, use the Recurring Payments service.
Are you a billing your customers by issuing an invoice connected with a specific bank account?
If yes, use the Mass Collect service.
Will you need to collect funds from customers and later distribute them to your subcontractors?
If yes, use the Payout API to streamline funding of your business partners.
Environments
We provide two work environments: production and test (Sandbox).
Your organization will use a production environment where all of your customers' payments will be processed on a daily basis. This entire section is dedicated to getting you started on this environment.
On the other hand, the Sandbox is an exact replica of the production environment that allows you to test your integration and explore all of the PayU features without any actual financial transaction taking place. For detailed information about how to use the Sandbox and perform testing, please refer to our Testing section.
The Production and Sandbox environments are completely separate entities and are not interconnected in any way. If you wish to utilize both of these environments, you will need to create distinct accounts on each of them.
Payment Methods
For the complete list of PayU GPO Europe payment methods, visit the section dedicated to the Payment Methods.
Currencies
In PayU, you have the flexibility to set two types of currency for a single shop:
- Transaction Currency: This currency is used for payment transactions and determines the currency in which the payer can make payments. The transaction currency also influences the availability of payment methods:
- Card payments are available in any currency.
- Other methods, such as bank transfers, are only available in CZK, EUR, and PLN.
- Billing Currency: This currency is used for transferring funds to your account. By default, PayU settles with you in the same currency in which the transaction was processed, maintaining a 1:1 exchange rate.
It's important to note that depending on the selected settlement currency, there might be additional fees and restrictions on the payout frequency.
Below is a table displaying the list of transaction currencies that PayU can settle with on a 1:1 basis.
Code | Name |
---|---|
CHF | Swiss franc |
CZK | Czech koruna |
DKK | Danish krone |
EUR | Euro |
GBP | Pound sterling |
HUF | Hungarian forint |
NOK | Norwegian krone |
PLN | Polish złoty |
RON | Romanian leu |
SEK | Swedish krona |
USD | US dollar |
Languages
The following table presents the list of languages that can be used as the language
parameter in the buyer object.
The table outlines the language support for:
- Paywall: Refers to a page hosted by PayU where the payer can select from all the payment methods configured on your POS (Point of Sale).
- Card form: Indicates the language support for the card payment form hosted on the PayU payment page.
- Email: Specifies the language support for emails containing payment-related information sent to the payer.
Code | Language | Paywall | Paywall Card Form | Secure Form | |
---|---|---|---|---|---|
pl | Polish | Yes | Yes | Yes | Yes |
en | English | Yes | Yes | Yes | Yes |
cs | Czech | Yes | Yes | Yes | Yes |
bg | Bulgarian | No | Yes | Yes | Yes |
da | Danish | No | Yes | Yes | Yes |
de | German | Yes | Yes | Yes | Yes |
el | Greek | No | Yes | Yes | Yes |
es | Spanish | Yes | Yes | Yes | Yes |
et | Estonian | No | Yes | No | Yes |
fi | Finnish | No | Yes | No | Yes |
fr | French | No | Yes | Yes | Yes |
hr | Croatian | No | Yes | Yes | Yes |
hu | Hungarian | No | Yes | Yes | Yes |
it | Italian | Yes | Yes | Yes | Yes |
lt | Lithuanian | No | Yes | Yes | Yes |
lv | Latvian | No | Yes | Yes | Yes |
nl | Dutch | Yes | Yes | Yes | Yes |
pt | Portuguese | No | Yes | No | Yes |
ro | Romanian | No | Yes | Yes | Yes |
ru | Russian | No | Yes | No | Yes |
sk | Slovak | Yes | Yes | Yes | Yes |
sl | Slovenian | No | Yes | No | Yes |
sr | Serbian | No | Yes | No | Yes |
sv | Swedish | No | Yes | Yes | Yes |
tr | Turkish | No | Yes | Yes | Yes |
uk | Ukrainian | No | Yes | Yes | Yes |
Transmission Encryption
Since 30 June 2018 PayU supports only TLS 1.2 protocol.
Lack of support for older protocols is for security reasons. The TLS 1.2 protocol is the best transmission encryption method compliant with the highest security standard PCI DSS 3.2.
The change applies to all transmission via HTTPS, therefore it includes all REST API and Classic API endpoints.
Majority of e-commerce solutions and hosting providers make sure that their software is up-to-date. Therefore, if your site is using such a provider, most probably you have nothing to worry about. You can contact your service providers and ask whether they have updated their software.
Starting from December 9, 2023, to establish a TLS connection successfully with PayU servers, the Server Name Indication (SNI) extension will be required.
The SNI extension was proposed in 2003 (rfc3546) and is currently a widely adopted standard. SNI has been supported by web browsers for many years and is also backed by libraries in leading programming languages.
If your site is a custom-built solution, make sure that it uses the latest version of the protocol. The following information could be useful.
JAVA
Java 1.5 and below does not support TLS 1.2 In Java 1.6, TLS 1.2 is not supported in Oracle public updates. It is supported in the business edition starting Oracle java version 6u115 b32
.
In Java 1.7, TLS1.2 is supported. But it needs to be explicitly enabled by selecting the enabled protocols while creating the SSLSocket & SSLEngine instances.
Please refer to: Oracle blog for more details.
cURL
Curl supports TLS1.2 starting 7.34.0. Please use the following command to test the connection.
You may use any PayU endpoint. If you need help with Classic API integration contact our .
If it works, you'll see Unauthorized message.
cURL+PHP
php -r '$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://secure.payu.com/api/v2_1/orders");
curl_setopt ($ch, CURLOPT_SSLVERSION, 6);
var_dump(curl_exec($ch));
var_dump(curl_error($ch));'
If it works, you'll see "Unauthorized" message. TLS 1.1 and TLS 1.2 are supported since OpenSSL 1.0.1. Forcing TLS 1.1 and 1.2 are only supported since curl 7.34.0.