Onboard via Hosted Link
The Hosted Link Onboarding is a low-code/no-code onboarding option. Instead of building complex forms to collect customer information and writing code to upload large documents, you can redirect your users directly to Harbor's secure, hosted onboarding pages (gokyb/gokyc).
Harbor hosts the entire user journey: collecting company/individual details, prompting for required file uploads, executing live biometric and identity document scanning (using the camera), and managing electronic agreement signatures.
The Hosted Link Workflow
flowchart LR
%% Nodes
A["1. Create Customer<br><code>POST /api/v1/customers</code>"] --> B["2. Sign Agreement<br><code>agreement_link</code>"]
B --> C["3. Complete Onboarding<br><code>verification_link</code>"]
C --> D["4. Track Status<br>Webhooks / GET"]
%% Styling
classDef step fill:#f5f5f5,stroke:#757575,stroke-width:1px;
class A,B,C,D step;
Step 1: Create a Customer
First, create a customer record in Harbor via the POST /api/v1/customers endpoint. You must specify the customer's type as either business or individual.
curl -X POST "https://harbor-sandbox.owlpay.com/api/v1/customers" \
-H "X-API-KEY: {{API_KEY}}" \
-H "Content-Type: application/json" \
-d '{
"type": "business",
"company_name": "Acme US Inc",
"email": "[email protected]"
}'The response includes an agreement_link and a verification_link (for businesses) or kyc_link (for individuals):
{
"data": {
"uuid": "cus_1234567890",
"status": "deactivated",
"type": "business",
"company_name": "Acme US Inc",
"email": "[email protected]",
"has_signed_agreement": false,
"agreement_link": "https://harbor-sandbox.owlpay.com/agreements?uuid=agt_tPo5iKKX...&redirect_url=https%3A%2F%2Fyourdomain.com",
"verification_link": "https://harbor-sandbox.owlpay.com/gokyb?expires=1749801448&hash=e1e8c...",
"created_at": "2026-06-13T09:00:00+00:00",
"updated_at": "2026-06-13T09:00:00+00:00"
}
}Step 2: Sign the Harbor Agreement (If Required)
Before verification can proceed, the customer must sign the Harbor service agreement.
- Extract the
agreement_linkfrom the customer payload. - Redirect your user to the
agreement_linkin their web browser. - Once the user signs the document electronically, they are redirected back to your configured
redirect_url.
Step 3: Redirect to the Onboarding Interface
Redirect the user to the verification_link extracted in Step 1. Harbor will present a tailored flow depending on whether the customer is a Business or an Individual:
🏢 Business (KYB) Flow (/gokyb)
/gokyb)The user is guided through:
- Entering detailed company information (industry, registration number, address, and phone).
- Providing details on the company's Ultimate Beneficial Owners (UBOs), applicants, and representatives.
- Uploading the 6 mandatory corporate files (such as registration documents, certificate of incumbency, and organization chart).
- Completing real-time biometric face scans and identity document verification for the authorized representative(s).
👤 Individual (KYC) Flow (/gokyc)
/gokyc)The user is guided through:
- Confirming nationality, date of birth, and tax jurisdiction.
- Submitting occupation, source of wealth, and purpose of use.
- Launching the device's camera to complete a secure real-time face scan (biometric check) and capturing images of their physical ID card, passport, or driver's license.
Benefits of Hosted Link Onboarding
Secure & Compliant
- Zero Document Storage Liability: You never collect or store sensitive files (like corporate certificates, bank statements, or national IDs). They go directly to Harbor's encrypted data stores.
- Biometric Integration Out-of-the-Box: Biometric face checks require complex camera controls. Our hosted page manages this securely across iOS, Android, and desktop browsers.
- Automatic Validation Updates: If Harbor updates the list of required documents for a certain country, the hosted form automatically updates. You don't have to change any code.
- Lower API Footprint: You only make 1 API call (
POST /customers) to initiate the entire onboarding journey.
Step 4: Track Progress
Once the user completes the hosted flow, the onboarding status becomes submitted and then transitions to either verified or rejected / action_required.
- Track this using Webhooks or GET polling.
- See the Customer Onboarding Overview page for details on status tracking, statuses, and webhook formats.