How can I request a new feature?

If you would like to request a new feature in our Customer Area, or platform in general, we recommend that you contact your Account Manager or Adyen Support Team. We will look at each individual case to analyse the possibilities and practicalities and make a decision. 

What is paymentMethodVariant?

paymentMethodVariant field returns the type of payment method used during a transaction.  We are extending the number of possible values returned in this field for Visa and Mastercard. The values given below are available from January 30, 2017, you can find the detailed description in this document: Changes to Payment Method Variant

Make the necessary changes on your end to accept the new possible values when returned as a part of the payment authorisation response, server-to-server notifications, and Adyen reports.

Payment authorisation response and server-to-server notifications are not returned by default. 

Values returned in the paymentMethod field remains unchanged.

Payment Method Variant/Card type Description
Master card:
mc MasterCard card (not classified)
mcdebit MasterCard debit card (not classified)
mccredit MasterCard credit card (not classified)
mcstandardcredit MasterCard standard credit card
mcstandarddebit MasterCard standard debit card
mcpremiumcredit MasterCard premium credit card
mcpremiumdebit MasterCard premium debit card
mcsuperpremiumcredit MasterCard super premium credit card
mcsuperpremiumdebit MasterCard super premium debit card
mccommercialcredit MasterCard commercial credit card
mccommercialdebit MasterCard commercial debit card
mccommercialpremiumcredit MasterCard commercial premium credit card
mccommercialpremiumdebit MasterCard commercial premium debit card
mccorporatecredit MasterCard corporate credit card
mccorporatedebit MasterCard corporate debit card
mcpurchasingcredit MasterCard purchasing credit card
mcpurchasingdebit MasterCard purchasing debit card
mcfleetcredit MasterCard fleet credit card
mcfleetdebit MasterCard fleet debit card
mcpro MasterCard Proprietary card
maestro Maestro card
visa Visa card (not classified)
visadebit Visa debit card (not classified)
visacredit Visa credit card (not classified)
visastandardcredit Visa standard credit card
visastandarddebit Visa standard debit card
visapremiumcredit Visa premium credit card
visapremiumdebit Visa premium debit card
visasuperpremiumcredit Visa super premium credit card
visasuperpremiumdebit Visa super premium debit card
visacommercialcredit Visa commercial credit card
visacommercialdebit Visa commercial debit card
visacommercialpremiumcredit Visa commercial premium credit card
visacommercialpremiumdebit Visa commercial premium debit card
visacommercialsuperpremiumcredit Visa commercial super premium credit card
visacommercialsuperpremiumdebit Visa commercial super premium debit card
visacorporatecredit Visa corporate credit card
visacorporatedebit Visa corporate debit card
visapurchasingcredit Visa purchasing credit card
visapurchasingdebit Visa purchasing debit card
visafleetcredit Visa fleet credit card
visafleetdebit Visa fleet debit card
visaproprietary Visa Proprietary card
vpay VPay card
electron Visa electron card
amex Amex card
 amex_applepay Apple pay using Amex card
diners Diners card
 diners_applepay Apple pay using Diners card
discover Discover card
discover_applepay Apple pay using Discover card
jcb JCB card

China Union Pay card


China Union Pay debit card


China Union Pay credit card

Test card numbers

These cards are only valid on our TEST system and don't involve any actual transaction or transfer of funds. The TEST card numbers do not work on the Adyen LIVE Platform.

For all cards use the following expiration dates and security codes: 

Expiration Dates CVV2 / CVC3 CID (American Express)
08/2018 737 7373


737 7373


We recommend you start testing with the new 2-series BIN test card numbers for Mastercard. Live Mastercard 2-series BIN cards should become available starting from June, 2017.

Card Number   Card Type Issuing Country
2223 0000 4841 0010 Credit NL
2223 5204 4356 0010 Debit NL
2222 4107 4036 0010 Corporate NL
5100 0811 1222 3332 Bijenkorf NL

5103 2219 1119 9245

Prepaid US
5100 2900 2900 2909 Consumer NL
5577 0000 5577 0004 Consumer PL
5136 3333 3333 3335 Consumer FR
5585 5585 5585 5583 Consumer ES
5555 4444 3333 1111 Consumer GB
5555 5555 5555 4444 Corporate GB
5500 0000 0000 0004 Debit US
5424 0000 0000 0015 Pro EC


Card Number  Card Type Issuing Country
4111 1111 1111 1111 Consumer NL
4988 4388 4388 4305 Classic ES
4166 6766 6766 6746 Classic NL
4646 4646 4646 4644 Classic PL
4444 3333 2222 1111 Corporate GB
4400 0000 0000 0008 Debit US
4977 9494 9494 9497 Gold FR


Card Number Card Type Issuing Country
3569 9900 1009 5841 Consumer US


Card Number Card Type Issuing Country
4035 5010 0000 0008 Visadebit/Cartebancaire FR
4360 0000 0100 0005 Cartebancaire FR

American Express

Card Number Issuing Country
3700 0000 0000 002 NL


Card Number Issuing Country
3600 6666 3333 44   US


Card Number Issuing Country
6011 6011 6011 6611 US
6445 6445 6445 6445 GB

