# Customers

## Get Customers

> Retrieve a list of customers with optional filtering and pagination.

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://cams.dev.aquanow.com/api","description":"dev"},{"url":"https://cams.staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"},{"url":"https://marketdata.aquanow.com","description":"production market data"},{"url":"https://marketdata.staging.aquanow.com","description":"staging market data"},{"url":"https://marketdata.dev.aquanow.com","description":"dev market data"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"CustomerStatus":{"type":"string","enum":["ONBOARDING","ACTIVE","INACTIVE","ONBOARDING_FAILED"]},"SortDirection":{"type":"string","enum":["ASC","DESC"]},"OnboardingStatus":{"type":"string","enum":["PENDING_DOCUMENTATION_RECEIPT","PROCESSING","FAILED","UNDER_REVIEW","ONBOARDED","OFFBOARDED"]},"CustomerPreTradeRiskGroupNullable":{"allOf":[{"$ref":"#/components/schemas/CustomerPreTradeRiskGroup"}],"nullable":true},"CustomerPreTradeRiskGroup":{"type":"string","enum":["LOW","HIGH"]},"Accounts":{"title":"Accounts","type":"array","description":"Account information about a customer","items":{"type":"object","properties":{"accountNumber":{"type":"string"},"accountName":{"type":"string","nullable":true},"accountId":{"type":"string","format":"uuid"},"accountStatus":{"$ref":"#/components/schemas/AccountStatus"},"accountType":{"$ref":"#/components/schemas/AccountType"}}}},"AccountStatus":{"type":"string","enum":["ACTIVE","INACTIVE","CREATING"]},"AccountType":{"type":"string","enum":["CREDIT","CASH"]}}},"paths":{"/v1/customers":{"get":{"summary":"Get Customers","description":"Retrieve a list of customers with optional filtering and pagination.","tags":["Customers"],"parameters":[{"name":"customerStatus","in":"query","schema":{"$ref":"#/components/schemas/CustomerStatus"},"description":"Filter customers by status"},{"name":"createDateStart","in":"query","schema":{"type":"string","format":"date-time"},"description":"Filter customers by creation date lower bound, exclusive"},{"name":"createDateEnd","in":"query","schema":{"type":"string","format":"date-time"},"description":"Filter customers by creation date upper bound, inclusive"},{"name":"referenceId","in":"query","schema":{"type":"string"},"description":"Filter customers by reference ID"},{"name":"after","in":"query","required":false,"schema":{"type":"string"},"description":"When provided, specifies the last item returned in previous page, used to fetch the next page. Fetches the first page when omitted."},{"name":"limit","in":"query","required":false,"schema":{"type":"string","format":"integer"},"description":"When provided, specifies the number of items to return in the page. Uses default page size of 10 when omitted."},{"name":"sortField","in":"query","required":false,"schema":{"type":"string","enum":["customerStatus","createdDate","referenceId"]},"description":"Will sort the returned data using the specified field."},{"name":"sortDirection","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"},"description":"Specifies the sort direction for the sortField."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"after":{"type":"string","description":"The token of the last item in the response","nullable":true},"totalCount":{"type":"string","format":"integer","description":"The total number of items in the entire filtered data set"},"items":{"type":"array","items":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"referenceId":{"type":"string"},"customerStatus":{"$ref":"#/components/schemas/CustomerStatus"},"customerType":{"type":"string","enum":["RETAIL","ENTERPRISE","WEALTH"]},"onboardingStatus":{"$ref":"#/components/schemas/OnboardingStatus"},"createDate":{"type":"string","format":"date-time"},"customerPreTradeRiskGroup":{"$ref":"#/components/schemas/CustomerPreTradeRiskGroupNullable"},"accounts":{"$ref":"#/components/schemas/Accounts"}}}}}}}}},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}},"operationId":"GetAllCustomers"}}}}
```

## Get Customer

> Retrieve a Customer with optional filtering and pagination.

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://cams.dev.aquanow.com/api","description":"dev"},{"url":"https://cams.staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"},{"url":"https://marketdata.aquanow.com","description":"production market data"},{"url":"https://marketdata.staging.aquanow.com","description":"staging market data"},{"url":"https://marketdata.dev.aquanow.com","description":"dev market data"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"CustomerStatus":{"type":"string","enum":["ONBOARDING","ACTIVE","INACTIVE","ONBOARDING_FAILED"]},"OnboardingStatus":{"type":"string","enum":["PENDING_DOCUMENTATION_RECEIPT","PROCESSING","FAILED","UNDER_REVIEW","ONBOARDED","OFFBOARDED"]},"Datetime":{"title":"Datetime","type":"string","format":"date-time","description":"Date-time in ISO 8601 format"},"CustomerPreTradeRiskGroup":{"type":"string","enum":["LOW","HIGH"]},"Accounts":{"title":"Accounts","type":"array","description":"Account information about a customer","items":{"type":"object","properties":{"accountNumber":{"type":"string"},"accountName":{"type":"string","nullable":true},"accountId":{"type":"string","format":"uuid"},"accountStatus":{"$ref":"#/components/schemas/AccountStatus"},"accountType":{"$ref":"#/components/schemas/AccountType"}}}},"AccountStatus":{"type":"string","enum":["ACTIVE","INACTIVE","CREATING"]},"AccountType":{"type":"string","enum":["CREDIT","CASH"]},"Documents":{"title":"Documents","type":"array","description":"Customer documents","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["PASSPORT","NATIONAL_ID_FRONT","NATIONAL_ID_BACK"]},"documentStatus":{"$ref":"#/components/schemas/DocumentStatus"}}}},"DocumentStatus":{"type":"string","enum":["PENDING_RECEIPT","VERIFIED","UNREADABLE","INVALID","MISMATCH","PENDING_RESUBMISSION","NOT_APPLICABLE"]},"CustomerKYCDetails":{"title":"CustomerKYCDetails","type":"object","description":"This model represents customer PII data","nullable":true,"properties":{"fullName":{"type":"string"},"nationality":{"type":"string"},"address":{"type":"object","required":["streetName","city","state","country","addressType"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string","nullable":true},"poBox":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"},"addressType":{"$ref":"#/components/schemas/AddressType"}}},"dateOfBirth":{"type":"string","nullable":true},"placeOfBirth":{"type":"string","nullable":true},"employmentStatus":{"allOf":[{"$ref":"#/components/schemas/EmploymentStatus"}],"nullable":true},"employerName":{"type":"string","nullable":true,"readOnly":true},"employerAddress":{"oneOf":[{"type":"string","description":"Full address as a single string"},{"$ref":"#/components/schemas/AddressWithoutType"}],"nullable":true},"netWorth":{"type":"string","nullable":true},"incomeCurrency":{"type":"string","nullable":true}}},"AddressType":{"type":"string","enum":["RESIDENTIAL","BUSINESS","GEOGRAPHIC"]},"EmploymentStatus":{"title":"EmploymentStatus","type":"string","enum":["Employed","Unemployed","Retired","Student","Self-Employed"],"description":"This field indicates the employment status of the customer."},"AddressWithoutType":{"title":"AddressWithoutType","type":"object","required":["streetName","city","state","country","unit","poBox","postalCode"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string","nullable":true},"poBox":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"}}}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"5XX":{"description":"Server error"},"4XX":{"description":"Client error"}}},"paths":{"/v1/customers/{customerId}":{"get":{"summary":"Get Customer","description":"Retrieve a Customer with optional filtering and pagination.","tags":["Customers"],"parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The customer ID of the customer"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"referenceId":{"type":"string"},"customerStatus":{"$ref":"#/components/schemas/CustomerStatus"},"onboardingStatus":{"$ref":"#/components/schemas/OnboardingStatus"},"customerType":{"type":"string","enum":["RETAIL","ENTERPRISE","WEALTH"]},"createDate":{"$ref":"#/components/schemas/Datetime"},"customerPreTradeRiskGroup":{"$ref":"#/components/schemas/CustomerPreTradeRiskGroup"},"accounts":{"$ref":"#/components/schemas/Accounts"},"documents":{"$ref":"#/components/schemas/Documents"},"kycDetails":{"$ref":"#/components/schemas/CustomerKYCDetails"},"electronicFacialRecognitionStatus":{"type":"string","enum":["SUCCESS","FAILED","NA"],"nullable":true,"description":"Electronic facial recognition status when available; null otherwise."},"documentExpiryDate":{"type":"string","format":"date-time","nullable":true,"description":"Document expiry date in UTC (ISO 8601); null when not available."},"emiratesId":{"type":"string","nullable":true,"description":"Emirates ID when available; null otherwise."}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"5XX":{"$ref":"#/components/responses/5XX"},"4XX":{"$ref":"#/components/responses/4XX"}},"operationId":"GetOneCustomer"}}}}
```

