Customers

Get Customer

get

Retrieve a Customer with optional filtering and pagination.

Authorizations
Path parameters
customerIdstring · uuidRequired

The customer ID of the customer

Example: dac4d330-fe5b-44d0-b64a-058f7f861952
Responses
200

OK

application/json
get
GET /api/v1/customers/{customerId} HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "customerId": "123e4567-e89b-12d3-a456-426614174000",
  "referenceId": "text",
  "customerStatus": "ONBOARDING",
  "onboardingStatus": "PENDING_DOCUMENTATION_RECEIPT",
  "customerType": "RETAIL",
  "createDate": "2024-08-01T18:44:05Z",
  "customerPreTradeRiskGroup": "LOW",
  "accounts": [
    {
      "accountNumber": "9019283R",
      "accountName": "text",
      "accountId": "123e4567-e89b-12d3-a456-426614174000",
      "accountStatus": "ACTIVE",
      "accountType": "CREDIT"
    }
  ],
  "documents": [
    {
      "documentType": "PASSPORT",
      "documentStatus": "PENDING_RECEIPT"
    },
    {
      "documentType": "NATIONAL_ID_FRONT",
      "documentStatus": "PENDING_RECEIPT"
    },
    {
      "documentType": "NATIONAL_ID_BACK",
      "documentStatus": "PENDING_RECEIPT"
    }
  ],
  "kycDetails": {
    "fullName": "Ashley Cronin",
    "nationality": "Canadian",
    "address": {
      "streetNumber": "827",
      "streetName": "Denesik Ridges",
      "unit": "Apt 101",
      "poBox": "101",
      "postalCode": "V5K 001",
      "city": "Toronto",
      "state": "Ontario",
      "country": "Canada",
      "addressType": "RESIDENTIAL"
    },
    "dateOfBirth": "1990-01-38",
    "placeOfBirth": "Cook Islands",
    "employmentStatus": "Employed",
    "employerName": "Conn - Nicolas LLC",
    "employerAddress": {
      "streetNumber": "1001",
      "streetName": "Catharine Centers",
      "unit": "text",
      "poBox": "101",
      "postalCode": "V1K4J7",
      "city": "Port Jeramie",
      "state": "Delaware",
      "country": "Canada"
    }
  }
}

Get Customers

get

Retrieve a list of customers with optional filtering and pagination.

Authorizations
Query parameters
customerStatusstring · enumOptional

Filter customers by status

Possible values:
createDateStartstring · date-timeOptional

Filter customers by creation date lower bound, exclusive

createDateEndstring · date-timeOptional

Filter customers by creation date upper bound, inclusive

referenceIdstringOptional

Filter customers by reference ID

afterstringOptional

When provided, specifies the last item returned in previous page, used to fetch the next page. Fetches the first page when omitted.

limitstring · integerOptional

When provided, specifies the number of items to return in the page. Uses default page size of 10 when omitted.

sortFieldstring · enumOptional

Will sort the returned data using the specified field.

Possible values:
sortDirectionstring · enumOptional

Specifies the sort direction for the sortField.

Possible values:
Responses
200

OK

application/json
get
GET /api/v1/customers HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "after": "text",
  "totalCount": "1",
  "items": [
    {
      "customerId": "123e4567-e89b-12d3-a456-426614174000",
      "referenceId": "text",
      "customerStatus": "ONBOARDING",
      "customerType": "RETAIL",
      "onboardingStatus": "PENDING_DOCUMENTATION_RECEIPT",
      "createDate": "2025-10-14T11:57:18.812Z",
      "customerPreTradeRiskGroup": "LOW",
      "accounts": [
        {
          "accountNumber": "9019283R",
          "accountName": "text",
          "accountId": "123e4567-e89b-12d3-a456-426614174000",
          "accountStatus": "ACTIVE",
          "accountType": "CREDIT"
        }
      ]
    }
  ]
}

Add a new customer