Bancontact (BCMC)

Test Card Number CVV2/CVC2 Username Password Issuing Country
6703 4444 4444 4449 None user password BE


Card Number Issuing Country
6062 8288 8866 6688 BR


Card Number Issuing Country
5066 9911 1111 1118 BR


Card Number
5019 5555 4444 5555

China Unionpay & Unionpay - Debit Card

Card Number PIN SMS on PC SMS on Mobile Cellphone


111111 111111


+852 11112222

Unionpay - Credit Card

Card Number Expiry Date CVN2 SMS on PC  SMS on Mobile Cellphone


12/2033 123



+852 11112222

China Union Pay - Express Pay (cup)

Card Number Expiry Date CVC Issuing Country
6243 0300 0000 0001 08/2018 737 CN


Card Number Card Type Expiry Date

1354 1001 4004 955

UATP 06/2017


Card Number Card Type House Number Address ZIP Code Country
5500000000000004 MC 1600 Pennsylvania Ave NW Washington, DC 20500 US
5555555555554444 MC 10

Downing Street,London

374251018720018 Amex 1600 Pennsylvania Ave NW Washington, DC 20500 US
374251021090003 Amex 1 Infinite Loop Cupertino, CA 95014 US
374101012180018 Amex 10 Downing Street,London SW1A 2AA GB
374251033270007 Amex 8-10 Broadway, Westminster, London SW1H 0BG GB
4400000000000008 Visa 1 Infinite Loop Cupertino, CA 95014 US
4444333322221111 Visa 8-10 Broadway, Westminster, London SW1H 0BG GB

3D Secure test cards (Mastercard, Maestro, Visa, AmEx)

Card Number Card Type Username Password Country
5212 3456 7890 1234 MC user password JP
4212 3456 7890 1237 Visa user password CA
3451 7792 5488 348 Amex user password  
3569 9900 1009 5833 JCB user password US
6731 0123 4567 8906 International user password NL
6759 6498 2643 8453
Start Date 12 / 2007, Issue Number 1
Maestro UK user password GB


Bank name
Customer name
Account ID

Test DE Bank




1234567890 44448888


  1. Enter Bank name or BIC and click Continue.
    You are redirected to giropay.
  2. Enter Customer nameIBAN and other required details.
  3. Click Send.


Bank Name Account Number (if needed) Other Data
TestBank 88888888 <anything>
  • countryCode of the payment must be DE
  • Using a different accountNumber (live data) will initiate a real payment. This payment will NOT be transferred to your account, and is therefore lost. It is not possible to reverse or refund this payment.


Name IBAN Country
A. Klaassen NL13TEST0123456789 NL
B. Klaassen NL36TEST0236169114 NL
C. Klaassen NL26TEST0336169116 NL
D. Klaassen NL16TEST0436169118 NL
E. Klaassen NL81TEST0536169128 NL
F. Klaassen NL27TEST0636169146 NL
G. Klaassen NL39TEST0736169237 NL
H. Klaassen NL82TEST0836169255 NL
I. Klaassen NL72TEST0936169257 NL
J. Klaassen NL46TEST0136169112 NL
K. Klaassen NL70TEST0736160337 NL
L. Klaassen NL18TEST0736162437 NL
M. Klaassen NL92TEST0736163433 NL
A. Schneider DE87123456781234567890 DE
B. Schneider DE92123456789876543210 DE
C. Schneider DE14123456780023456789 DE
D. Schneider DE36444488881234567890 DE
E. Schneider DE41444488889876543210 DE
F. Schneider DE60444488880023456789 DE
G. Schneider DE89888888881234567890 DE
H. Schneider DE94888888889876543210 DE
I. Schneider DE16888888880023456789 DE
A. Pacini IT60X0542811101000000123456 IT
A. Grand FR1420041010050500013M02606 FR
A. Martin ES9121000418450200051332 ES
W. Hurth AT151234512345678901 AT
H. Gasser CH4912345123456789012 CH
R. Paulsen DK8612341234567890 DK
A. Smih GB85TEST12345612345678 GB
B. Dalby NO6012341234561 NO
A. Bak PL20123123411234567890123456 PL
A. Andersson SE9412312345678901234561 SE

Gift Cards

Card Type Card Holder Name Card Number PIN
Gall & Gall Card <anything> 6064 3650 1000 0000 0000 73737
Baby Gift Card <anything> 6064 3622 0000 0000 0000 73737
Gift Card <anything> 6280 5011 0000 0000 0000 73737
Kado Wereld <anything> 6064 3625 1000 0000 0000 73737
Entertainment Card <anything> 6064 3611 0000 0000 0000 73737
Plastix <anything> 4010 1000 0000 0000 0000 73737
Webshop Giftcard <anything> 6064 3620 7000 0000 0000 73737
Leasure Giftcard <anything> 6064 3622 8000 0000 0000 73737
VVV Giftcard <anything>

6064 3642 4000 0000 000


GiftForYou (Bloemen) <anything> 6064 3647 1033 0000 0000 737373
  • To test the balance check use cardholder 'balance EUR <balance amount>' (e.g. 'balance EUR 100' for a balance of 1.00 EUR)


