Classic-integration icon

Payment request for 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.

After you have set up your skin, set up a payment session using a generated URL, for example for a browser redirect (HTTP status code 302) for the shopper as a standard HTML form.  Use this payment session to transfer the shopper to the HPP. To avoid tampering with payment session data, data traffic it is cryptographically signed using a shared secret

  • Not all browsers can handle long URLs. For example, Microsoft Internet Explorer cannot handle URLs that are longer than 2083 characters. It is your responsibility to ensure that this limit is not exceeded.
  • All parameters and their values should be URL-encoded using UTF-8 character encoding, as per W3C recommendation.

Use case

A shopper makes an order for a total amount payable of GBP 100. The order reference in your backoffice is Internet order 12345.

The order details are:

  • Goods shipping date to the shopper: before or not later than October 20th, 2016.
  • Order summary information to display on the payment review page for the order: 1 digital camera.
  • Shopper's locale is British English.
  • The skin you want to use to style the HPP is 4aD37dJA.
  • The merchant account you are using is YOUR_MERCHANT_ACCOUNT.
  • The order was placed before or on October 11th 2016, 10:30 am.

For a full list of the fields you can provide in a payment request, see our Payment request reference.


This example represents a complete payment session, based on the order details above.

<!DOCTYPE html>
    <form method="post" action="" id="adyenForm" name="adyenForm" target="_parent">
      <input type="hidden" name="orderData" value="H4sIAAAAAAAAALMpSUzKSVVIzkksLrZVyk9RsuPlsikpApMZdi6pxclFmQUlmfl5Cjb6QAEFkGhgaWJeSWZJJZKQY25+aV4JRACoVR9qAoRMsTNUcMlMzyxJzFFwTsxNLUpU0Hg5e/fTrtkvVux5NnvH06UTn29pebKn8dnStY8bV2sCtaeAjE2BOatIyc4Qq6CBgYK7U4ACWA7TWpjKJCW7kHyg5diMwBBLUoAYrIfdbH1weNkBACLpJjE3AQAA">
      <input type="hidden" name="merchantSig" value="3iWDU/V5RMtdaiZC4YRIpoX9/v0=" />
      <input type="hidden" name="sessionValidity" value="2014-10-11T10:30:00Z" />
      <input type="hidden" name="shipBeforeDate" value="2014-10-20" />
      <input type="hidden" name="shopperLocale" value="en_GB" />
      <input type="hidden" name="merchantAccount" value="TestMerchant" />
      <input type="hidden" name="paymentAmount" value="10000" />
      <input type="hidden" name="currencyCode" value="GBP" />
      <input type="hidden" name="skinCode" value="4aD37dJA" />
      <input type="hidden" name="merchantReference" value="Internet order 12345" />
      <input type="hidden" name="shopperReference" value="YOUR_UNIQUE_SHOPPER_ID_IOfW3k9G2PvXFu2j" />
      <input type="hidden" name="recurringContract" value="RECURRING,ONECLICK" />
      <input type="hidden" name="shopperEmail" value="" />
      <input type="hidden" name="offset" value="0" />
      <input type="submit" value="Send" />
      <input type="reset" />

Some payment methods restrict WebView in the app for security reasons. We recommend using the following if you want to display local payment method in your app: