- Introduction
- TLS Security and Communication Settings
- Licenses and Interfaces
- PSD2
- Payment Page Interface
- Saferpay Fields
- Transaction Interface
- Secure Card Data
- Recurring Payments
- Refunds via API
- Inquire Interface
- Mobile App integration
- IFrame Integration and CSS
- Partial Captures
- Marketplace
- Secure PayGate Management Api
- Fraud Intelligence
- API Health Check
- Mastercard Issuer Installments
- FAQ
- Payment means for testing
-
Demo
- Saferpay Demo Environment
-
Payment Method specifics
- Credit Cards
- Masterpass
- TWINT
- PayPal
- BillPay
- Swiss Postcard
- SOFORT by Klarna
- Klarna Payments
- eps
- paydirekt
- iDeal
- SEPA
- ePrzelewy
- Alipay
- Bancontact
- ApplePay
- Crypto Payments
-
Additional Information
- Saferpay Blog
- Contact
- API Specification
- Changelog
Payment Means for testing
In this Chapter you will find a list of payment means you can use for testing purposes!
Warning: DO NOT use real credit card details, when testing on the Saferpay test-environment! Even though the test accounts cannot process real payment means, it is also important to not share them in the first place on the test-system, for security reasons!
Note: Some testing-methods may not be activated by default. In these cases, you can contact the Saferpay Integration Support, if you want a specific payment method for testing on a specific terminal. Furthermore, please also refer to this matrix to see, whether or not testing will be available for a given payment method!
Note: The CVC can be any value you want, same goes for the Holder-Name and Expiration-date.
For 3D Secure 2
Card Number | Test-case | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
9010003150000001 | Frictionless Y. Card simulates a fully successful Frictionless Flow! Liability shift: YES, Authenticated: true |
||||||||||||||||||||||||||||||
9010003750000005 | LiabilityShift can't be granted, due to technical reasons. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Liability shift: false, Authenticated: N/A |
||||||||||||||||||||||||||||||
9010004950000001 | Challenged Y. This card simulates a successful challenged flow. Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9010004250000008 | Challenged A. The authentication was not successful, but LiabilityShift is still granted. Liability shift: true, Authenticated: false |
||||||||||||||||||||||||||||||
9010004350000007 | Challenged N. The 3DS authentication failed. An authorization will not be attempted. The transaction fails in this case! Liability shift: N/A, Authenticated: N/A |
||||||||||||||||||||||||||||||
9010004150000009 | 3DS Failure, authorization will be attempted. This card fails the 3DS authentication. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Crd goes through a Challanged flow beforehand! Liability shift: false, Authenticated: false |
||||||||||||||||||||||||||||||
9010403104000000 | Frictionless Y with DCC. This card additionally will perform DCC. Card currency is USD! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9010503104000007 | Frictionless Y with DCC. This card additionally will perform DCC. Card currency is JPY! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9010403153150003 | General Decline. This card fails the card check! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9010403153900001 | Card for simulating response codes via the amount. The last two digits inside the amount are important. Down below you'll find some examples for return-codes/amounts. Important Note: These are the most common codes! However some Issuers may return codes not on this list!
|
||||||||||||||||||||||||||||||
9010100000020013 | Card, to simulate a partial approval. | ||||||||||||||||||||||||||||||
9010103204160007 | Card, to simulate a Soft Decline. This card will ALWAYS return a Soft-Decline, even if SCA was performed! |
For 3D Secure 1
Card Number | Test-case |
---|---|
9010100052000004 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
9010101052000002 | Card "not enrolled". Bank grants liability shift! Liability shift: YES, Authenticated: false |
9010100052101000 | Card "enrolled". Bank rejects liability shift despite a successful authentication! Liability shift: NO, Authenticated: true Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9010100352000001 | "Authentication Attempt". Simulates an authentication attempt, where the bank grants the liability shift Liability shift: YES, Authenticated: false |
9010101052101008 | Card "not enrolled". Bank rejects liability shift! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9010101152000001 | "Unable to enroll". 3D Secure is not possible! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9010100152000003 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
9010101052900003 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
9010500004000004 | Card for "simulating DCC" with the card currency JPY. |
9010400004000007 | Card for "simulating DCC" with the card currency USD. |
9010000004150008 | "Card Check failed". A decline will simulated by the internal card check with Alias Insert. Authorization requests with this card will be declined as well. |
For 3D Secure 2
Card Number | Test-case | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
9030003150000007 | Frictionless Y. Card simulates a fully successful Frictionless Flow! Liability shift: YES, Authenticated: true |
||||||||||||||||||||||||||||||
9030003750000001 | LiabilityShift can't be granted, due to technical reasons. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Liability shift: false, Authenticated: N/A |
||||||||||||||||||||||||||||||
9030004950000007 | Challenged Y. This card simulates a successful challenged flow. Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9030003204000003 | Challenged A. The authentication was not successful, but LiabilityShift is still granted. Liability shift: true, Authenticated: false |
||||||||||||||||||||||||||||||
9030004350000003 | Challenged N. The 3DS authentication failed. An authorization will not be attempted. The transaction fails in this case! Liability shift: N/A, Authenticated: N/A |
||||||||||||||||||||||||||||||
9030004150000005 | 3DS Failure, authorization will be attempted. This card fails the 3DS authentication. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Crd goes through a Challanged flow beforehand! Liability shift: false, Authenticated: false |
||||||||||||||||||||||||||||||
9030403104000006 | Frictionless Y with DCC. This card additionally will perform DCC. Card currency is USD! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9030503104000003 | Frictionless Y with DCC. This card additionally will perform DCC. Card currency is JPY! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9030403153150009 | General Decline. This card fails the authorization and also the card check! Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9030403153900007 | Card for simulating response codes via the amount. The last two digits inside the amount are important. Down below you'll find some examples for return-codes/amounts. Important Note: These are the most common codes! However some Issuers may return codes not on this list!
|
||||||||||||||||||||||||||||||
9030100000021017 | Card, to simulate a partial approval. | ||||||||||||||||||||||||||||||
9030103204160003 | Card, to simulate a Soft Decline. This card will ALWAYS return a Soft-Decline, even if SCA was performed! |
For 3D Secure 1
Card Number | Test-case |
---|---|
9030100052000000 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
9030100052101006 | Card "enrolled". Bank rejects liability shift despite a successful authentication! Liability shift: NO, Authenticated: true Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9030100352000007 | "Authentication Attempt". Simulates an authentication attempt, where the bank grants the liability shift Liability shift: YES, Authenticated: false |
9030101052101004 | Card "not enrolled". Bank rejects liability shift! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9030101152000007 | "Unable to enroll". 3D Secure is not possible! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9030100152000009 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
9030101052900009 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
9030500004000000 | Card for "simulating DCC" with the card currency JPY. |
9030400004000003 | Card for "simulating DCC" with the card currency USD. |
9030000004150004 | "Card Check failed". A decline will simulated by the internal card check with Alias Insert. Authorization requests with this card will be declined as well. |
For 3D Secure 2
Card Number | Test-case | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
9070003150000008 | Frictionless Y. Card simulates a fully successful Frictionless Flow! Liability shift: YES, Authenticated: true |
||||||||||||||||||||||||||||||
9070003750000002 | LiabilityShift can't be granted, due to technical reasons. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Liability shift: false, Authenticated: N/A |
||||||||||||||||||||||||||||||
9070004950000008 | Challenged Y. This card simulates a successful challenged flow. Liability shift: true, Authenticated: true |
||||||||||||||||||||||||||||||
9070004250000005 | Challenged A. The authentication was not successful, but LiabilityShift is still granted. Liability shift: true, Authenticated: false |
||||||||||||||||||||||||||||||
9070004350000004 | Challenged N. The 3DS authentication failed. An authorization will not be attempted. The transaction fails in this case! Liability shift: N/A, Authenticated: N/A |
||||||||||||||||||||||||||||||
9070004150000006 | 3DS Failure, authorization will be attempted. This card fails the 3DS authentication. Interesting for testing the Condition parameter, to stop authorizations without LiabilityShift! Crd goes through a Challanged flow beforehand! Liability shift: false, Authenticated: false |
||||||||||||||||||||||||||||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | Card for simulating response codes via the amount. The last two digits inside the amount are important. Down below you'll find some examples for return-codes/amounts. Important Note: These are the most common codes! However some Issuers may return codes not on this list!
|
||||||||||||||||||||||||||||||
9070103204160004 | Card, to simulate a Soft Decline. This card will ALWAYS return a Soft-Decline, even if SCA was performed! |
For 3D Secure 1
Card Number | Test-case |
---|---|
9070100052000001 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
9070100052101007 | Card "enrolled". Bank rejects liability shift despite a successful authentication! Liability shift: NO, Authenticated: true Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9070100352000008 | "Authentication Attempt". Simulates an authentication attempt, where the bank grants the liability shift Liability shift: YES, Authenticated: false |
9070101052101005 | Card "not enrolled". Bank rejects liability shift! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9070101152000008 | "Unable to enroll". 3D Secure is not possible! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9070100152000000 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
9070101052900000 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
Card Number | Test-case |
---|---|
9050100052000005 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
9050100052101001 | Card "enrolled". Bank rejects liability shift despite a successful authentication! Liability shift: NO, Authenticated: true Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9050100352000002 | "Authentication Attempt". Simulates an authentication attempt, where the bank grants the liability shift Liability shift: YES, Authenticated: false |
9050101052101009 | Card "not enrolled". Bank rejects liability shift! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9050101152000002 | "Unable to enroll". 3D Secure is not possible! Liability shift: NO, Authenticated: false Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9050100152000004 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
9050101052900004 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
Card Number | Test-case |
---|---|
9040100052000008 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
9040100052101004 | Card "enrolled". Bank rejects liability shift despite a successful authentication! Liability shift: NO, Authenticated: true Important: Saferpay will still attempt the authorization! Accepting or declining this transaction is up to the merchant! |
9040100352000005 | "Authentication Attempt". Simulates an authentication attempt, where the bank grants the liability shift Liability shift: YES, Authenticated: false |
9040100152000007 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
9040101052900007 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
9040103204160001 | Card, to simulate a Soft Decline. This card will ALWAYS return a Soft-Decline, even if SCA was performed! |
Card Number | Test-case |
---|---|
9060100052000003 | "Success Card". This card simulates a successful transaction! |
9060101052900002 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
Card Number | Test-case |
---|---|
9080100052000009 | "Success Card". This card simulates a successful transaction! |
9080101052900008 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
Card Number | Test-case |
---|---|
9090100052000007 | "Success Card". This card simulates a successful transaction! |
9090101052900006 | Card for "simulating response codes" via the amount. The last two digits in the currency amount determine the issuance of the authorisation request. A successful payment is only triggered with a value equal to "00" or "01". While requests with the AMOUNT "00" simulate a request with an "enrolled" card, the amount "01" simulates a transaction without a liability shift. For all other values that are different to "00" or "01", a rejection is simulated with the authorisation. |
Note: Bancontact uses an authentication-procedure similar to 3D Secure with VISA and MasterCard. However the difference is, that Bancontact will automatically refuse all payments, that aren't fully authenticated. Due to this, there are only these few outcomes possible.
Card Number | Test-case |
---|---|
91108000500000005 | Card "enrolled". This card is subjected to the full 3D Secure authentication process! Liability shift: YES, Authenticated: true |
91108001501800005 | "Authentication failed". The card holder failed to authenticate him/herself! Important: In this case, the authorization will fail! |
IBAN | Test-case |
---|---|
DE17970000011234567890 | "Success IBAN". IBAN to simulate a successful transaction. |
DE52970000021234567890 | IBAN to "simulate response codes". IBAN for controlling authorisation codes via the amount. 210nn simumulates a decline, where "nn" is the simmulated decline code. Requests with other amounts simumulate positive responses. |
PayPal payments can be operated by a simulator in the Saferpay test account. The first version of the simulator supports successful transactions and declines only. The range of function will be upgraded soon.
On the test environment, Saferpay offers a TWINT Simulator for the Currencies CHF only, since this Payment Method is only avalable for the swiss market.
The Simulator is controlled by submitting different amount-values to simulate the following cases:
Note: Any other amount will cause a success after 20 seconds!
Amount | Test-case |
---|---|
6611 | The execution of the debit callback is delayed by 1 second. |
6612 | The execution of the debit callback is delayed by 10 seconds. |
6613 | The execution of the debit callback is delayed by 60 seconds. |
6614 | The execution of the debit callback is delayed by 120 seconds. |
6615 | The execution of the debit callback is delayed by 600 seconds. |
6651 | Returns an authorization declined result |
6661 | Returns an authorization expired result |
Saferpay does offer an extensive iDeal simulator. All test-cases are controlled through the simulator-ui, when opening up the payment page.
However the following cases must be simulated via amount and not GUI. Simply do a redirect, without selecting a case on the GUI!
Amount | Test-case |
---|---|
490 | Session-Timeout: Transaction results in an Open-Case. User gets redirected to the FailUrl, with the Assert reporting a TRANSACTION_STILL_IN_PROGRESS error. The NotifyUrl is then called 10 minutes later, with the Assert reporting a success. |
Saferpay does offer an extensive paydirekt simulator. All test-cases are controlled through the simulator-ui, when opening up the payment page.
Saferpay does offer an extensive unionpay simulator. All test-cases are controlled through the simulator-ui, when opening up the Payment Page. However, you need to use the following test-card, in order to activate it: 9100100052000005
Saferpay does offer an extensive Postfinance simulator, for Postfinance E-Finance and Postfinance Card. All test-cases are controlled through the simulator-ui. The Secure Card Data feature is also supported!
Saferpay does offer an extensive Apple Pay simulator. All test-cases are controlled through the simulator-ui. Unlike production, you do not need an Apple device, or browser, to test Apple Pay!
Card Number (BROKEN! DO NOT USE THESE CARDS FOR NOW!) | Test-case |
---|---|
9030101052000008 | Card "not enrolled". Bank grants liability shift! Liability shift: YES, Authenticated: false |
9070101052000009 | Card "not enrolled". Bank grants liability shift! Liability shift: YES, Authenticated: false |
9050101052000003 | Card "not enrolled". Bank grants liability shift! Liability shift: YES, Authenticated: false |
Saferpay does offer multiple options to test Klarna. Please refer to the Klarna Payments chapter, for more information.