Customer's Bank Account
This guide provides an overview of how to register and manage a customer's bank account.
The Harbor Customers API allows you to securely submit a customer's bank account information to Harbor, enabling you to manage the verification and linking process independently. Before adding a bank account, you must first create a customer using the Customers API. Once the customer is successfully registered, you can proceed with linking their bank account. This API provides flexibility in handling bank account integrations, whether for individuals or businesses.
Register customer's bank account
If your business model will transfer money on behalf of your Customer, please use Transfer directly. Here, only Customers are allowed to register their own bank accounts.
API Request: Creating customer’s bank account by customer uuid (For off-ramping)
You are now ready to start using Harbor’s core APIs.
Before adding a bank account, the first step is to create a customer object, which represents a user in your system. Once the customer is successfully registered, you can proceed with linking their bank account.
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.
An Idempotency Key (X-Idempotency-Key
) is required to prevent duplicate submissions. A customer ID is required when adding a bank account to associate it with the correct customer.
curl --location --request POST 'https://harbor-sandbox.owlpay.com/api/v1/customers/{{customer_uuid}}/bank_accounts' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-API-KEY: {{API_KEY}}' \
--header 'X-Idempotency-Key: {{Idempotency-Key}}' \
--data-raw '{
"account_number": "124567890",
"routing_number": "021000021",
"bank_name": "Chase Bank",
"bank_address": "270 Park Avenue, New York, NY 10017",
"account_holder_name": "John Michael Doe"
}'
The endpoint will return a response as shown below.
{
"data": {
"uuid": "{{bank_uuid}}",
"customer_uuid": "{{customer_uuid}}",
"status": "pending",
"account_number": "124567890",
"routing_number": "021000021",
"bank_name": "Chase Bank",
"bank_address": "270 Park Avenue, New York, NY 10017",
"account_holder_name": "John Michael Doe",
"updated_at": "2025-02-11T06:47:49+00:00",
"created_at": "2025-02-11T06:47:49+00:00"
}
}
API Request: Retrieving customer’s bank accounts by customer uuid (For off-ramping)
curl --location --request GET 'https://harbor-sandbox.owlpay.com/api/v1/customers/{{customer_uuid}}/bank_accounts' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-API-KEY: {{API_KEY}}' \
--header 'X-Idempotency-Key: {{Idempotency-Key}}'
Response
{
"data": [
{
"uuid": "cus_bhQFUKo1sNdyDlPToMCcUPVCZQY0OLN90XDprTki",
"customer_uuid": "cus_H6Sb5WyzJTdCjNw32stniAWKDxsExYMcLfaype6J",
"status": "pending",
"account_number": "124567890",
"routing_number": "021000021",
"bank_name": "Chase Bank",
"bank_address": "270 Park Avenue, New York, NY 10017",
"account_holder_name": "John Michael Doe",
"updated_at": "2025-02-10T04:50:23+00:00",
"created_at": "2025-02-10T04:50:23+00:00"
},
{
"uuid": "cus_CG0QcNTkds0HZtq4wxVhDsFdTzJNKZgRD6QaWJ0C",
"customer_uuid": "cus_H6Sb5WyzJTdCjNw32stniAWKDxsExYMcLfaype6J",
"status": "pending",
"account_number": "124567890",
"routing_number": "021000021",
"bank_name": "Chase Bank",
"bank_address": "270 Park Avenue, New York, NY 10017",
"account_holder_name": "John Michael Doe",
"updated_at": "2025-02-11T04:59:03+00:00",
"created_at": "2025-02-07T12:34:14+00:00"
}
],
"links": {
...,
},
"meta": {
...,
}
}
For further details, please refer to the API documentation or consult the appropriate business representative.
Status
When a Customer's Bank Account is sent, the state changes may be as follows (For a detailed explanation of each status, please refer to Status :

Status of Customer's Bank Account

Updated 14 days ago