Classic-integration icon

Partial payments using Hosted Payment Pages

Hosted Payment Pages are no longer available

To accept payments through an Adyen-hosted page, use our Hosted Checkout.

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.

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: 

Payment Method Value
Webshop Giftcard webshopgiftcard
VVV Giftcard vvvgiftcard
Other giftcards -

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 Method Value
Visa visa
Mastercard mc
Amex amex
iDEAL ideal
Webshop Giftcard webshopgiftcard
VVV Giftcard vvvgiftcard

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

Skin settings

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.

Payment Selection

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.

Webhooks

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:

Field Required Description
live -white_check_mark- Boolean indicating if the event originated from the Live payment system (TRUE) or from the Test payment system (FALSE).
eventCode -white_check_mark- The value ORDER_OPENED.
pspReference -white_check_mark- The reference we assigned to the order. This is guaranteed to be globally unique and is used when communicating with us about this payment.
merchantReference -white_check_mark- This reference you assigned to the order/ payment request.
merchantAccountCode -white_check_mark- The merchant account the order was created for.
eventDate -white_check_mark- The time the order was generated.
success -white_check_mark- Always true.
amount -white_check_mark- The amount of the order.

Authorize payments

For each payment you receive an AUTHORISATION webhook event with the merchantReference and pspReference numbers. In the case of multiple partial payments, you receive multiple AUTHORISATION events with the same merchantReference and 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.

Testing

Partial payments can be tested via the Adyen Test system:

  1. Activate partial payments on your skin, and wait until your skin is up to date on all Test systems.
  2. Create a normal payment request, for example, for EUR 10.00.
  3. Select one of the supported partial payment methods, for example, Plastix.
  4. 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).
  5. Select the option that you want to pay the rest of the payment amount with another payment method if there is not enough balance.
  6. 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).
  7. After the last payment is authorised you are redirected back to the result URL.