post

Will add a customer and create a permanent reference to that customer

Authorizations
Body
referenceIdstringRequired

Use this field to correlate a customer in CAMS to the customer in another system

fullNamestringRequiredExample: John Doe
nationalitystringRequired

Country string that matches either ISO 3166 name, ISO 3166-1 A-2 or ISO 3166-1 A-3. Please see: https://www.iso.org/iso-3166-country-codes.html

Example: Canada
placeOfBirthstringRequiredExample: Toronto, Canada
dateOfBirthstring · dateRequired
employerNamestringOptionalExample: Aquanow
sanctionsScreeningCompletedstring · enumRequiredPossible values:
sanctionsScreeningCompletedAtstring · date-timeOptional

This field is required if sanctionsScreeningCompleted is YES

Example: 2024-09-10T22:26:49.739Z
pepScreeningCompletedstring · enumRequiredPossible values:
pepScreeningCompletedAtstring · date-timeOptional

This field is required if pepScreeningCompleted is YES

Example: 2024-09-10T22:26:49.739Z
livenessCheckCompletedstring · enumRequiredPossible values:
livenessCheckCompletedAtstring · date-timeOptional

This field is required if livenessCheckCompleted is YES

Example: 2024-09-10T22:26:49.739Z
isPEPstring · enumRequired

This field indicates if the customer is a politically exposed person

Possible values:
isSanctionedstring · enumRequired

This field indicates if the customer is sanctioned

Possible values:
employmentStatusundefined · enumRequired

This field indicates the employment status of the customer

Possible values:
Responses
200

OK

application/json
post
POST /api/v1/customers HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 852

{
  "referenceId": "text",
  "fullName": "John Doe",
  "nationality": "Canada",
  "address": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada",
    "addressType": "RESIDENTIAL"
  },
  "placeOfBirth": "Toronto, Canada",
  "dateOfBirth": "2025-10-14",
  "employerName": "Aquanow",
  "employerAddress": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada"
  },
  "sanctionsScreeningCompleted": "YES",
  "sanctionsScreeningCompletedAt": "2024-09-10T22:26:49.739Z",
  "pepScreeningCompleted": "YES",
  "pepScreeningCompletedAt": "2024-09-10T22:26:49.739Z",
  "livenessCheckCompleted": "YES",
  "livenessCheckCompletedAt": "2024-09-10T22:26:49.739Z",
  "isPEP": "YES",
  "isSanctioned": "YES",
  "employmentStatus": "Employed"
}
{
  "customerId": "123e4567-e89b-12d3-a456-426614174000",
  "referenceId": "text",
  "customerStatus": "ONBOARDING",
  "customerType": "RETAIL",
  "onboardingStatus": "PENDING_DOCUMENTATION_RECEIPT",
  "createdAt": "2025-10-14T11:57:18.812Z",
  "customerPreTradeRiskGroup": "LOW",
  "documents": [
    {
      "documentType": "PASSPORT",
      "documentStatus": "PENDING_RECEIPT"
    },
    {
      "documentType": "NATIONAL_ID_FRONT",
      "documentStatus": "PENDING_RECEIPT"
    },
    {
      "documentType": "NATIONAL_ID_BACK",
      "documentStatus": "PENDING_RECEIPT"
    }
  ]
}

Update Customer

patch

Update customer information including pre-trade risk group and PII data. Submit a request to update the Customer Pre-Trade Risk Group based on the outcomes of appropriateness/suitability tests during onboarding and periodic reviews, to set limits on order sizes and monthly trade volumes for risk mitigation; may require broker approval. Additionally, modify customer PII attributes such as name, nationality, address, employment details, etc. When updating employment status to EMPLOYED, employer address becomes required. When providing address or employer address, all respective required fields must be included. All PII attributes are optional at the top level and only specified fields will be updated.

Authorizations
Path parameters
customerIdstring · uuidRequired

The customer ID of the customer

Example: dac4d330-fe5b-44d0-b64a-058f7f861952
Body
customerPreTradeRiskGroupstring · enumOptionalExample: LOWPossible values:
fullNamestringOptionalExample: John Doe
nationalitystringOptionalExample: Canada
placeOfBirthstringOptionalExample: Toronto, Canada
dateOfBirthstring · dateOptionalExample: 1990-01-15
employerNamestringOptionalExample: Aquanow
employmentStatusundefined · enumOptional

This field indicates the employment status of the customer

Possible values:
Responses
200

OK

application/json
patch
PATCH /api/v1/customers/{customerId} HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 567

{
  "customerPreTradeRiskGroup": "LOW",
  "fullName": "John Doe",
  "nationality": "Canada",
  "address": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada",
    "addressType": "RESIDENTIAL"
  },
  "placeOfBirth": "Toronto, Canada",
  "dateOfBirth": "1990-01-15",
  "employerName": "Aquanow",
  "employerAddress": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada"
  },
  "employmentStatus": "Employed"
}
{
  "customerId": "123e4567-e89b-12d3-a456-426614174000",
  "customerPreTradeRiskGroup": "LOW",
  "fullName": "John Doe",
  "nationality": "Canada",
  "address": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada",
    "addressType": "RESIDENTIAL"
  },
  "placeOfBirth": "Toronto, Canada",
  "dateOfBirth": "1990-01-15",
  "employerName": "Aquanow",
  "employerAddress": {
    "streetNumber": "1234",
    "streetName": "Main St",
    "unit": "Apt 101",
    "poBox": "PO Box 1234",
    "postalCode": "M5V 1A1",
    "city": "Toronto",
    "state": "ON",
    "country": "Canada"
  },
  "employmentStatus": "Employed"
}

List Customer Bank Information

get
Authorizations
Path parameters
customerIdstringRequired

ID of the customer

Responses
200

OK

application/json
get
GET /api/v1/customers/{customerId}/bankinfo HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "bankAccountId": "e3f3cf67-9553-406c-97f9-fbd5629aa23b",
    "customerId": "84742be4-54fa-4a37-b7c1-9905ea9a7990",
    "bankName": "Acme Inc.",
    "currency": "AED, USD",
    "accountNumber": "74720233",
    "bankAddress": {
      "streetNumber": "1001",
      "streetName": "Catharine Centers",
      "unit": "text",
      "poBox": "101",
      "postalCode": "V1K4J7",
      "city": "Port Jeramie",
      "state": "Delaware",
      "country": "Canada"
    },
    "swiftBicCode": "text",
    "beneficiaryName": "John Doe",
    "reference": "c0d0e81f-3da3-4398-9a9c-621054638ff9",
    "routingAbaNumber": "000417952",
    "IBAN": "NL52NACH4001092908",
    "status": "PENDING"
  }
]

Add Customer Bank Information

post
Authorizations
Path parameters
customerIdstringRequired

ID of the customer

Body
beneficiaryTypestring · enumRequiredPossible values:
currencystringRequired

ISO 3-letter currency code

Example: USD
beneficiaryBankNamestring · max: 255Required

The name of the financial institution holding the beneficiary account.

beneficiaryBankBicstring | nullableOptional

The unique identifier code for the beneficiary institution, such as a BIC (Bank Identifier Code) or SWIFT code. Typically 8-11 characters.

routingCodestring | nullableOptional

The clearing code or routing number for the beneficiary institution. Used for domestic transfers.

beneficiaryAccountNumberstring · max: 34Required

The account number or IBAN of the beneficiary. Supports various formats (e.g., IBAN up to 34 characters).

beneficiaryBankMemostring | nullableOptional

Payment reference sent with the transfer. If provided, ensures the funds are processed without unnecessary delays and helps the beneficiary identify the payment purpose.

intermediaryBankNamestring | nullableOptional

