---
title: "Hosted Onboarding Page"
description: "Simplify your implementation with an Adyen-hosted onboarding page."
url: "https://docs.adyen.com/classic-platforms/onboard-users/hosted-onboarding-page"
source_url: "https://docs.adyen.com/classic-platforms/onboard-users/hosted-onboarding-page.md"
canonical: "https://docs.adyen.com/classic-platforms/onboard-users/hosted-onboarding-page"
last_modified: "2021-11-29T09:13:00+01:00"
language: "en"
---

# Hosted Onboarding Page

Simplify your implementation with an Adyen-hosted onboarding page.

[View source](/classic-platforms/onboard-users/hosted-onboarding-page.md)

This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our [new integration guide](/adyen-for-platforms-model) instead.

Send account holders to Adyen's Hosted Onboarding Page (HOP) where they provide additional information directly to Adyen. This is our recommended solution, because it requires less implementation effort on your side.

With HOP, you can:

* Collect more information. For example, if the verification fails, account holders can use HOP to provide the new information required from them.
* Render the page in your account holder's preferred [language](/classic-platforms/onboard-users/hosted-onboarding-page/customize-experience#change-page-language).
* [Customize the page's appearance](/classic-platforms/onboard-users/hosted-onboarding-page/hop-appearance) in your [Customer Area](https://ca-test.adyen.com/).
* [Customize the hosted onboarding user experience](/classic-platforms/onboard-users/hosted-onboarding-page/customize-experience) through the [/getOnboardingUrl](https://docs.adyen.com/api-explorer/Hop/latest/post/getOnboardingUrl) endpoint.
* Receive account updates and verification results through notification webhooks.

### How it works

1. [Create an account holder](#create-account-holder) and present a link or a button to start the verification process.

2. When the account holder selects the link or the button, provide Adyen with the account holder code and [get a one-time HOP URL](#get-hosted-onboarding-page-url).

3. [Handle the redirect](#handle-redirect). After the account holder is successfully redirected to the page, the session starts. The session is valid for 30 minutes. When the account holder provides their information, we send account updates through notification webhooks.

   The account holder is redirected back to your website after they finish providing their details or when the session expires.

4. [Receive the verification results](#get-the-kyc-results) through notification webhooks.

Play the video to see a sample HOP session.

[Your browser does not support the video tag.](/user/pages/docs/06.classic-platforms/05.onboard-users/01.hosted-onboarding-page/hop-demo.mov?loading=auto\&decoding=auto\&fetchpriority=auto)

## Requirements

1. Contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to:

   * Enable hosted onboarding for your platform.
   * Provide a default return URL. The default return URL takes the account holder back to your website.

2. Decide whether to collect all required information once in the beginning, or later in stages as they become necessary.

   * [Upfront verification](/classic-platforms/onboard-users#upfront-verification) unlocks all payment processing and payouts, which means you only need to generate the HOP URL once to collect the necessary data.
   * [Staggered verification](/classic-platforms/onboard-users#staggered-verification) requires you generate a new onboarding URL to collect additional information from the account holder whenever the funds processed exceed their current processing tier.

## Step 1: Create an account holder

Before you start the verification process, you must [create an account holder](/classic-platforms/account-holders-and-accounts#create-an-account-holder), taking note of the `accountHolderCode` in the response.

After an account holder is created, they can immediately start processing payments.

## Step 2: Get the HOP URL

When the account holder selects the link or button, make a POST [/getOnboardingUrl](https://docs.adyen.com/api-explorer/Hop/latest/post/getOnboardingUrl) request.

In your request, you can also include optional parameters such as the URL where the account holder will be redirected back to ( [returnUrl](https://docs.adyen.com/api-explorer/Hop/latest/post/getOnboardingUrl#request-returnUrl)), the [language](/classic-platforms/onboard-users/hosted-onboarding-page/customize-experience#change-page-language) the page is rendered in ( [shopperLocale](https://docs.adyen.com/api-explorer/Hop/latest/post/getOnboardingUrl#request-shopperLocale)), and the name of the platform shown in the welcome page ( [platformName](https://docs.adyen.com/api-explorer/Hop/latest/post/getOnboardingUrl#request-platformName)).

Here's an example of how you generate a HOP URL for an account holder with `accountHolderCode` **AH0121-TimGreen** with the page rendered in Dutch:

**Generate a HOP URL**

```bash
curl https://cal-test.adyen.com/cal/services/Hop/v6/getOnboardingUrl \
-H 'x-api-key: ADYEN_API_KEY' \
-H 'content-type: application/json' \
-d '{
   "{hint:The unique account holder code}accountHolderCode{/hint}": "AH0121-TimGreen",
   "returnUrl": "https://your.return-url.com/?submerchant=123",
   "platformName" : "MyShop.com",
   "shopperLocale": "nl-NL"
}'
```

The response contains:

* `redirectURL`: The page to where you should redirect your account holder. This URL must be used within 15 seconds and can only be used once.
* `pspReference`: The reference for this transaction. We recommend that you store this for troubleshooting purposes.

**/getOnboardingUrl response**

```json
{
  "invalidFields": [],
  "pspReference": "9115677600500127",
  "resultCode": "Success",
  "redirectUrl": "https://hop-test.adyen.com/hop/view/?token=<token>"
}
```

## Step 3: Handle the redirect

1. Redirect the account holder to the `redirectURL` within 15 seconds after you received the response. When they are successfully redirected to a hosted onboarding page, the session starts. The session is valid for 30 minutes.

   The account holder receives an **HTTP 401** status code if:

   * The redirection did not occur within 15 seconds.
   * The account holder refreshes or reloads the browser after the session has started.

   To resume the session, repeat [Step 2](#get-hosted-onboarding-page-url) to get a new URL.

2. Keep track of your account holder's onboarding progress based on the [ACCOUNT\_HOLDER\_UPDATED](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_HOLDER_UPDATED) notification webhooks you receive.

3. When the account holder is redirected back to your return URL, inform them of their onboarding progress based on the notification webhooks you received. For example, if the account holder's session expired or they did not finish the onboarding process, repeat [Step 2](#get-hosted-onboarding-page-url) to get a new URL and to resume the process. The information they provide is saved per section, so the next session continues from the remaining, unsaved sections.

## Step 4: Get the verification results

You receive all the subsequent verification results in [ACCOUNT\_HOLDER\_VERIFICATION](https://docs.adyen.com/api-explorer/Notification/latest/post/ACCOUNT_HOLDER_VERIFICATION) notification webhooks.

For more information, refer to [verification results](/classic-platforms/verification-process/check-verification-results).

## Access HOP on behalf of an account holder

After you generate a HOP link for an account holder, you can also access their HOP link. This is useful, for example, if an account holder is having issues updating their data or uploading documents.

To be able to view and access the HOP link, you must have the **Manage HOP settings** role enabled for your Customer Area user. If you do not have the role, contact your Admin user.

1. Log in to your [Customer Area](https://ca-live.adyen.com/).
2. Go to **Platform** > **Sub-merchants** then select the account holder.
3. In the account holder view, you can select the **Hosted onboarding** link shown next to the account holder code.

## See also

* [Configure notifications](/classic-platforms/configure-notifications)
* [Verification process](/classic-platforms/verification-process)
