# Choosing Your Onboarding Method

> Compare Noah's onboarding methods and pick one based on your licensing arrangement, business model and technical requirements.

## Overview

Noah provides several onboarding methods to accommodate different business models, licensing arrangements, and technical requirements. This page helps you select the right method for your use case.

For background on the regulatory models that underpin these methods, see [Compliance Overview](../../getting-started/kyc.md).

## Comparison

| Method                                                      | Endpoint                                                                                                                                                                     | KYC Model | Requires Sumsub | Hosted Redirect | Best For                                                              |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | --------------- | --------------- | --------------------------------------------------------------------- |
| [Reliance Onboarding](./reliance-onboarding.md)             | [PUT `customers/:CustomerID`](../../../api-reference/create-update-customer)                                                                                                 | Reliance  | No              | No              | Licensed entities bulk-onboarding verified customers (EUR)            |
| [Hosted Onboarding](./hosted-onboarding.md)                 | [POST `onboarding/:CustomerID`](../../../api-reference/create-onboarding-session)                                                                                            | Standard  | No              | Yes             | Fastest integration for unlicensed providers                          |
| [Token Share](./token-share-onboarding.md)                  | [POST `onboarding/:CustomerID/prefill`](../../../api-reference/prefill-customer-details) + [POST `onboarding/:CustomerID`](../../../api-reference/create-onboarding-session) | Standard  | Yes             | Yes (reduced)   | Partners already using Sumsub who want to avoid re-verification       |
| [Individual Prefill](./individual-customer-prefill.md)      | [POST `onboarding/:CustomerID/prefill`](../../../api-reference/prefill-customer-details) + [POST `onboarding/:CustomerID`](../../../api-reference/create-onboarding-session) | Standard  | No              | Yes (reduced)   | Partners who already collect KYC data and want to pre-populate fields |
| [Business Customer Prefill](./business-customer-prefill.md) | [POST `onboarding/:CustomerID/prefill`](../../../api-reference/prefill-customer-details) + [POST `onboarding/:CustomerID`](../../../api-reference/create-onboarding-session) | Standard  | No              | Manual review   | KYB onboarding for business entities                                  |

## Decision Guide

### Are you a licensed entity with existing KYC?

If your business holds regulatory licensing and already performs KYC on your customers, you can use **Reliance Onboarding** to pass simplified customer data via a single API call, with no hosted redirect required. This is available for **EUR** flows only - USD requires Standard Model KYC.

→ [Reliance Onboarding](./reliance-onboarding.md)

### Do you use Sumsub for KYC?

If you already verify **individual** customers through Sumsub, use **Token Share Onboarding** to transfer existing verification data via cryptographically secured tokens. Noah will identify any missing compliance requirements and collect only what's needed through a shortened hosted session. Token share does not import verified **company** KYB profiles; for business customers, use **Business Customer Prefill** (associate tokens can still import UBOs and representatives as individuals).

→ [Token Share Onboarding](./token-share-onboarding.md)

### Do you already collect customer data?

If you collect identity data (name, date of birth, address, ID documents) but don't use Sumsub, use **Individual Customer Prefill** to pre-populate the onboarding form. Your customer then completes only the remaining steps (liveness check, document upload, T&Cs acceptance) in a hosted session.

→ [Individual Customer Prefill](./individual-customer-prefill.md)

### Are you onboarding businesses?

If you need to onboard business entities (not individuals), use **Business Customer Prefill** to submit KYB data via API. Business onboarding undergoes manual review by Noah before approval.

→ [Business Customer Prefill](./business-customer-prefill.md)

### Starting fresh with no existing KYC?

If you don't have existing customer data or licensing, use **Hosted Onboarding** for the simplest integration. Generate a hosted URL and redirect your customer - Noah handles the entire KYC flow.

→ [Hosted Onboarding](./hosted-onboarding.md)

## Limitations

:::warning Integration constraints
The following limits apply across Standard Model onboarding methods. See each recipe for details.

- **Token share is for individual KYC only.** The `SumSubToken` prefill type imports verified **individual** applicants from Sumsub. It does not support sharing a verified **company** KYB profile. For business customers, start onboarding via [POST `onboarding/:CustomerID`](../../../api-reference/create-onboarding-session) with the appropriate customer type; optionally use [Business Customer Prefill](./business-customer-prefill.md) to pre-submit known KYB data. Prefill alone does not start onboarding—it only saves data.
- **UBO and representative token import.** On business prefill, you can pass a Sumsub share token on each **associate** (UBO, representative, director) to import that person as an individual applicant. The company entity itself is always submitted via `BusinessCustomerPrefill` fields, not via token share.
- **Terms and Conditions require customer involvement.** Under the Standard Model, Noah enters a direct contractual relationship with your end customer. Token share and prefill flows still require a [hosted onboarding session](./hosted-onboarding.md) so the customer can accept Terms and Conditions and complete any remaining verification steps.
- **Non-Sumsub partners: limited API capture.** If you do not use Sumsub, [Individual Customer Prefill](./individual-customer-prefill.md) can pre-populate questionnaire data only. Liveness checks must be completed by the customer in a hosted session. Identity and proof-of-address documents can be uploaded via the [Get Document Upload URL](../../../api-reference/get-document-upload-url) endpoint or completed in a hosted session.
  :::

## Currency Constraints

Not all onboarding methods are available for all currencies. See [Currency & Model Eligibility](../../getting-started/kyc.md#currency--model-eligibility) for the full matrix.

The key constraint: **USD Virtual Accounts require Standard Model KYC**. If you onboard a customer via Reliance (PUT Customer), that customer can receive EUR Virtual Accounts but not USD. To enable USD, onboard the customer using any Standard Model method (Hosted, Token Share, or Prefill).

## Enhanced Due Diligence (EDD)

:::caution Plan for EDD in production
Regardless of onboarding method, customers may be subject to [Enhanced Due Diligence](../../api-concepts/compliance-freezes-refunds-reversals.md#what-triggers-enhanced-due-diligence) once they begin transacting. EDD can be triggered by transaction limits, third-party deposits, or customer risk factors such as PEP status or high-risk jurisdictions.

When EDD is triggered, deposits are frozen until documentation is provided. Make sure your integration handles the `FiatDeposit` `Pending` status and displays an appropriate message to your users. See [Compliance Freezes, Refunds & Reversals](../../api-concepts/compliance-freezes-refunds-reversals.md) for full details.
:::

## Webhook Integration

All onboarding methods emit [Customer webhooks](../../api-concepts/webhooks/customer.md) to notify you of status changes (`Pending`, `Approved`, `Declined`). When using multiple `FiatOptions`, you will receive separate webhooks for each currency verification.

Always wait for an `Approved` Customer webhook before initiating transactional flows for a customer.
