This Adyen test card has several "applications" programmed onto it that each simulate a specific card brand (payment method), language, country/region, and currency, and various Cardholder Verification Methods (CVM).
It supports installments and contactless transactions.
When making test payments with this card:
- To test a specific application on the test card, use the corresponding currency in your payment request.
- To test different CVMs, use different combinations of transaction amount and currency.
- To test declined payments, use the last three digits of the transaction amount.
You can view the details of test payments in your test Customer Area under Transactions > Payments.
The test card simulates Visa payment methods for EMV chip and contactless transactions and China UnionPay payment method when using magstripe. To verify that your POS app and terminal are communicating as expected and to test your reconciliation, no other card payment methods are needed. But as an alternative, you can order test card packs from B2PS.
Card applications
Use the table below to see which application on the test card corresponds with the scenario you want to test.
To try a particular application, use the corresponding currency in your payment request. You can also select an application on the terminal: when the terminal shows Present card, insert the card and select the application on the display.
Application | Payment method | Locale | Issuing country/region | Currency | Expiration date | Cardholder | PIN | PAN | AID |
---|---|---|---|---|---|---|---|---|---|
vis en sgp sgd | Visa | English | SG | SGD | 03/30 | AD YEN-SG | 1234 | 4111 1100 0702 0006 | A000000003101001 |
vis ja jpn jpy | Visa | Japanese | JP | JPY | 03/30 | AD YEN-JP | 1234 | 4111 1100 0392 0001 | A000000003101002 |
vis es mex mxn | Visa | Spanish | MX | MXN | 03/30 | AD YEN-MX | 1234 | 4111 1100 0484 0000 | A000000003101003 |
vis ar are aed | Visa | English | AE | AED | 03/30 | AD YEN-UAE | 1234 | 4111 1100 0784 0007 | A000000003101004 |
vis fr fra eur | Visa | French | FR | EUR | 03/30 | AD YEN-FR | 1234 | 4111 1100 0250 0002 | A000000003101005 |
MSR | China UnionPay | China | CN | CNY | 03/30 | MSR/ AD YEN CUP | 1234 | 6243 0300 0156 0003 |
Testing CVMs
When you make payments with the test card, a CVM is triggered based on the test card's CVM list, test card application, amount, and currency.
This is the CVM list for the test card:
Amount threshold
- See the table below. To trigger a particular CVM with a dynamic currency conversion (DCC) transaction, make sure the amount is above the threshold after the conversion.
CVM 1 and CMV 2:
- CVM code: if this CVM is unsuccessful, try the next CVM.
- CVM type: depends on the test card application. See table below.
- CVM condition: the CVM type applies if the transaction is in the currency of the test card application and the amount is above the threshold.
CVM 3
- CVM code: if this CVM is unsuccessful, fail the cardholder verification.
- CVM type: depends on the test card application. See table below.
- CVM condition: the CVM type always applies.
The next table shows the CVM types for each application. Note that to trigger CVM 1 and 2 the amount must be above the threshold and in the currency of the application.
Application | Interface | CVM 1 amount >200.00 |
CVM 2 amount >100.00 |
CVM 3 | Contactless/NFC above CVM limit |
---|---|---|---|---|---|
vis en sgp sgd | EMV chip | Signature | Offline enciphered PIN | No CVM | Online PIN |
vis ja jpn jpy | EMV chip + Contactless | Offline enciphered PIN | Signature | No CVM | |
vis es mex mxn | EMV chip | Plaintext PIN | Signature | No CVM | |
vis ar are aed | EMV chip | Online PIN | Signature | No CVM | |
vis fr fra eur | EMV chip | Offline enciphered PIN | Signature | No CVM |
For online PIN, with the card inserted in the card reader, the test system will accept any PIN code you enter.
For offline PIN, with the card inserted in the card reader, the transaction will be declined if you enter an invalid PIN.
If you are testing a contactless transaction, you will be asked to enter a PIN when the transaction amount is above the contactless reader limit specific for the country/region the terminal is located in.
You can find the latest limits in your Customer Area under In-person payments > Terminal settings > Payment features > Limits > Contactless CVM limit.
You cannot test offline transactions using this card due to limitations from Visa.
Simulating declined payments
In general, test payments generate the result Approved. To simulate declined payments, you need to change the last three digits of the RequestedAmount
that you specify in the payment request.
For example, to test how your integration responds when the issuer suspects fraud, specify an amount with 151 as the last three digits, such as 101.51 or 21.51.
In a classic library integration you can run the same simulations, but the response returns a generic DECLINED_ONLINE posResultCode
in most cases. To verify the details of a simulation, you can:
- Check the transaction in the Customer Area.
- Check the raw response in the notification for the transaction.
The following table shows:
- The last three digits of the amount to specify for simulating a specific response.
- The
Result
,ErrorCondition
,AdditionalResponse.refusalReason
, andAdditionalResponse.message
from the Terminal API response.
The refusalReason
and message
are included for additional insight, and should not be coded against. For instructions on how to handle declines, see Declined payments.
Amount ending in | Result |
ErrorCondition |
refusalReason |
message |
---|---|---|---|---|
121 | Failure | Refusal | 214 Declined online | CANCELLED |
122 | Failure | Refusal | 124 acquirer fraud | ACQUIRER_FRAUD |
123 | Failure | Refusal | 214 Declined online | DECLINED |
124 | Failure | Refusal | 210 Not enough balance | NOT_ENOUGH_BALANCE |
125 | Failure | Refusal | 199 Card blocked | BLOCK_CARD |
126 | Failure | Refusal | 228 Card expired | CARD_EXPIRED |
127 | Failure | Refusal | 214 Declined online | INVALID_AMOUNT |
128 | Failure | InvalidCard | 214 Declined online | INVALID_CARD |
129 | Failure | Refusal | 214 Declined online | NOT_SUPPORTED |
130 | Failure | Refusal | 214 Declined online | ERROR |
131 | Failure | Refusal | 214 Declined online | DECLINED |
132 | Failure | Refusal | 214 Declined online | DECLINED |
133 | Failure | Refusal | 214 Declined online | REFERRAL |
134 | Failure | WrongPIN | 129 Invalid online PIN | INVALID_PIN Remark: the terminal shows "Incorrect PIN" and then "Enter PIN". Cancel the payment on the terminal to get the failure response. |
135 | Failure | Refusal | 128 Online PIN tries exceeded | PIN_TRIES_EXCEEDED |
136 | Failure | Refusal | 207 Issuer unavailable | ISSUER UNAVAILABLE |
137 | Failure | Refusal | 211 Withdrawal amount exceeded | WITHDRAWAL_AMOUNT_EXCEEDED |
138 | Failure | Refusal | 212 Withdrawal count exceeded | WITHDRAWAL_COUNT_EXCEEDED |
139 | Failure | Refusal | 210 Not enough balance | NOT_ENOUGH_BALANCE Remark: combined with the tender option AllowPartialAuthorisation, an amount ending in 139 will not fail. Instead, the result is a partial payment. |
142 or 143 | Remark: Tap the card. The terminal shows Contactless limit exceeded, insert card. | |||
144 | Failure | Refusal | 214 Declined online | NOT_SUBMITTED |
145 | Failure | Refusal | 214 Declined online | DECLINED The raw response is FRAUD_CANCELLED |
146 | Failure | Refusal | 214 Declined online | TRANSACTION_NOT_PERMITTED |
147 | Failure | Refusal | 214 Declined online | CVC_DECLINED |
148 | Failure | Refusal | 214 Declined online | RESTRICTED_CARD |
149 | Failure | Refusal | 214 Declined online | DECLINED The raw response is REVOCATION_OF_AUTH |
150 | Failure | Refusal | 214 Declined online | DECLINED The raw response is DECLINED NON GENERIC |
151 | Failure | Refusal | 214 Declined online | ISSUER_SUSPECTED_FRAUD |
152 | Failure | Refusal | 214 Declined online | NO_CHECKING_ACCOUNT Note that the Customer Area reports "52: No savings account" |
153 | Failure | Refusal | 214 Declined online | NO_SAVINGS_ACCOUNT Note that the Customer Area reports "53: No checking account" |
154 | Failure | Cancel | 219 Shopper cancelled ctls fallback | 219 Shopper cancelled ctls fallback Remark: tap the card. The payment falls back to a non-contactless payment. The terminal shows "Present card" again, but this time without the contactless icon. Cancel the payment on the terminal to get the failure response. |
155 | MOBILE_PIN_REQUIRED Remark: Tap the card. The terminal shows See mobile for instructions. Note that in the test environment the only option is to cancel the transaction. |
|||
156 | Intended for internal testing by Adyen. Do not use this for your own test cases. | |||
157 | Failure | Refusal | 212 Withdrawal count exceeded | AUTHENTICATION_REQUIRED |
158 | Failure | Refusal | 235 AID banned | BAN_CURRENT_AID Remark: in a live environment, this is the response when the application is in the penalty box, offline processing is not possible, and there are no other applications on the card. |
159 | Failure | Refusal | 214 Declined online | ONLINE_PIN_REQUIRED |
160 | Failure | Refusal | 214 Declined online | TRY ANOTHER INTERFACE Intended for internal testing by Adyen. Do not use this for your own test cases. |
161 | Failure | Refusal | 214 Declined online | CHIP_DOWNGRADE_MODE Intended for internal testing by Adyen. Do not use this for your own test cases. |
162 | Failure | Refusal | 214 Declined online | SECURITY_VIOLATION |
Raw responses
In our back end, we receive the payment response from card schemes and issuers. In case of a declined payment, we map the raw response to a combination of ErrorCondition
, refusalReason
, and message
and return this in the Terminal API response.
Raw responses provide additional information, but you do not need to test them because you should not code against them. If you base your failure-handling logic on raw responses, that might break your integration because acquirers and issuers sometimes change their raw responses without notice.
If you still want to receive the raw response, you can:
- Set up standard webhooks with the additional setting Add Raw Acquirer Result enabled.
- For a Terminal API integration, configure receiving raw responses.