## Add a new customer

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

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://cams.dev.aquanow.com/api","description":"dev"},{"url":"https://cams.staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"},{"url":"https://marketdata.aquanow.com","description":"production market data"},{"url":"https://marketdata.staging.aquanow.com","description":"staging market data"},{"url":"https://marketdata.dev.aquanow.com","description":"dev market data"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"Address":{"type":"object","required":["streetName","city","state","country","addressType"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"},"addressType":{"$ref":"#/components/schemas/AddressType"}}},"AddressType":{"type":"string","enum":["RESIDENTIAL","BUSINESS","GEOGRAPHIC"]},"EmployerAddress":{"oneOf":[{"type":"string","description":"A full address string"},{"type":"object","title":"EmployerAddress","nullable":true,"required":["streetName","city","state","country"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"}}}]},"EmploymentStatus":{"title":"EmploymentStatus","type":"string","enum":["Employed","Unemployed","Retired","Student","Self-Employed"],"description":"This field indicates the employment status of the customer."},"CustomerStatus":{"type":"string","enum":["ONBOARDING","ACTIVE","INACTIVE","ONBOARDING_FAILED"]},"OnboardingStatus":{"type":"string","enum":["PENDING_DOCUMENTATION_RECEIPT","PROCESSING","FAILED","UNDER_REVIEW","ONBOARDED","OFFBOARDED"]},"CustomerPreTradeRiskGroupNullable":{"allOf":[{"$ref":"#/components/schemas/CustomerPreTradeRiskGroup"}],"nullable":true},"CustomerPreTradeRiskGroup":{"type":"string","enum":["LOW","HIGH"]},"Documents":{"title":"Documents","type":"array","description":"Customer documents","items":{"type":"object","properties":{"documentType":{"type":"string","enum":["PASSPORT","NATIONAL_ID_FRONT","NATIONAL_ID_BACK"]},"documentStatus":{"$ref":"#/components/schemas/DocumentStatus"}}}},"DocumentStatus":{"type":"string","enum":["PENDING_RECEIPT","VERIFIED","UNREADABLE","INVALID","MISMATCH","PENDING_RESUBMISSION","NOT_APPLICABLE"]}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"403":{"description":"Insufficient Privileges"},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers":{"post":{"summary":"Add a new customer","description":"Will add a customer and create a permanent reference to that customer","tags":["Customers"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["referenceId","fullName","nationality","address","placeOfBirth","dateOfBirth","sanctionsScreeningCompleted","pepScreeningCompleted","isPEP","isSanctioned","employmentStatus"],"properties":{"referenceId":{"type":"string","description":"Use this field to correlate a customer in CAMS to the customer in another system"},"fullName":{"type":"string"},"nationality":{"type":"string","description":"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"},"address":{"$ref":"#/components/schemas/Address"},"placeOfBirth":{"type":"string"},"dateOfBirth":{"type":"string","format":"date"},"employerName":{"type":"string","description":"Required only when employmentStatus is 'Employed'."},"employerAddress":{"$ref":"#/components/schemas/EmployerAddress","description":"Required only when employmentStatus is 'Employed'."},"sanctionsScreeningCompleted":{"type":"string","enum":["YES","NO"]},"sanctionsScreeningCompletedAt":{"type":"string","format":"date-time","description":"This field is required if sanctionsScreeningCompleted is YES"},"pepScreeningCompleted":{"type":"string","enum":["YES","NO"]},"pepScreeningCompletedAt":{"type":"string","format":"date-time","description":"This field is required if pepScreeningCompleted is YES"},"livenessCheckCompleted":{"type":"string","enum":["YES","NO"],"description":"Conditionally required. Required if not all EFR-related parameters are provided (electronicFacialRecognitionStatus, documentExpiryDate, emiratesId). When all three EFR parameters are provided (e.g. electronicFacialRecognitionStatus=SUCCESS with documentExpiryDate and emiratesId), this field is optional. Allowed values: YES, NO."},"livenessCheckCompletedAt":{"type":"string","format":"date-time","description":"This field is required if livenessCheckCompleted is YES"},"isPEP":{"type":"string","enum":["YES","NO"],"description":"This field indicates if the customer is a politically exposed person"},"isSanctioned":{"type":"string","enum":["YES","NO"],"description":"This field indicates if the customer is sanctioned"},"employmentStatus":{"$ref":"#/components/schemas/EmploymentStatus"},"electronicFacialRecognition":{"type":"string","enum":["SUCCESS","FAILED","NA"],"default":"NA","description":"This field indicates the result of the Electronic Facial Recognition check"},"documentExpiryDate":{"type":"string","format":"date-time","description":"This field is required if electronicFacialRecognition is SUCCESS. Must be a future date."},"emiratesId":{"type":"string","description":"This field is required if electronicFacialRecognition is SUCCESS."},"customerSegment":{"type":"string","enum":["RETAIL","HNW"],"description":"This field indicates the customer segment."},"netWorth":{"type":"string","description":"This field indicates the customer's net worth."},"incomeCurrency":{"type":"string","description":"This field indicates the currency of the customer's income."}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"customerId":{"type":"string","format":"uuid"},"referenceId":{"type":"string"},"customerStatus":{"$ref":"#/components/schemas/CustomerStatus"},"customerType":{"type":"string","enum":["RETAIL","ENTERPRISE","WEALTH"]},"onboardingStatus":{"$ref":"#/components/schemas/OnboardingStatus"},"createdAt":{"type":"string","format":"date-time"},"customerPreTradeRiskGroup":{"$ref":"#/components/schemas/CustomerPreTradeRiskGroupNullable"},"documents":{"$ref":"#/components/schemas/Documents"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"AddCustomer"}}}}
```

## Update Customer

> 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.

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://camsapi-dev.aquanow.com/api","description":"dev"},{"url":"https://camsapi-staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"CustomerPreTradeRiskGroup":{"type":"string","enum":["LOW","HIGH",null]},"AddressType":{"type":"string","enum":["RESIDENTIAL","BUSINESS","GEOGRAPHIC"]},"EmploymentStatus":{"title":"EmploymentStatus","enum":["Employed","Unemployed","Retired","Student","Self-Employed"],"description":"This field indicates the employment status of the customer"},"Address":{"type":"object","required":["streetNumber","streetName","city","state","country","addressType"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"},"addressType":{"$ref":"#/components/schemas/AddressType"}}},"EmployerAddress":{"type":"object","title":"EmployerAddress","nullable":true,"required":["streetNumber","streetName","city","state","country"],"properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"}}}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"403":{"description":"Insufficient Privileges"},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers/{customerId}":{"patch":{"summary":"Update Customer","description":"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.","tags":["Customers"],"parameters":[{"name":"customerId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The customer ID of the customer"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"customerPreTradeRiskGroup":{"$ref":"#/components/schemas/CustomerPreTradeRiskGroup"},"fullName":{"type":"string"},"nationality":{"type":"string"},"address":{"type":"object","properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string"},"addressType":{"$ref":"#/components/schemas/AddressType"}}},"placeOfBirth":{"type":"string"},"dateOfBirth":{"type":"string","format":"date"},"employerName":{"type":"string"},"employerAddress":{"type":"object","properties":{"streetNumber":{"type":"string"},"streetName":{"type":"string"},"unit":{"type":"string"},"poBox":{"type":"string"},"postalCode":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"country":{"type":"string","description":"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"}}},"employmentStatus":{"$ref":"#/components/schemas/EmploymentStatus"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["customerId"],"properties":{"customerId":{"type":"string","format":"uuid"},"customerPreTradeRiskGroup":{"$ref":"#/components/schemas/CustomerPreTradeRiskGroup","nullable":true},"fullName":{"type":"string","nullable":true},"nationality":{"type":"string","nullable":true},"address":{"$ref":"#/components/schemas/Address","nullable":true},"placeOfBirth":{"type":"string","nullable":true},"dateOfBirth":{"type":"string","format":"date","nullable":true},"employerName":{"type":"string","nullable":true},"employerAddress":{"$ref":"#/components/schemas/EmployerAddress","nullable":true},"employmentStatus":{"$ref":"#/components/schemas/EmploymentStatus","nullable":true}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"UpdateOneCustomer"}}}}
```