Each bank has a transaction status associated. Depending of the bank you choose the payment will be AUTHORISED, CANCELLED, REFUSED or PENDING. There is one for each status (CANCELLED, REFUSED and PENDING) and the rest will AUTHORISE the payment. 


Format: Country Code + Resultcode Example success: "GB00" Example refusal: "DE11"


You can find the Klarna Test details on the following website:

QIWI Wallet

Mobile Number +78000005105
Password Zei4chie
Checkout SMS code 975651
SMS for Oauth 209807
  • Only use a payment amount of 2.00 RUB 


Card Number
0000 0000 0990 3417

Cash Ticket

Card Number
0000 0000 0990 3188 


Username Password
DemoShopper DemoShopper

PayPal Sandbox Shopper

For PayPal test payments use the PayPal personal account's email of your sandbox account. See Sandbox account setup for more information.


Username Pin 111111


For Interac any email address can be provided, but the amount of the test transaction must be 1.00 CAD.


How do I get access to the Adyen API?

Adyen offers two different kinds of API solutions: Easy Encryption (EE) and Direct API.

  • For the Direct API, due to strict industry regulations you are required to be PCI DSS (Payment Card Industry Data Security Standard) compliant at Level 1 or 2 in order to access our API.
  • For the EE solution these requirements are not necessary since no sensitive data is stored on your server. We recommend you to look at our developers section to integrate in simple steps using EE.

Why do I get a 010 Not allowed response to my API call?

The 010 Not allowed response is a message returned when you are attempting to make an API call for which your user is not authorised. 

This can be due to either of the following:

  • You are attempting to make a full API call, no encryption, for which you are required to be fully PCI compliant.  If you are PCI compliant this role can be enabled on test to implement further by providing PCI DSS documentation.
  • You are attempting to make a encrypted call. Ask support to request this role on test, however to enable this on live you should to provide the PCI SAQ A Questionnaire. 

After the documents are approved the role is enabled for your user. If you've created a new user, ask our support to add this role for the user.

HPP & Skin

Can I change the layout of the Address info to a 2 column layout?

Include the following JavaScript code in the skin file pmfooter.txt or add it to the skin file custom.js. You can use this Javascript code to change the formatting of the address info for the Afterpay/Open Invoice Payment method. 

It creates a new table and removes rows from the old table and adding them to the new table. The new table is placed next to the existing one.