The name of the intermediary financial institution facilitating the payment (e.g., for cross-border transfers). Required only if an intermediary is involved.

intermediaryBankBicstring | nullableOptional

BIC/SWIFT code of the intermediary bank. If required for the payment route, ensures proper routing and prevents delays or rejections.

intermediaryAccountNumberstring | nullableOptional

Account number held at the intermediary bank for correspondent banking. If required, ensures funds are properly credited and forwarded without delays.

beneficiaryGivenNamesstring · max: 200Optional

Required for INDIVIDUAL beneficiary type

beneficiarySurnamesstring · max: 200Optional

Required for INDIVIDUAL beneficiary type

beneficiaryLegalNamestring | nullableOptional

Required for BUSINESS beneficiary type

Responses
200

OK

application/json
post
POST /api/v1/customers/{customerId}/bankinfo HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 785

{
  "beneficiaryType": "INDIVIDUAL",
  "currency": "USD",
  "beneficiaryAddress": {
    "addressLine1": "text",
    "addressLine2": "text",
    "city": "text",
    "region": "text",
    "postalCode": "text",
    "country": "text"
  },
  "beneficiaryBankName": "text",
  "beneficiaryBankAddress": {
    "addressLine1": "text",
    "addressLine2": "text",
    "city": "text",
    "region": "text",
    "postalCode": "text",
    "country": "text"
  },
  "beneficiaryBankBic": "text",
  "routingCode": "text",
  "beneficiaryAccountNumber": "text",
  "beneficiaryBankMemo": "text",
  "intermediaryBankName": "text",
  "intermediaryBankAddress": {
    "addressLine1": "text",
    "addressLine2": "text",
    "city": "text",
    "region": "text",
    "postalCode": "text",
    "country": "text"
  },
  "intermediaryBankBic": "text",
  "intermediaryAccountNumber": "text",
  "beneficiaryGivenNames": "text",
  "beneficiarySurnames": "text",
  "beneficiaryLegalName": "text"
}
{
  "bankAccountId": "123e4567-e89b-12d3-a456-426614174000",
  "customerId": "123e4567-e89b-12d3-a456-426614174000",
  "coolingOffEndTime": "2025-10-14T11:57:18.812Z",
  "status": "PENDING",
  "createdAt": "2025-10-14T11:57:18.812Z",
  "bankAccount": {
    "beneficiaryType": "INDIVIDUAL",
    "currency": "USD",
    "beneficiaryAddress": {
      "addressLine1": "text",
      "addressLine2": "text",
      "city": "text",
      "region": "text",
      "postalCode": "text",
      "country": "text"
    },
    "beneficiaryBankName": "text",
    "beneficiaryBankAddress": {
      "addressLine1": "text",
      "addressLine2": "text",
      "city": "text",
      "region": "text",
      "postalCode": "text",
      "country": "text"
    },
    "beneficiaryBankBic": "text",
    "routingCode": "text",
    "beneficiaryAccountNumber": "text",
    "beneficiaryBankMemo": "text",
    "intermediaryBankName": "text",
    "intermediaryBankAddress": {
      "addressLine1": "text",
      "addressLine2": "text",
      "city": "text",
      "region": "text",
      "postalCode": "text",
      "country": "text"
    },
    "intermediaryBankBic": "text",
    "intermediaryAccountNumber": "text",
    "beneficiaryGivenNames": "text",
    "beneficiarySurnames": "text",
    "beneficiaryLegalName": "text"
  }
}

Remove Customer Bank Information

delete
Authorizations
Path parameters
customerIdstringRequired
bankAccountIdstringRequired
Responses
200

OK

application/json
delete
DELETE /api/v1/customers/{customerId}/bankinfo/{bankAccountId} HTTP/1.1
Host: cams.aquanow.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "bankAccountId": "f2ef3fdb-71dd-4612-b9e7-448b17ef9b74",
  "status": "REMOVED"
}

Last updated