Skip to main content

Overview

Use Noah hosted onboarding through Portal Client API to verify your client before running payins or payout flows.

1. Initiate KYC

Call POST /customers/kyc to create (or return) a hosted onboarding session.
curl --request POST \
  --url https://api.portalhq.io/api/v3/clients/me/integrations/noah/customers/kyc \
  --header 'Authorization: Bearer [token]' \
  --header 'Content-Type: application/json' \
  --data '{
    "returnUrl": "https://example.com/noah/return",
    "fiatOptions": [{ "fiatCurrencyCode": "USD" }]
  }'
Example response:
{
  "data": {
    "hostedUrl": "https://checkout.sandbox.noah.com/kyc?session=..."
  }
}
POST /customers/kyc returns the hosted URL only. KYC approval status is evaluated later via Noah webhooks and Noah customer verification checks during payin/payout flows.
returnUrl must be a valid HTTPS URL.

2. Redirect the user to hosted onboarding

Send the user to data.hostedUrl so they can complete the Noah flow.

3. Configure Noah webhooks for KYC updates

Set up Noah webhooks in Noah Dashboard to receive KYC lifecycle events directly from Noah.
  • Subscribe to Customer events for KYC status lifecycle updates.
  • Noah Webhooks
Payins and payout flows require an approved Noah KYC status. Enforce this check using Noah webhooks and customer verification checks before calling payin/payout initiation endpoints.