window.onload = function() {
	var oi = document.getElementById('pmmdetails-openinvoice');
	var t = document.getElementById('openinvoiceTable'); = 'left';
	var tn = document.createElement('table');
	tn.className = 'basetable'; = 'right';
	for (i = 0; i < 16; i++) {
	for (i = 0; i <= 15; i++) {
		tn.rows[i].innerHTML = t.rows[8 + i].innerHTML;
		if (i > 7 && i < 15) {
			tn.rows[i].style.display = 'none';
			tn.rows[i].className = 'openinvoice.deliveryAddress';
	var nr = document.getElementById('openinvoiceTable').rows.length;
	for (i = 1; i <= 16; i++) {
		document.getElementById('openinvoiceTable').deleteRow(nr - i);
	} = 'openinvoiceTable1'; = 'openinvoiceTable';

Can I use an encoding type (enctype) when submitting payments?

When submitting your payment request via HTTP Post you should not specify the encoding type (enctype).

If you specify the field, example: enctype='multipart/form-data', as encoding type and submit the payment. The payment is accepted but can result into an error for one of the fields contained within it (e.q. shopperLocale).

How can I change the Visa / MC / Amex logo to just Visa / MC?

You can update the logo's in the skin.

Add the following line to the screen.css file to display Visa/MC logo:

.pmBcard { background: url(../img/pm-gloss.png) 0 -1182px no-repeat !important; }

How can I display the HPP in a different language?

All of our skins are built with different language translations, by default. However, if there is no translations for a particular text string (key) or if the translation that we provide do not match with your expectations you can change it directly in the skin's GUI via our TEST Customer Area or by adding the translation in the skin file resources directory.

Our Skin manual describes how to alter the language translations via both methods (GUI and skin file recources directory). Our Github contains the complete list of each key used in the skin and it's English meaning.

How can I limit the payment options during partial payments flow

Yes, It is possible to decrease the amount of payment methods during a partial payment.

If you would like to limit the types of payment methods after the first part of the partial payment is done, you can add the code beneath to the skin files. This is helpful if a shopper pays the first part of the payment but you want to limit the payment method choice for future parts of the partial payment.

To achieve this add the the following code in the custom.js file in the js folder.

function hidePaymentMethod(pmName) {
	var pmList = document.getElementById("paymentMethods");
	var pmMethods = pmList.getElementsByTagName("input");
	var pmClassName = 'pmB'+pmName;
	for (var i = 0; i < pmMethods.length; i++) {
		if (hasClass(pmMethods[i], pmClassName)) pmMethods[i] = "none";
function hasClass(element, cls) {
	return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;

And the code beneath in the cfooter.txt file in the inc folder. In this example the payment methods Klarna and Openinvoice would not be shown in the second part of the partial payment.

	var pageForm = document.getElementById('pageform');
	if (pageForm.originalAmountValue) {

How can I use custom bank logos?

You can use a custom image by adding the logo to the img directory and modifying the CSS to point to the new image. 

How do I break out of an iFrame in my skin?

When using iFrames, it is sometimes mandatory to break out of it when using certain payment methods. See the attached iFrame Whitepaper for instructions.

NOTE: We highly advise against the usage of the HPP in an iFrame solution. Especially on Apple devices this could result in payment processing not being as expected. 

How to hide the shipBeforeDate on the HPP?

The shipBeforeDate is sent in the payment request:

shipBeforeDate The date by which the goods or services specified in the order must be shipped or rendered. Format is YYYY-MM-DD. See for more information.

You can hide the shipBeforeDate by defining the following style in the css file (screen.css) in your Skin:

#shippedbefore {
	display: none;

We show only the shipBeforeDate on our Multi-Page Payment pages:

You can choose to use our One Page Payment flow which does not show the text:

How to remove the slide animation effect from the One Page Payment Pages?

These steps describe how to remove the slide animation effect from the One Page Payment Pages:

  1. Download the Skin from Adyen Customer Area (CA) > Skins > Download one of your Skins.
  2. Go to Skin → inc → pmheader.txt
  3. Add the following script to the file:

    <script type = "text/javascript">
    config["pmmanimation"] = 1;
  4. Save the file and zip the main folder again.
  5. Upload the new zip file fromAdyen Customer Area (CA) > Skins > Select the Skin > Upload
  6. Wait a few minutes till the skin is Published on our Test platform and afterwards the fix should work.

Is it possible to hide the Card Holder Name field on the Hosted Payment Pages?

We advise to let the shopper enter in the card holder name for risk checks. For example, Amex checks the card holder name and give information back if the name matches or not. Visa and MC are not checking the name and that's why some merchants choose to not show the card holder name field.

You can hide the card holder name by adding the following Javascript to the 'js' folder of the skin:

jQuery( document ).ready(function() {
//Credit cards (hide name)
var cardholder = jQuery('#card
cardholder.val('Not Applicable');

What payment methods can be used for partial payments?

The following payment methods are supported for partial payments:

  • Gift cards such as VVV Gift Card, National Entertainment Card, etc;
  • Credit Cards such as Visa, MasterCard, Amex, etc;
  • Internet banking such as iDEAL, directEbanking (Sofort), etc;
  • Wallets such as PayPal, etc.

The first until the second-last partial payment can be done with gift cards and the last partial payment must always be a payment method which has a direct/online result, such as credit cards, internet banking, or wallets.

Payment methods like SEPA direct debit and bank transfers are not supported as these do not have an online result.


How do I find out which user submitted a MOTO payment?

To find out which user submitted a MOTO payment, view the payment detail and look for a row with the Item value set to Payment. Created By value on the same line shows who submitted the payment.


How often are failed notifications resent?

We notify you of all events when a payment is made or a modification is processed. Notifications should be used to keep your backoffice systems up to date with the status of each payment and modification.

Notifications are resent if their delivery has failed or if the delivery is uncertain. This happens when the response does not contain the required [accepted] response back to our systems. They are resent at the following durations:

  • 5 minutes
  • 10 minutes
  • 15 minutes
  • 30 minutes
  • 1 hour
  • 2 hours
  • 4 hours
  • 8 hours

A system message is placed after the 3rd re-attempt (i.e. after 5 + 10 + 15 minutes).

The last is repeated until 7 days has passed.

If you wish to trigger a resend attempt, send yourself a test notification in our Adyen Customer Area (CA) → Settings → Server Communication. If it is successful all queued notifications are resent. Otherwise, you are advised of the current errors our system is recording.

Standard Notification Additional Data Options - HTTP POST

For Standard Notification, there are some optional additional data elements that can be added to the notification body for the AUTHORISATION eventcode. The additional data options are as follows, first with a control notification (a notification with no additional data options enabled):

  • Control Notification
  • Add Acquirer Result 
  • Add Raw Acquirer Result 
  • HMAC KEY (HEX Encoded)
  • Include Acquirer Reference
  • Include Bank Account Details
  • Include Delivery Address
  • Include Extra Costs
  • Include Installments info
  • Include PayPal Details
  • Include POS TerminalInfo
  • Include ShopperReference and ShopperEmail
  • Include Shopper Interaction
  • Include Subvariant
  • Include Avs Data/ Billing address
  • Include Alias Info
  • Include Card Bin
  • Include Card Holder
  • Include Issuer Country
  • Include 3D result

The below option can only be enabled by Adyen Support:

  • Include Fraud Result

Control Notification


Add Acquirer result


Add raw acquirer result


HMAC KEY (HEX Encoded)


Include Acquirer Reference


Include Bank Account Details


Include Delivery Address


Include Extra Costs

additionalData.extraCostsValue=150& additionalData.extraCostsCurrency=EUR

Include instalments info


Include PayPal Details additionalData.paypalPayerId=LF5HCWWBRV2KL&additionalData.paypalPayerResidenceCountry=US&additionalData.paypalPayerStatus=unverified&additionalData.acquirerAccountCode=PayPalSandbox_TestAcquirer

Include POS TerminalInfo


Include ShopperReference and ShopperEmail

Include Shopper Interaction


Include Subvariant


Include Avs Data/ Billing address

Include Fraud Result


Include Alias Info


Include Card Bin


Include Card Holder


Include Issuer Country


Standard notification additional data options - SOAP

For standard notification, there are some optional additional data elements that can be added to the notification body for the AUTHORISATION eventcode. The additional data options are below, first with a control notification (a notification with no additional data options enabled):

  • Control Notification
  • Add Acquirer Result 
  • Add Raw Acquirer Result 
  • HMAC KEY (HEX Encoded)
  • Include Acquirer Reference
  • Include Bank Account Details
  • Include Delivery Address
  • Include Extra Costs
  • Include Installments info
  • Include Invoice Data
  • Include PayPal Details
  • Include POS TerminalInfo
  • Include ShopperReference and ShopperEmail
  • Include Shopper Interaction
  • Include Subvariant
  • Include Avs Data/ Billing address
  • Include Alias Info
  • Include Card Bin
  • Include Card Holder
  • Include Issuer Country
  • Include 3D result

The below options can only be enabled by Adyen Support:

  • Include Fraud Result

'Control' Notification:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="" xmlns:xsd="" xmlns:xsi="">
<ns1:sendNotification xmlns:ns1="">
<live xmlns="">false</live>
<notificationItems xmlns="">
<key xsi:type="xsd:string">authCode</key>
<value xsi:type="xsd:string">58747</value>
<key xsi:type="xsd:string">cardSummary</key>
<value xsi:type="xsd:string">1111</value>
<key xsi:type="xsd:string">expiryDate</key>
<value xsi:type="xsd:string">6/2016</value>
<currency xmlns="">EUR</currency>
<value xmlns="">50</value>
<originalReference xsi:nil="true"/>

Add Acquirer Result:

<key xsi:type="xsd:string">avsResult</key>
<value xsi:type="xsd:string">7 Both postal code and address match</value>
<key xsi:type="xsd:string">cvcResult</key>
<value xsi:type="xsd:string">1 Matches</value>

Add Raw Acquirer Result:

<key xsi:type="xsd:string">refusalReasonRaw</key>
<value xsi:type="xsd:string">AUTHORISED</value>
<key xsi:type="xsd:string">avsResultRaw</key>
<value xsi:type="xsd:string">7</value>
<key xsi:type="xsd:string">cvcResultRaw</key>
<value xsi:type="xsd:string">1</value>
<key xsi:type="xsd:string">acquirerCode</key>
<value xsi:type="xsd:string">TestPmmAcquirer</value>

HMAC KEY (HEX Encoded):

<key xsi:type="xsd:string">hmacSignature</key>
<value xsi:type="xsd:string">9u5B7JSCTLKN3W5LQWIBIodXXPx4MHWgkO%2Fl9qOmFRE%3D</value>

Include Acquirer Reference:

<key xsi:type="xsd:string">acquirerReference</key> 
<value xsi:type="xsd:string">7C9N3FNBKT9</value> 

Include Bank Account Details:

<key xsi:type="xsd:string">ownerName</key> 
<value xsi:type="xsd:string">A. Klaassen</value> 
<key xsi:type="xsd:string">countryCode</key> 
<value xsi:type="xsd:string">NL</value> 
<key xsi:type="xsd:string">bic</key> 
<value xsi:type="xsd:string">TESTNL01</value> 
<key xsi:type="xsd:string">iban</key> 
<value xsi:type="xsd:string">NL13TEST0123456789</value> 

Include Delivery Address:

<key xsi:type="xsd:string">deliveryAddress.stateOrProvince</key> 
<value xsi:type="xsd:string">NH</value> 
<key xsi:type="xsd:string"></key> 
<value xsi:type="xsd:string">Amsterdam</value> 
<key xsi:type="xsd:string">deliveryAddress.postalCode</key> 
<value xsi:type="xsd:string">1011 DJ</value> 
<key xsi:type="xsd:string">deliveryAddress.street</key> 
<value xsi:type="xsd:string">Simon Carmiggeltstraat</value> 
<key xsi:type="xsd:string">deliveryAddress.houseNumberOrName</key> 
<value xsi:type="xsd:string">6-50</value> 
<key xsi:type="xsd:string"></key> 
<value xsi:type="xsd:string">NL</value> 

Include Extra Costs:

<key xsi:type="xsd:string">extraCostsCurrency</key> 
<value xsi:type="xsd:string">EUR</value> 
<key xsi:type="xsd:string">extraCostsValue</key> 
<value xsi:type="xsd:string">150</value> 

Include Installments info:

<key xsi:type="xsd:string">installments.value</key> 
<value xsi:type="xsd:string">5</value> 

Include PayPal Details:

<key xsi:type="xsd:string">paypalPayerStatus</key> 
<value xsi:type="xsd:string">unverified</value> 
<key xsi:type="xsd:string">paypalPayerResidenceCountry</key> 
<value xsi:type="xsd:string">US</value> 
<key xsi:type="xsd:string">acquirerAccountCode</key> 
<value xsi:type="xsd:string">PayPalSandbox_TestAcquirer</value> 
<key xsi:type="xsd:string">paypalPayerId</key> 
<value xsi:type="xsd:string">LF5HCWWBRV2KL</value> 
<key xsi:type="xsd:string">paypalEmail</key> 
<value xsi:type="xsd:string"></value> 
<key xsi:type="xsd:string">paypalProtectionEligibility</key> 
<value xsi:type="xsd:string">Ineligible</value> 

Include POS TerminalInfo:

<key xsi:type="xsd:string">terminalId</key> 
<value xsi:type="xsd:string">06022622</value> 

Include ShopperReference and ShopperEmail:

<key xsi:type="xsd:string">shopperReference</key> 
<value xsi:type="xsd:string">AdyenTestShopperXX</value> 
<key xsi:type="xsd:string">shopperEmail</key> 
<value xsi:type="xsd:string"></value> 

Include Shopper Interaction:

<key xsi:type="xsd:string">shopperInteraction</key> 
<value xsi:type="xsd:string">Ecommerce</value> 

Include Subvariant:

<key xsi:type="xsd:string">paymentMethodVariant</key> 
<value xsi:type="xsd:string">mcpro</value> 

Include Avs Data/ Billing address:

<key xsi:type="xsd:string">billingAddress.street</key> 
<value xsi:type="xsd:string">Keizergracht</value> 
<key xsi:type="xsd:string"></key> 
<value xsi:type="xsd:string">Amsterdam</value> 
<key xsi:type="xsd:string">billingAddress.stateOrProvince</key> 
<value xsi:type="xsd:string">NH</value> 
<key xsi:type="xsd:string"></key> 
<value xsi:type="xsd:string">NL</value> 
<key xsi:type="xsd:string">billingAddress.houseNumberOrName</key> 
<value xsi:type="xsd:string">10</value> 
<key xsi:type="xsd:string">billingAddress.postalCode</key> 
<value xsi:type="xsd:string">1234EA</value> 

Include Fraud Result:

<key xsi:type="xsd:string">fraudCheck-25-CVCAuthResultCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-21-EmailDomainValidation</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-41-PaymentDetailNonFraudRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-9-ShopperIpIssuingCountry</key> 
<value xsi:type="xsd:string">4</value> 
<key xsi:type="xsd:string">totalFraudScore</key> 
<value xsi:type="xsd:string">25</value> 
<key xsi:type="xsd:string">fraudCheck-20-AVSAuthResultCheck</key> 
<value xsi:type="xsd:string">20</value> 
<key xsi:type="xsd:string">fraudCheck-8-ShopperEmailUsage</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-6-ShopperIpRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-15-IssuingCountryReferral</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-26-ShopperEmailRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-4-HolderNameUsage</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-2-CardChunkUsage</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-13-IssuerRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-10-HolderNameContainsNumber</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-5-IPCountryReferral</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-3-PaymentDetailUsage</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-7-ShopperIpUsage</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-27-PmOwnerRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-11-HolderNameIsOneWord</key> 
<value xsi:type="xsd:string">1</value> 
<key xsi:type="xsd:string">fraudCheck-1-PaymentDetailRefCheck</key> 
<value xsi:type="xsd:string">0</value> 
<key xsi:type="xsd:string">fraudCheck-28-AnonymousProxyCheck</key> 
<value xsi:type="xsd:string">0</value> 

Include Alias Info:

<key xsi:type="xsd:string">aliasType</key> 
<value xsi:type="xsd:string">Default</value> 
<key xsi:type="xsd:string">alias</key>
<value xsi:type="xsd:string">H167852639363479</value>

Include Card Bin:

<key xsi:type="xsd:string">cardBin</key> 
<value xsi:type="xsd:string">521234</value> 

Include Card Holder:

<key xsi:type="xsd:string">cardHolderName</key> 
<value xsi:type="xsd:string">Test Cardholder</value> 

Include Issuer Country:

<key xsi:type="xsd:string">issuerCountry</key> 
<value xsi:type="xsd:string">JP</value> 

Include 3D result:

<key xsi:type="xsd:string">threeDOffered</key> 
<value xsi:type="xsd:string">true</value> 
<key xsi:type="xsd:string">threeDAuthenticated</key> 
<value xsi:type="xsd:string">true</value> 

What are possible notification refusal reasons?

When you receive notifications with success=false, the reason field usually has a short description explaining why. There is not a predefined list of possible values for this field, below we list the common ones:


  • 3d-secure: Authentication failed
  • Issuer Unavailable
  • Referral
  • Expired Card
  • Invalid Card Number
  • Acquirer Error
  • Blocked Card
  • Not enough balance
  • Invalid amount
  • Not Supported
  • Duplicate of: {PSP Number}


  • Insufficient balance on payment; Insufficient in-process funds on account for refunding this payment
  • Insufficient balance on payment; Operation not available
  • Insufficient balance on payment; This paypal transaction is more than 60 days old, cannot be refunded anymore
  • Transaction not found
  • Insufficient balance on payment; Refund amount too high (insufficient balance on payment). Available amount: {currency code} {amount}
  • Operation failed


  • Transaction not found
  • Insufficient balance on payment
  • Modification in different currency than authorisation
  • Operation not available
  • Operation failed
  • This is a sale transaction, not possible to capture a smaller amount

What does the message "MERCHANT is not accepting notifications" mean?

The "MERCHANT is not accepting notifications" message, means that after attempting to send a notification 3 times we did not receive the expected response. The response being "[accepted]".

We attempt to resend the notifications (see How often are failed notifications resent?) periodically. 

The notifications are queued per notification endpoint. Each individual queue has it's own queue and is filled separately. As soon as the first notification of the queue is accepted the queue is flushed and the rest are resent.

We attempt to send a notification and stay connected for up to 10 seconds, after which we disconnect and attempt again later. 

Why do I only receive notifications for card payments and not for other methods?

Direct payment methods like Creditcards, iDeal, ELV are sent from our Front End Machines and Central system. The front end machines are always send out notifications, also when your system is facing issues with accepting notifications.

The payment methods which are authorised with a status check on our side such as PayPal, TrustPay, and Dotpay are only sent out via our Central system. The Central system is not sending out notifications when you are in the penalty box. 

Why do I receive duplicate notifications?

Due to the structure of the Adyen platform, an authorisation notification may be sent twice. You can ignore these notifications.

The notification process works in the following way: Our front end system (which treats the payments) sends a notification to your system a notification in real time, communicating the payment transaction.

And, our central system is also designed to notify about the same transaction. The central system however, waits for a confirmation response for the sent notification. Each notification sent from this system should receive an [accepted] response else it starts queueing up all the notifications to be sent next. All the queued notification are sent after the response for the first one is received.

To prevent these issues, we recommend that you handle accepting and replying to notifications separately from processing them. Also, you generate an [accepted] response when a notification is stored.



Where to download the extension?

The plugin is available at the following location:

Adyen Cash is not working

Ensure that you have General API Payments role enabled for your System User. The role can viewed by navigating to Adyen Customer Area (CA) → Settings → Users → System → Roles and Associated Accounts.

If this role is not already enabled for you, contact the Adyen Support Team.

A payment method visible during checkout

Follow these steps:

  1. Ensure the configuration is as described in Set up Adyen HPP payment methods.
  2. Clear the magento cache after you make the skin changes.
  3. If external payment module is active it can cause a conflict. Turn off external payment module and try again.
  4. Check that CURL is enabled in your Magento installation.

How to make an online credit memo + refund?

Go to Magento admin panel → Sales → Orders → Select the orderInvoices → Select the Invoice →Credit memo.

I do not receive order confirmation e-mails for bank transfer/SEPA

You should receive the order confirmation e-mail when the payment is confirmed.

If you want the confirmation when the payment is initiated, do the following things:

  1. Enable banktransfer pending notification or SEPA pending notification.
  2. Select Yes for Send confirmation email for Banktransfer/SEPA.

For more details, see Magento order processing.

I receive error 401 when testing my notifications

If you are running PHP in CGI mode, add the following to your .htaccess file:

RewriteEngine on
RewriteCond %{HTTP:Authorization} (.+)
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

I would like to have multi-shipping for alternative payment methods

Magento has a functionality called MultiShipping. If you select this you have the option to select an address for every item. Magento will only allow API payment methods and not redirect because in the backend it is creating two different orders and two different payments.

Magento shows: Missing the encrypted data value. Make sure the CSE script did encrypt the card details

This issue can be caused by one of the following reasons:

  1. The CSE key is not configured properly within Magento.
  2. A third party module is breaking the functionality with Adyen's module. This can be verified by disabling the third party module and using the standard checkout module. 
    You may see Javascript errors while using a third party module. Diagnose your checkout page using your browser console to search for any Javascript errors.
  3. You're overriding the cc.pthml template.

My Adyen plugin is not styled properly/payment logos are not appearing

If you are using an external checkout module, make sure that the Adyen Stylesheet css/adyenstyle.css is loading properly.

My Order status is stuck in authorization state

Ensure that:

  • Notifications are configured properly. Test server communication using the Adyen Customer Area (CA) → SettingsServer Configuration to check for any errors.
  • If your account is set to manual capture, you need to perform a capture request.
  • Magento cronjob is running and your Sales > Adyen Notification Queue is empty.

My refunds are failing

Please verify that the Web Service user is properly configured. The Web Service username is usually in ws@Company.YourCompanyCode format

Refund button is not available for an order

Ensure that you have created the credit memo on the invoice instead of the order.

The Payment methods are not displayed properly even with correct country code

Try the following:

  • Clear the magento cache.
  • Delete the country code in ISO country under Adyen Defaults.

When I use HPP and I press the back button, I see the success page in Magento

Make sure that the result url in the skin is correct. Most of the time there is an error in HTTP/HTTPS.


How can I display Adyen's SSL certificate on the HPP?

You can display the Symantec or Norton seal on the Adyen Hosted Payment Pages. The seal will appear on the HPP and the shopper can verify its validity by clicking on the seal/logo.

To include the seal, code has to be added to two different files in the skin files:

  • In the screen.css file in the css folder, include the following code:

    #thawteseal { 
    float: right; 
    padding-right: 20px;
    padding-bottom: 10px;
  • In the c.footer.txt file in the inc folder, include the following code:

    <div id="SSLseal" title="Click to Verify - This site chose Symantec SSL for secure e-commerce and confidential communications."">
    <script type="text/javascript" src=";size=L&amp;use_flash=NO&amp;use_transparent=NO&amp;lang=en"></script>

This will place a seal in the lower right corner of the hosted payment page and we advices to keep the location as is. In case you want to place the seal somewhere else on the page, see Skin

POODLE vulnerability on SSL 3.0

POODLE is an internet security vulnerability that impacts the SSL 3.0 protocol. This protocol is designed to ensure secure connections on the Internet. When exploited, this vulnerability potentially enables individuals to gain access to connections considered secure. 

Given this risk, Adyen has disabled SSL 3.0 support on our LIVE environment on Monday the 3rd of November, 2014. If you are using SSL 3.0 to access the Adyen API, SSL 3.0 is no longer supported. You can confirm your API interface continues to work by checking your solution against our TEST environment because we have already disabled SSL 3.0 support for our TEST environment.

We recommend that all of our merchants disable SSL 3.0, especially on hosts directly interacting with Adyen and instead use Transport Layer Security (TLS). Our traffic analysis has shown that virtually all consumers interacting with the Adyen hosted payment pages (HPP) are using browsers which support TLS.

What is TLS?

Transport Layer Security (TLS) is a cryptographic protocol designed to provide communication security over computer networks and over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.

The PCI Security Standards Council (PCI SSC) no longer accepts early TLS (TLS 1.0) as a secure communication protocol for transmitting payment card data.

When is the end of the “early TLS” grace period from PCI SSC?

TLS 1.0 must not be used after June 30th 2018.

When is Adyen planning to phase out early TLS for merchants?

Adyen will phase out TLS 1.0 no later than April 1st 2018. 

Adyen advises that merchants move to using TLS 1.2 as soon as is practical. Adyen may phase out early TLS earlier than the new PCI SSC deadline, dependent on the emerging threat landscape, but will communicate any changes ahead of time.

But I heard that this was supposed to end in mid 2016?

The PCI SSC has deferred the date two years because of market feedback, a significant part of the payments landscape found the 2016 timeline to be unachievable. Adyen was on track to achieve the 2016 timeline.

Why are the dates different?

Adyen is committed to only support the highest security standards for its merchants and as such plans to turn off early TLS on or before April 1st 2018. 

Can merchants migrate to TLS 1.2 earlier?

Adyen has supported TLS 1.2 for some time and all new merchant integrations must be using TLS 1.2. Existing merchants should migrate to TLS 1.2 as soon as practical for them.

What is the prognosis for Customer Area browsers at the moment?

As of November 2015, about 95% of Customer Area browsers were capable of TLS 1.2 connections, with reasonable stability over the last 2 months.

Can merchants and shoppers already use TLS 1.2 with Adyen?

Yes. Adyen has supported TLS 1.2 for some time already.

What merchant connectivity might be impacted?

• Merchant’s shoppers using old browsers (IE8 and IE9 as well as Android versions 4.4 and below) that only support early TLS in combination with Hosted Payment Pages (HPP) and Client Side Encryption (CSE) may be impacted, so our advice is to encourage upgrades now.

• HPP and Hosted CSE merchants should expect that Adyen payments will no longer operate for shoppers using browsers that only support early TLS on or before April 1st 2018. 

• CSE integration merchants will need to have working TLS 1.2 in place before April 1st 2018.

• API integrations will need to support TLS 1.2 before April 1st 2018.

• Merchants can expect that Notifications will use TLS 1.2 on April 1st 2018.

• Adyen Customer Area user browsers will need to support TLS 1.2 before 1 April 2018, and our advice is to begin upgrades now or move to “evergreen” browsers.

NOTE: Integrations such as Java 7 or .NET 4.0 don’t support TLS 1.2 using default configurations. Integrations using Java 6 and below, .NET 3.5 and below, Python 2.7.8 and below, Ruby 1.9.3 and below, OpenSSL 1.0.0 and below will all be difficult or impossible to configure to use TLS 1.2, and significant migration effort may be required by the merchant. Adyen’s advice is to begin the process of planning and implementing upgrades now.

What is the prognosis for shopper browsers?

As of November 2015, sampled POSTs to Adyen’s HPP showed 95% of the shoppers are using TLS 1.2 globally with a 2-month improvement of just under 1%.

We are seeing significant progress for shopper browser upgrades over time. Adyen expects this trend to continue until April 1, 2018.

What can merchants do to encourage upgrades of shopper browsers?

Merchants are encouraged to check their shoppers’ browsers before the turn off date, and during the shopper interactions with their shopping cart, suggest to shoppers to upgrade their browsers.

Do merchants need to phase out early TLS on their shopper-facing websites too?

Yes. They must do so before the end of the grace period that ends on June 30, 2018.