## List Customer Bank Information

> Retrieve the customer's bank account details for a specific customer.

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://camsapi-dev.aquanow.com/api","description":"dev"},{"url":"https://camsapi-staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"StoredBankAccountInformation":{"type":"object","required":["bankAccountId","bankAccountInformation","status"],"properties":{"bankAccountId":{"type":"string","format":"uuid"},"bankAccountInformation":{"$ref":"#/components/schemas/ClientBankingInstruction"},"status":{"$ref":"#/components/schemas/BankAccountInformationStatus"},"createdAt":{"type":"string","format":"date-time"},"statusReason":{"type":"string","nullable":true}}},"ClientBankingInstruction":{"type":"object","required":["beneficiaryType","currency","beneficiaryAddress","beneficiaryBankName","beneficiaryBankAddress","beneficiaryAccountNumber"],"properties":{"beneficiaryType":{"$ref":"#/components/schemas/ClientBeneficiaryType"},"currency":{"type":"string","description":"ISO 3-letter currency code"},"beneficiaryAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankName":{"type":"string","maxLength":255,"description":"The name of the financial institution holding the beneficiary account."},"beneficiaryBankAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankBic":{"type":"string","minLength":8,"maxLength":11,"description":"The unique identifier code for the beneficiary institution, such as a BIC (Bank Identifier Code) or SWIFT code. Typically 8-11 characters.","nullable":true},"routingCode":{"type":"string","maxLength":20,"description":"The clearing code or routing number for the beneficiary institution. Used for domestic transfers.","nullable":true},"beneficiaryAccountNumber":{"type":"string","maxLength":34,"description":"The account number or IBAN of the beneficiary. Supports various formats (e.g., IBAN up to 34 characters)."},"beneficiaryBankMemo":{"type":"string","maxLength":140,"description":"Payment reference sent with the transfer. If provided, ensures the funds are processed without unnecessary delays and helps the beneficiary identify the payment purpose.","nullable":true},"intermediaryBankName":{"type":"string","nullable":true,"description":"The name of the intermediary financial institution facilitating the payment (e.g., for cross-border transfers). Required only if an intermediary is involved."},"intermediaryBankAddress":{"$ref":"#/components/schemas/AddressInput","nullable":true},"intermediaryBankBic":{"type":"string","minLength":8,"maxLength":11,"nullable":true,"description":"BIC/SWIFT code of the intermediary bank. If required for the payment route, ensures proper routing and prevents delays or rejections."},"intermediaryAccountNumber":{"type":"string","maxLength":34,"nullable":true,"description":"Account number held at the intermediary bank for correspondent banking. If required, ensures funds are properly credited and forwarded without delays."},"beneficiaryGivenNames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiarySurnames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiaryLegalName":{"type":"string","maxLength":255,"description":"Required for BUSINESS beneficiary type","nullable":true}}},"ClientBeneficiaryType":{"type":"string","enum":["INDIVIDUAL","BUSINESS"]},"AddressInput":{"type":"object","required":["addressLine1","city","region","country"],"properties":{"addressLine1":{"type":"string","description":"Street address"},"addressLine2":{"type":"string","description":"Apartment, suite, unit, building, floor, etc.","nullable":true},"city":{"type":"string","description":"City, town or village"},"region":{"type":"string","description":"State or province"},"postalCode":{"type":"string","description":"ZIP or postal code","nullable":true},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"}}},"BankAccountInformationStatus":{"type":"string","enum":["PENDING","ACTIVE","FAILED","REMOVED","COOLING_OFF","COOLED_OFF"]}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}}}}}},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers/{customerId}/bankinfo":{"get":{"summary":"List Customer Bank Information","description":"Retrieve the customer's bank account details for a specific customer.","tags":["Customers"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StoredBankAccountInformation"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"description":"Forbidden"},"404":{"$ref":"#/components/responses/404"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"ListCustomerBankInformation"}}}}
```

## GET /v1/customers/{customerId}/bankinfo/{bankAccountId}

> Get Bank Account Information

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://camsapi-dev.aquanow.com/api","description":"dev"},{"url":"https://camsapi-staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"StoredBankAccountInformation":{"type":"object","required":["bankAccountId","bankAccountInformation","status"],"properties":{"bankAccountId":{"type":"string","format":"uuid"},"bankAccountInformation":{"$ref":"#/components/schemas/ClientBankingInstruction"},"status":{"$ref":"#/components/schemas/BankAccountInformationStatus"},"createdAt":{"type":"string","format":"date-time"},"statusReason":{"type":"string","nullable":true}}},"ClientBankingInstruction":{"type":"object","required":["beneficiaryType","currency","beneficiaryAddress","beneficiaryBankName","beneficiaryBankAddress","beneficiaryAccountNumber"],"properties":{"beneficiaryType":{"$ref":"#/components/schemas/ClientBeneficiaryType"},"currency":{"type":"string","description":"ISO 3-letter currency code"},"beneficiaryAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankName":{"type":"string","maxLength":255,"description":"The name of the financial institution holding the beneficiary account."},"beneficiaryBankAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankBic":{"type":"string","minLength":8,"maxLength":11,"description":"The unique identifier code for the beneficiary institution, such as a BIC (Bank Identifier Code) or SWIFT code. Typically 8-11 characters.","nullable":true},"routingCode":{"type":"string","maxLength":20,"description":"The clearing code or routing number for the beneficiary institution. Used for domestic transfers.","nullable":true},"beneficiaryAccountNumber":{"type":"string","maxLength":34,"description":"The account number or IBAN of the beneficiary. Supports various formats (e.g., IBAN up to 34 characters)."},"beneficiaryBankMemo":{"type":"string","maxLength":140,"description":"Payment reference sent with the transfer. If provided, ensures the funds are processed without unnecessary delays and helps the beneficiary identify the payment purpose.","nullable":true},"intermediaryBankName":{"type":"string","nullable":true,"description":"The name of the intermediary financial institution facilitating the payment (e.g., for cross-border transfers). Required only if an intermediary is involved."},"intermediaryBankAddress":{"$ref":"#/components/schemas/AddressInput","nullable":true},"intermediaryBankBic":{"type":"string","minLength":8,"maxLength":11,"nullable":true,"description":"BIC/SWIFT code of the intermediary bank. If required for the payment route, ensures proper routing and prevents delays or rejections."},"intermediaryAccountNumber":{"type":"string","maxLength":34,"nullable":true,"description":"Account number held at the intermediary bank for correspondent banking. If required, ensures funds are properly credited and forwarded without delays."},"beneficiaryGivenNames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiarySurnames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiaryLegalName":{"type":"string","maxLength":255,"description":"Required for BUSINESS beneficiary type","nullable":true}}},"ClientBeneficiaryType":{"type":"string","enum":["INDIVIDUAL","BUSINESS"]},"AddressInput":{"type":"object","required":["addressLine1","city","region","country"],"properties":{"addressLine1":{"type":"string","description":"Street address"},"addressLine2":{"type":"string","description":"Apartment, suite, unit, building, floor, etc.","nullable":true},"city":{"type":"string","description":"City, town or village"},"region":{"type":"string","description":"State or province"},"postalCode":{"type":"string","description":"ZIP or postal code","nullable":true},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"}}},"BankAccountInformationStatus":{"type":"string","enum":["PENDING","ACTIVE","FAILED","REMOVED","COOLING_OFF","COOLED_OFF"]}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"403":{"description":"Insufficient Privileges"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}}}}}},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers/{customerId}/bankinfo/{bankAccountId}":{"get":{"summary":"Get Bank Account Information","tags":["Customers"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StoredBankAccountInformation"}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"GetBankAccountInformation"}}}}
```

