Last update: November 27th, 2019
PayU Integration Sandbox mirrors the features provided by PayU production servers. While some production features do not apply to the Sandbox (emails for order notifications, email notification, reports), the Sandbox has parity with the PayU APIs features set supported by the live environment. This means you can test your PayU processes and know they will behave the same on the production servers as they do in the Sandbox environment.
On Sandbox environment, for API calls, test accounts with their associated Merchant Code and Secret Key should be used. This way, you shall be able to test and debug your application without referencing any real PayU user. The Sandbox lets you develop and test your application in a safe environment and provides you a very efficient way to fine tune your payment routines before moving your application into production.
Every time you make a transaction using Sanbox credentials, PayU creates an order that behaves exactly like an order from live environment. You can track your orders by accessing the Sandbox cPanel at the following address https://sandbox.payu.ro/cpanel/
PayU Integration Sandbox environment consists in the following endpoints:
During your integration, use Sandbox endpoints and your test account details in exact PayU API request that you make. You can use the Sandbox cPanel to review your orders made during API integration.
You can use Sandbox accounts to generate orders and test your integration. You should ask for Sandbox cPanel account to your PayU Account Manager. He / She will provide you the cPanel Sandbox account credentials (username and password). After receiving these credentials, follow the below steps in order to make a minimal setup for starting integration:
Use your Merchant Integration Code and Secret Key in every API call integration that you'll do.
On Integration Sandbox environment you can test card payments and also Installments and Loyalty points transactions:
Step 1 Implement one of PayU payment APIs, as described in:
Step 2 Use the CCVISAMC payment method to test your implementation.
Depending on your Sandbox account configuration, your payment may go through the standard flow, which is
the default one for most setups, or the advanced flow. For the standard flow, you can use the
following card details for different testing scenarios:
Test Card Number | Expiration Month | Expiration Year | CVV / CVC2 | Cardholder Name | 3DS Enrolled | Payment Status | Error received |
4111111111111111 | 12 | Up to 20 years in the future | 123 | Any name | YES | Success payment | - |
4111111111111111 | 11 | Up to 20 years in the future | 123 | Any name | No | Success payment | - |
5105105105105100 | 11 | Up to 20 years in the future | 123 | Any name | No | Failed payment | Not sufficient funds |
5563693062030796 | 11 | Up to 20 years in the future | 123 | Any name | No | Failed payment | Stolen card, pick up |
4921301010459253 | 11 | Up to 20 years in the future | 123 | Any name | No | Failed payment | Default error |
For the advanced flow, you can use the following card details for different testing scenarios:
Test Card Number | Expiration Month | Expiration Year | CVV / CVC2 | Cardholder Name | 3DS Enrolled | Payment Status | Error received |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | Anything between 000 and 100 | Any name | Depends on your account configuration | Success payment | - |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | 101 | Any name | Depends on your account configuration | Failed payment | Not sufficient funds |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | 102 | Any name | Depends on your account configuration | Failed payment | Unexpected error |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | 103 | Any name | Depends on your account configuration | Failed payment | Timeout error |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | 104 | Any name | Depends on your account configuration | Failed payment | Invalid transaction |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | 105 | Any name | Depends on your account configuration | Failed payment | Authentication error |
Any valid card number (e.g. 4111111111111111) | Any month | Up to 20 years in the future | Anything between 106 and 200 | Any name | Depends on your account configuration | Failed payment | Generic error (An error occurred during processing. Please retry the operation.) |
Step 3 When using 3DS flow (Expiration month 12), you will be redirected to a simulator page that emulates the 3DS bank page, where you for password you can use any string:
Step 4 Based on the option you choose, you will have an authorized or failed transaction in Integration Sandbox environment.
After submitting the 3DS form you'll be redirected to your BackRef URL (if you set any) or on finish page.
Step 1 Implement one of PayU payment APIs, as described in:
Step 2 You can test installments payment methods using the following card details for different testing scenarios:
Brand | Test Card Numbers | Expiration Month | Expiration Year | CVV / CVC2 | Cardholder Name |
Card Avantaj |
5186170004106668 5186170028360523 5186170008405330 |
03 | 2028 | 123 | Any Name |
BRD Finance |
5220620107681833 5220620150352787 5220620137283642 |
03 | 2028 | 123 | Any Name |
Star BT |
4555552420664386 4555551748017871 4555553122374365 |
03 | 2028 | 123 | Any Name |
Raiffeisen |
6011116461271023 6011113186588013 6011113776422151 |
03 | 2028 | 123 | Any Name |
Garanti Bonus Card |
5555003167580804 5555004528364631 5555004866445521 |
03 | 2028 | 123 | Any Name |
BCR |
4999990806306657 4999995741805002 4999992252873230 |
03 | 2028 | 123 | Any Name |
AlphaBank |
4670935882226267 4670934671405661 4670935815277585 |
03 | 2028 | 123 | Any Name |
During order processing, PayU sends various notifications to the accounts involved in the transaction.
The Integration Sandbox sends notifications for orders, just like the live platform. However, email notifications that are generated by the Integration Sandbox are never sent outside the Integration Sandbox environment.
Important Note : All time information inside the Integration Sandbox is UTC (Coordinated Universal Time).
Example: In Romania, summer time, add 3 hours to find the time of the order (9:30 means 12:30).
Please be aware that all data used in this environment is test data and should be treated as such. Please do not use real customer data or payment information data (cardholder information, ID information, addresses, etc.), since not all privacy policies are applied to this environment. We recommend that the sandbox integration environment should be tested against another test environment and not against a production environment, to avoid any data loss or implementation errors that might occur.
After you have done all API integrations that you needed, and tested your application accordingly, you'll want to move the code into Production environment. To do this, please update all API endpoints and authentication credentials for Merchant Integration Code and Secret Key with the ones from live cPanel.