Hosted Payment Pages are no longer available
This page is for the classic Hosted Payment Pages (HPP) integration, which has reached end-of-life. We are no longer processing transactions though HPP.
If you have any questions, contact our Support Team.
A flexible, secure and easy way to allow your customers to pay for your goods or services. When a shopper needs to pay to complete an order they are transferred from your site to the HPP where the customer performs the payment. The shopper is then directed back to your site along with the result of the payment.
In some cases, you may want for a shopper to pay the full payment amount via multiple payment methods. This is called partial payments: a single payment request that is paid via multiple payment methods.
The first until the second-last partial payment can be one of the following payment methods:
The last partial payment must always be a payment method which has a direct/online result. Below a list of all supported payment methods:
Payment methods like bank transfers are not supported as these do not have an online result.
To enable partial payments, in the Skin Options drop-down, activate the Support partial payments option on the skin you use with Adyen via Customer Area.
Finish by clicking the Save Skin to Test button.
Before processing the first partial payment an order is created. Like a normal payment, this order has a unique
pspReference. All partial payments are available in the Payment List as normal payments. The merchant reference for the partial payments of one order are the same.
After a partial payment the shopper is redirected back to the HPP to pay for the pending amount. The second payment can also be a partial payment of the amount that is pending. The sum of the payment amounts of the partial payments for one order should be the same as the total amount of the order (if all payments were successful).
There isn't any maximum number of partial payments for a single payment request.
You can add a custom Column Configuration in the Payment list. In this custom configuration, you can add the Order Reference column. This column contains the
pspReference as submitted back in the
ORDER_OPEN and the
ORDER_CLOSED webhook events.
Open an order
If the first payment for your payment request is a partial payment, an order is created. This generates an
ORDER_OPENED webhook event. The following fields are sent in this event:
||Boolean indicating if the event originated from the Live payment system (TRUE) or from the Test payment system (FALSE).|
||The reference we assigned to the order. This is guaranteed to be globally unique and is used when communicating with us about this payment.|
||This reference you assigned to the order/ payment request.|
||The merchant account the order was created for.|
||The time the order was generated.|
||The amount of the order.|
For each payment you receive an
AUTHORISATION webhook event with the
pspReference numbers. In the case of multiple partial payments, you receive multiple
AUTHORISATION events with the same
pspReference numbers corresponding to each partial payment.
Close an order
After the full order amount is paid, you receive a
ORDER_CLOSED webhook event. This event has the same
pspReference as you received in the
ORDER_OPENED event. The
success value for this event is true.
It is also possible that the last payment is refused or the browser is closed before the total order amount is paid. In this case, the order expires when the
sessionValidity date/time has been met in the payment request, and you receive a
ORDER_CLOSED webhook event, but with the
success value set to false. All partial payments that were processed previously are automatically cancelled or refunded. For more details see the Adyen API Manual.
Partial payments can be tested via the Adyen Test system:
- Activate partial payments on your skin, and wait until your skin is up to date on all Test systems.
- Create a normal payment request, for example, for EUR 10.00.
- Select one of the supported partial payment methods, for example, Plastix.
- Enter in the card details. The test details are available on our support website.
For Plastix it is; cardholder:
card number: 4010100000000000000 pin: 73737. By specifying the cardholder name as 'balance EUR 100' you can force that the balance on the card is only EUR 1.00 (amount is specified in minor units).
- Select the option that you want to pay the rest of the payment amount with another payment method if there is not enough balance.
- After the payment is authorised you are redirected back to the Hosted Payment Page. You now do another partial payment or finalize the order by completing payment (in our example EUR 9.00).
- After the last payment is authorised you are redirected back to the result URL.