## Add Customer Bank Information

> Associates a new external bank account with an existing customer. Each customer can have up to 20 external bank accounts.

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://camsapi-dev.aquanow.com/api","description":"dev"},{"url":"https://camsapi-staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"schemas":{"PendingBankAccountInformation":{"type":"object","required":["bankAccountId","customerId","coolingOffEndTime","status","createdAt","bankAccount"],"properties":{"bankAccountId":{"type":"string","format":"uuid"},"customerId":{"type":"string","format":"uuid"},"coolingOffEndTime":{"type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/BankAccountInformationStatus"},"createdAt":{"type":"string","format":"date-time"},"bankAccount":{"$ref":"#/components/schemas/ClientBankingInstruction"}}},"BankAccountInformationStatus":{"type":"string","enum":["PENDING","ACTIVE","FAILED","REMOVED","COOLING_OFF","COOLED_OFF"]},"ClientBankingInstruction":{"type":"object","required":["beneficiaryType","currency","beneficiaryAddress","beneficiaryBankName","beneficiaryBankAddress","beneficiaryAccountNumber"],"properties":{"beneficiaryType":{"$ref":"#/components/schemas/ClientBeneficiaryType"},"currency":{"type":"string","description":"ISO 3-letter currency code"},"beneficiaryAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankName":{"type":"string","maxLength":255,"description":"The name of the financial institution holding the beneficiary account."},"beneficiaryBankAddress":{"$ref":"#/components/schemas/AddressInput"},"beneficiaryBankBic":{"type":"string","minLength":8,"maxLength":11,"description":"The unique identifier code for the beneficiary institution, such as a BIC (Bank Identifier Code) or SWIFT code. Typically 8-11 characters.","nullable":true},"routingCode":{"type":"string","maxLength":20,"description":"The clearing code or routing number for the beneficiary institution. Used for domestic transfers.","nullable":true},"beneficiaryAccountNumber":{"type":"string","maxLength":34,"description":"The account number or IBAN of the beneficiary. Supports various formats (e.g., IBAN up to 34 characters)."},"beneficiaryBankMemo":{"type":"string","maxLength":140,"description":"Payment reference sent with the transfer. If provided, ensures the funds are processed without unnecessary delays and helps the beneficiary identify the payment purpose.","nullable":true},"intermediaryBankName":{"type":"string","nullable":true,"description":"The name of the intermediary financial institution facilitating the payment (e.g., for cross-border transfers). Required only if an intermediary is involved."},"intermediaryBankAddress":{"$ref":"#/components/schemas/AddressInput","nullable":true},"intermediaryBankBic":{"type":"string","minLength":8,"maxLength":11,"nullable":true,"description":"BIC/SWIFT code of the intermediary bank. If required for the payment route, ensures proper routing and prevents delays or rejections."},"intermediaryAccountNumber":{"type":"string","maxLength":34,"nullable":true,"description":"Account number held at the intermediary bank for correspondent banking. If required, ensures funds are properly credited and forwarded without delays."},"beneficiaryGivenNames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiarySurnames":{"type":"string","maxLength":200,"description":"Required for INDIVIDUAL beneficiary type"},"beneficiaryLegalName":{"type":"string","maxLength":255,"description":"Required for BUSINESS beneficiary type","nullable":true}}},"ClientBeneficiaryType":{"type":"string","enum":["INDIVIDUAL","BUSINESS"]},"AddressInput":{"type":"object","required":["addressLine1","city","region","country"],"properties":{"addressLine1":{"type":"string","description":"Street address"},"addressLine2":{"type":"string","description":"Apartment, suite, unit, building, floor, etc.","nullable":true},"city":{"type":"string","description":"City, town or village"},"region":{"type":"string","description":"State or province"},"postalCode":{"type":"string","description":"ZIP or postal code","nullable":true},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code"}}}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"403":{"description":"Insufficient Privileges"},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers/{customerId}/bankinfo":{"post":{"summary":"Add Customer Bank Information","description":"Associates a new external bank account with an existing customer. Each customer can have up to 20 external bank accounts.","tags":["Customers"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PendingBankAccountInformation"}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"AddCustomerBankInformation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientBankingInstruction"}}}}}}}}
```

## DELETE /v1/customers/{customerId}/bankinfo/{bankAccountId}

> Remove Customer Bank Information

```json
{"openapi":"3.0.3","info":{"title":"Aquanow CAMS REST API","version":"1.0"},"servers":[{"url":"https://cams.aquanow.com/api","description":"production"},{"url":"http://localhost:3001/api","description":"local"},{"url":"https://camsapi-dev.aquanow.com/api","description":"dev"},{"url":"https://camsapi-staging.aquanow.com/api","description":"staging"},{"url":"https://cams.cert.aquanow.com/api","description":"cert"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer"}},"responses":{"400":{"description":"Validation Error"},"401":{"description":"Unauthorized"},"403":{"description":"Insufficient Privileges"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"properties":{"id":{"type":"string"}}}}}},"4XX":{"description":"Client error"},"5XX":{"description":"Server error"}}},"paths":{"/v1/customers/{customerId}/bankinfo/{bankAccountId}":{"delete":{"summary":"Remove Customer Bank Information","tags":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["bankAccountId","status"],"properties":{"bankAccountId":{"type":"string"},"status":{"type":"string"}}}}}},"400":{"$ref":"#/components/responses/400"},"401":{"$ref":"#/components/responses/401"},"403":{"$ref":"#/components/responses/403"},"404":{"$ref":"#/components/responses/404"},"4XX":{"$ref":"#/components/responses/4XX"},"5XX":{"$ref":"#/components/responses/5XX"}},"operationId":"RemoveCustomerBankAccountInformation"}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aquanow.io/cams/api-reference/customers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
