Test card processing
This guide describes how to test card processing on your checkout page.
Before you start
Before you start, you need a checkout page that uses the Checkout test environment.
How to test
The Checkout page provides your customers with the option to pay by card. To test card payments on the checkout page, follow the steps below:
- Navigate to your checkout page
- Select "Pay by card"
- Add one of the sample card numbers from Number column in the table below
- Enter an expire date in the future
- Enter any 3 digits in the CVC field
- Enter any arbitrary name, address, and phone number in the address form
When using the sample cards in the test environment, some amounts have special meaning and will generate error codes or increase the API response times. This is not a bug, but a feature of the test environment so that you can test your system against error codes and delayed responses. See the following section for more information.
Reason codes
You can check the reason codes for card schemes outlined in this guide here.
3D Secure
When testing card payments in the checkout, you can be prompted for the 3D Secure simulator as outlined from here.
From here, it is possible if you would like to test success or failure payment flows with the test data from here.
Amounts with special meaning
It is possible to test how your website behaves when Checkout returns various error codes or if the checkout process is delayed. The following amounts have a special meaning and changes the checkout behaviour when creating a new payment in the test environment:
-
The amount 0.XX and 1.XX will raise the error code XX. For example, if the property
order.amount
is set to133
, the error code33
will be raised. -
The amount 3.XX will delay the API response by XX seconds. For example, if the property
order.amount
is set to310
, the reply from the checkout flow will be delayed by 10 seconds.
Note that amounts are specified in the lowest monetary unit for the given currency, without punctuation marks.
You can read more about reason codes from here.
Discounts
It is possible to specify for discounts in the payment requests. This is done by adding an order line with a negative amount.
You can see an example of this in the payload example from here.
Please note that it is not possible for the total amount to ever be 0 or lower for the following requests:
Sample credit cards
The following sample cards can be used in the test environment when testing card payments:
Card Type | Number | Expiry Date | CVV | Additional info |
---|---|---|---|---|
Visa | 4268270087374847 | > today | Any 3 digits | Success |
Visa | 4925000000000087 | > today | Any 3 digits | Reservation will fail |
Visa | 4925000000000079 | > today | Any 3 digits | Non-recurring charge will fail |
Visa | 4925000000000061 | > today | Any 3 digits | Direct Charge Fails. Code: 99 |
MasterCard | 5213199803453465 | > today | Any 3 digits | Success |
MasterCard | 5544330000000235 | > today | Any 3 digits | Success |
Maestro | 6761638084569584 | > today | Any 3 digits | Success |
Dankort | 5019994016456719 | 11/23 | 087 | Success |
Dankort | 4571994070004861 | 12/23 | 542 | Success |
American Express | 376206000000009 | 12/23 | Any 4 digits | Success |
Forbrugsforeningen | xx | xx/xx | xxx |
Expire date can be any date from today and in the future. For the CVC (Card Verification Code), you can use three arbitrary digits (123 for example).
Important!
If the Create payment request contains "charge":true
, then charge with test card 4925000000000079 will not fail.