====== Testing Guide ======
This page describes the best practice methods to test your integration with the Nuvei payment gateway using our test server accounts and sandbox accounts. It is intended to facilitate thorough testing, resulting in an issue free launch with our live service. You should have chosen your integration method and be familiar with our Integration Guide and have begun integration before reviewing this document.
~~TOC~~
\\
===== Test environment =====
All testing should always be done on a test environment, separate from the live web server. Testing on the live server can cause many live problems such as:
- Unnecessary downtime
- Live transaction corruption/loss
- Incorrect/incomplete results of live transactions
- Customer frustration
- Undiscovered issues over time, effecting large numbers of transactions
- Chargebacks
- PCI DSS implications
===== Setting up the test environment =====
You should ensure that your test environment is configured as close as possible to your live environment, particularly:
- Web server (IIS/Apache) version
- Web server configuration, especially the language interface (PHP/ASP etc.) and session timeout
- Database connectivity
- Firewall
- The identical shopping cart version & configuration to the live environment (if using shopping cart software)
===== Planning your testing =====
If you are not using a plug-in supplied by Nuvei, then before testing should be attempted at all, you should become familiar with the relevant sections of our Integration Guide document. This is a complete and definitive guide to integrating your systems with the Nuvei gateway no matter what programming language, transaction types or integration method.
Planning your testing depends a lot on your method of implementation. For example if using our Hosted Payment Page (HPP) you should test the situation where a redirect back from our host fails, whereas this is unnecessary if you are using the XML gateway.
===== Background Validation =====
Also, if using our Hosted Payment Page solution, you should seriously consider implementing Background validation. What Background Validation does is, in the case where for some reason the transaction is authorised but the response fails to get back to your site (customer closes browser/your site is temporarily unavailable/etc.), our host will intermittently send a server side post to a URL with the order ID & transaction result until it receives an “OK” response. This ensures that your order system accurately reflects the transaction result even in the case where the cardholder redirect fails.
===== Security concerns when testing =====
The PCI DSS states that you should never use live cards in a test environment, otherwise this environment is also subject to PCI audit and DSS rules. For this reason you should only ever use test card numbers, such as those listed in this document.
Nuvei cannot be held accountable for live cards being put through our test systems and sandbox accounts.
===== Things to test =====
==== All cases ====
You should ensure that your test environment is configured as close as possible to your live environment, particularly:
- Host is unavailable (i.e. Use invalid test host URL)
- Request details (including hash) are incorrect
- Response Hash string is incorrect
- Responses for all possible transaction results (Authorisation/Decline/Referral/Failure) (see “Testing resources” section for details)
- PCI DSS guidelines are met in all scenarios
- Refreshing the receipt page does not re-perform the transaction/resend the receipts
- All required currencies are processed correctly
==== Per integration method ====
=== Hosted Payment Page/POST Page ===
- Customer doesn't complete transaction (e.g. closes browser window)
- Incorrect Receipt Page URL configured (same as response redirect failure)
- Customer takes 60 mins to complete entering details
- Simultaneous transactions do not interfere with each other
- Background Validation is successful for all transactions and responses (if implemented)
=== XML gateway ===
- Card number/CVV fields can only contain numeric characters (no spaces either)
- Non-numeric characters (including spaces) are not sent in numeric fields
- Remote XSD file unavailable (fallback to local cache?)
- XML fails validation against remote XSD file
- Host returns a failure due to incorrect content in XML request
- Host returns a System Error response
- Host does not return anything
- Host returns extra response fields
=== When using shopping cart plug-ins ===
Testing will be quite specific depending on the shopping cart and plug-in being used. If you have downloaded this guide from within a plug-in zip file as apposed to being sent it directly from Nuvei, please e-mail ecomsupport@merchant-support.com to confirm that you have the latest version on the plug-in for your solution. Please include the name and version number of the shopping cart software and the name of the plug-in zip file that you downloaded.
You should cover all the relevant test above for your integration method, even though the functionality is obscured by the plug-in you are using. The issues outlined above can still occur. However other shopping cart issues that should be tested are:
- Card number/CVV fields can only contain numeric characters (no spaces either)
- Order status is updated correctly in shopping cart
- Customer e-mails are populated correctly
- Customers get the right number of e-mails (our host may also send an e-mail to the customer depending on the plug-in)
- Session timeouts do not cause transactions not to be dropped/lost
- Transactions over 1,000 and 1,000,000 Euro/Pounds/Dollar etc. are handled correctly
===== Testing resources =====
==== Sandbox ====
Basic transaction testing can be done through our sandbox accounts. You do not need a dedicated test account for this type of basic proof-of-concept testing.
The following values should be used when testing against the Pivotal test URLs. Please see the Testing and Certification guide for further details. The terminal details are:
^ **TERMINAL** ^ **CURRENCY** ^ **TERMINAL ID** ^ **SHARED SECRET** ^
^ A | USD | 33001|SandboxSecret001|
^ B | CAD | 33002|SandboxSecret002|
^ C | EUR | 33003|SandboxSecret003|
^ D | GBP | 33004|SandboxSecret004|
^ **E** | **MCP*** | **36001**|**SandboxSecret001**|
* **TERMINAL E**: **MCP** is the Multi Currency Terminal Setting.
==== Test Cards ====
Test cards that can be used on our host are:
=== For HP Integrations ===
^ **CARD SCHEME** ^ **CARD NUMBER** ^
| Visa | 4444 3333 2222 1111 |
| MasterCard | 5404 0000 0000 0001 |
| Laser | 6304 9900 0000 0000 044 |
| Maestro | 3000 0000 0000 0000 04 |
| UK Domestic Maestro | 5641 8200 0000 0005 |
| Electron | 4917 3000 0000 0008 |
| Visa Debit | 4462 0000 0000 0003 |
| Debit MasterCard | 5573 4700 8901 0012 |
| American Express | 3742 0000 0000 004 |
| JCB | 3569 9900 0000 0009 |
| Diners | 3600 0000 0000 08 |
| Solo| 6767 6222 2222 2222 222 |
All test cards can be used with any expiry date in the future, and any CVV (American Express cards have a 4 digit CVV) and any Issue number where appropriate.
=== For XML Integrations ===
^ **CARD SCHEME** ^ **CURRENCY** ^ **DCC ENABLED** ^ **SUPPORTS CVV** ^ **CARD NUMBER** ^
| American Express| EUR | N | Y | 3400000000000067|
| Debit MasterCard| EUR | Y | Y | 5103150000000024|
| Debit MasterCard| GBP | Y | Y | 5105091000000085|
| Debit MasterCard| USD | Y | Y | 5100270000000007|
| Diners | EUR | N | N | 3600000000000032|
| Diners | USD | N | N | 6011000000000053|
| JCB | GBP | N | Y | 3528000000000072|
| Maestro | EUR | Y | Y | 5016590000000019|
| Maestro | GBP | Y | Y | 6301144000000066|
| Maestro | USD | Y | Y | 5021230000000007|
| MasterCard | EUR | Y | Y | 5100010000000056|
| MasterCard | GBP | N | Y | 5534223000000085|
| MasterCard | GBP | Y | Y | 5101080000000033|
| MasterCard | JPY | Y | Y | 5120790000000018|
| MasterCard | USD | Y | Y | 5100040000000095|
| Switch | EUR | N | N | 6706989000000008|
| Switch | GBP | N | N | 6301144000000017|
| Switch | USD | N | N | 6706988000000018|
| Visa Credit | EUR | N | Y | 4005530000000086|
| Visa Credit | EUR | Y | Y | 4001310000000095|
| Visa Credit | GBP | N | Y | 4300000000000082|
| Visa Credit | GBP | Y | Y | 4008800000000031|
| Visa Credit | JPY | N | Y | 4051700000000021|
| Visa Credit | JPY | Y | Y | 4205030000000036|
| Visa Credit | USD | N | Y | 4005510000000013|
| Visa Credit | USD | Y | Y | 4000020000000000|
| Visa Debit | EUR | N | Y | 4033400000000005|
| Visa Debit | EUR | Y | Y | 4000340000000069|
| Visa Debit | GBP | N | Y | 4300009900000050|
| Visa Debit | GBP | Y | Y | 4000330000000078|
| Visa Debit | JPY | N | Y | 4051705010000085|
| Visa Debit | JPY | Y | Y | 4000360000000018|
| Visa Debit | USD | N | Y | 4005525010000084|
| Visa Debit | USD | Y | Y | 4000060000000055|
| Visa Electron | EUR | Y | Y | 4003110000000071|
| Visa Electron | GBP | Y | Y | 4001150000000061|
| Visa Electron | JPY | Y | Y | 4980040000000044|
| Visa Electron | USC | Y | Y | 4002730000000010|
All test cards can be used with any expiry date in the future, and any CVV (American Express cards have a 4 digit CVV) and any Issue number where appropriate.
===== Testing verification =====
For large merchants, Nuvei will be happy to coordinate testing with you, provide/review specialised test scripts, and help with any issues raised. If you would like to avail of this service, please feel free to contact integration@nuvei.com.