Customer

This guide provides an overview of how to register and manage customers using the Harbor Customers API, including KYC verification, required headers, and API request examples.

The Harbor Customers API allows you to seamlessly pass KYC (Know Your Customer) information to Harbor, enabling you to manage the verification process independently. This API provides flexibility in handling customer interactions.


Register Your First Customer

You are now ready to start using Harbor’s core APIs.
The first step is to create a customer object, which represents a user in your system.

When making this request, ensure you include the required headers as shown in the example below. Most importantly, you must pass the X-API-KEY to authenticate the request.

⚠️

Key Requirements

The customer must agree to Harbor’s Terms of Service before proceeding with KYC/AML verification.
An Idempotency Key is required (X-Idempotency-Key) to prevent duplicate submissions.

API Request: Creating a Customer

curl --location --request POST 'https://harbor-sandbox.owlpay.com/api/v1/customers' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-API-KEY: {{API_KEY}}' \
--header 'Idempotency-Key: {{Idempotency-Key}}' \
--data-raw '{
  "type": "individual",
  "first_name": "John",
  "middle_name": "Michael",
  "last_name": "Doe",
  "email": "[email protected]",
  "phone_country_code": "US",
  "phone_number": "555-555-1234",
  "birth_date": "1988-04-15",
  "description": "A freelance writer who loves exploring national parks."
}'

API Response Example

The endpoint will return a response as shown below.

{
    "data": {
        "uuid": "{{customer_uuid}}",
        "status": "deactivated",
        "type": "individual",
        "first_name": "John",
        "middle_name": "Michael",
        "last_name": "Doe",
        "email": "[email protected]",
        "phone_country_code": "US",
        "phone_number": "555-555-1234",
        "birth_date": "1988-04-15",
        "has_signed_agreement": false,
        "agreement_link": "https://sandbox-harbor.owlpay.com/agreement_link",
        "kyc_link": "https://sandbox-harbor.owlpay.com/kyc_link",
        "description": "A freelance writer who loves exploring national parks.",
        "created_at": "2025-02-11T06:35:50+00:00",
        "updated_at": "2025-02-11T06:35:50+00:00"
    }
}

Important Notes

  • You will receive a customer ID (cus_xxx). This ID is required to add bank accounts and other relevant details.
  • If any required information is invalid or missing, the response will return the appropriate KYC status, endorsement status, and the required corrections.

Agreement Link

After creating a Customer, Application must provide the Customer's Agreement Link so that the Customer can agree to our terms.

KYC

Once a Customer submits their KYC data, the Application can refer to the following status flow diagram to understand the current review status. For a detailed explanation of each status, please refer to Status .

Customer KYC status change diagram