# Update Buyer's KYB details

Update the details of the buyer that the logged-in user belongs to.
The following Buyer details are verified during due diligence (KYB) and cannot be updated via the API once the Buyer has been verified:
- Admin User Name
- Admin User Surname
- Admin User Email
- Admin User Mobile Country Code
- Admin User Mobile Number
- Admin Date of Birth
- Company Business Address

*If these details need to be changed after due diligence is completed, please contact Customer Support to restart the Due Diligence process.*
Required user role: `ADMIN`

Endpoint: PATCH /v1/buyers/kyb
Version: v1
Security: apiKey, authToken

## Security:

  - `apiKey` (unknown)
    apiKey in header api-key

  - `authToken` (unknown)
    http bearer JWT

## Request fields (application/json):

  - `tag` (string)
    The tag field is a custom field that can be used to search and filter.

  - `company` (object)
    The details associated with the company. The details provided need to match exactly with the details provided during KYB.

  - `company.businessAddress` (object)
    The address where the business is based.

  - `company.businessAddress.addressLine1` (string, required)
    The first line of the address.

  - `company.businessAddress.addressLine2` (string)
    The second line of the address.

  - `company.businessAddress.city` (string, required)
    The city of the address.

  - `company.businessAddress.postCode` (string, required)
    The post cost associated with the address.

  - `company.businessAddress.state` (string)
    The state of the address.

  - `company.businessAddress.country` (string, required)
    The country of the address expressed in ISO 3166 alpha-2 format.

  - `adminUser` (object)
    The legal representative of the buyer. Admin users can invite and manage the buyer's authorised users.

  - `adminUser.name` (string)
    First name of the admin user.

  - `adminUser.surname` (string)
    Last name of the admin user.

  - `adminUser.email` (string)
    E-mail Address of the user

  - `adminUser.mobile` (object)
    Mobile number of the user

  - `adminUser.mobile.countryCode` (string, required)
    The country code of the Buyer's admin user mobile number (e.g. +44).

  - `adminUser.mobile.number` (string, required)
    The mobile number of the Buyer's admin user - excluding country code.

  - `adminUser.dateOfBirth` (object)
    Date of birth of the authorised user.

  - `adminUser.dateOfBirth.year` (integer, required)

  - `adminUser.dateOfBirth.month` (integer, required)

  - `adminUser.dateOfBirth.day` (integer, required)

## Response 200:

  - `200` (unknown)
    Success

## Response 200 fields (application/json):

  - `id` (string, required)
    Id of the buyer.

  - `tag` (string)
    The tag field is a custom field that can be used to search and filter.

  - `adminUser` (object, required)
    The admin user of the Buyer Identity.

  - `adminUser.id` (string, required)
    The Corporate Id

  - `adminUser.name` (string, required)
    First name of the admin user.

  - `adminUser.surname` (string, required)
    Last name of the admin user.

  - `adminUser.email` (string, required)
    E-mail Address of the user

  - `adminUser.mobile` (object, required)
    Mobile number of the user

  - `adminUser.mobile.countryCode` (string, required)
    The country code of the Buyer's admin user mobile number (e.g. +44).

  - `adminUser.mobile.number` (string, required)
    The mobile number of the Buyer's admin user - excluding country code.

  - `adminUser.companyPosition` (string, required)
    The company position of the Buyer Admin User.
    Enum: "DIRECTOR", "AUTHORISED_REPRESENTATIVE"

  - `adminUser.dateOfBirth` (object)
    Date of birth of the authorised user.

  - `adminUser.dateOfBirth.year` (integer, required)

  - `adminUser.dateOfBirth.month` (integer, required)

  - `adminUser.dateOfBirth.day` (integer, required)

  - `adminUser.active` (boolean, required)
    The state of the admin user. If false, then the user will not be able to log in.

  - `adminUser.emailVerified` (boolean, required)
    Indicates if the admin user's email has been verified.

  - `adminUser.mobileNumberVerified` (boolean, required)
    Indicates if the admin user's mobile number has been verified.

  - `adminUser.roles` (array, required)
    Roles define the level of access assigned to the user.
* `CREATOR`: Users assigned this role can create, view and update payment runs.
* `CONTROLLER`: Users assigned this role can view and link their company's bank accounts as well as fund payment runs.
* `ADMIN`: Users assigned to this role can create a business and ensure that systems and processes are effectively managed.

  - `company` (object, required)
    The details associated with the company being on-boarded. The details provided need to match exactly with the details provided during KYB.

  - `company.type` (string, required)
    Supported company types - if company type is not listed, please contact our support team to check if the company type can be supported.
    Enum: "LLC", "PUBLIC_LIMITED_COMPANY", "LIMITED_LIABILITY_PARTNERSHIP"

  - `company.name` (string, required)
    The registered name of the company.

  - `company.registrationNumber` (string)
    The company registration number.

  - `company.businessAddress` (object)
    The address where the business is based.

  - `company.businessAddress.addressLine1` (string, required)
    The first line of the address.

  - `company.businessAddress.addressLine2` (string)
    The second line of the address.

  - `company.businessAddress.city` (string, required)
    The city of the address.

  - `company.businessAddress.postCode` (string, required)
    The post cost associated with the address.

  - `company.businessAddress.state` (string)
    The state of the address.

  - `company.businessAddress.country` (string, required)
    The country of the address expressed in ISO 3166 alpha-2 format.

  - `company.countryOfRegistration` (string, required)
    The country of company registration in ISO 3166 alpha-2.
    Enum: "GB", "AT", "BE", "BG", "HR", "CY", "CZ", "DK", "EE", "FI", "FR", "DE", "GI", "GR", "HU", "IS", "IE", "IT", "LV", "LI", "LT", "LU", "MT", "NL", "NO", "PL", "PT", "RO", "SK", "SI", "ES", "SE"

  - `company.registeredAddress` (object)
    The legal address of the company. This information is captured via the Due Diligence (KYB) process.

  - `company.registeredAddress.addressLine1` (string, required)

  - `company.registeredAddress.addressLine2` (string)

  - `company.registeredAddress.city` (string, required)

  - `company.registeredAddress.postCode` (string)

  - `company.registeredAddress.state` (string)

  - `company.registeredAddress.country` (string, required)
    Country of the identity in ISO 3166 alpha-2 format.

  - `company.incorporatedOn` (object)
    The company's date of incorporation

  - `company.incorporatedOn.year` (integer, required)

  - `company.incorporatedOn.month` (integer, required)

  - `company.incorporatedOn.day` (integer, required)

  - `acceptedTerms` (boolean, required)
    Must be set to *true* to indicate that the admin user has accepted the terms and conditions.

  - `supportedCurrencies` (array, required)

  - `supportedCurrencies.currency` (string, required)
    The currency expressed in ISO-4217 code.
    Enum: "GBP", "EUR"

  - `supportedCurrencies.status` (string, required)
    The status of the currency, which can include the following values
* `PENDING_KYB_APPROVAL`: The buyer’s KYB process is pending approval.
* `STEPUP_LOGIN_REQUIRED`: The buyer needs to perform a stepped-up login for higher authentication.
* `PENDING_CREATION`: Awaiting the setup completion of the currency
* `ACTIVE`: The ZBA has been successfully created and is ready for use.
* `UNAVAILABLE`: The currency is unavailable and cannot be used.
    Enum: "PENDING_KYB_APPROVAL", "STEPUP_LOGIN_REQUIRED", "PENDING_CREATION", "ACTIVE", "UNAVAILABLE"

  - `creationTimestamp` (integer, required)
    The time when the Buyer was created, expressed in Epoch timestamp using millisecond precision.

## Response 400:

  - `400` (unknown)
    Bad Request Error - Your request is invalid.

## Response 400 fields (application/json):

  - `message` (string)
    When present helps to identify and fix the problem.

  - `syntaxErrors` (object)
    Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.

  - `syntaxErrors.invalidFields` (array)

  - `syntaxErrors.invalidFields.params` (array)

  - `syntaxErrors.invalidFields.fieldName` (string)

  - `syntaxErrors.invalidFields.error` (string)
    Enum: "REQUIRED", "HAS_TEXT", "REQUIRES", "SIZE", "RANGE", "IN", "NOT_IN", "REGEX", "EXACTLY", "AT_LEAST", "AT_MOST", "ALL_OR_NONE"

## Response 400 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 401:

  - `401` (unknown)
    Unauthorized - Your credentials or access token are invalid.

## Response 401 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 403:

  - `403` (unknown)
    Forbidden - Access to the requested resource or action is forbidden.

## Response 403 fields (application/json):

  - `errorCode` (string)
    Enum: "INSUFFICIENT_PERMISSIONS"

## Response 403 headers (application/json):

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 409:

  - `409` (unknown)
    Conflict

## Response 409 fields (application/json):

  - `errorCode` (string)
    Enum: "ADMIN_EMAIL_NOT_UNIQUE", "CURRENCY_UNSUPPORTED", "COUNTRY_INVALID", "TERMS_NOT_ACCEPTED", "MOBILE_OR_COUNTRY_CODE_INVALID", "COUNTRY_UNSUPPORTED", "COMPANY_TYPE_UNSUPPORTED", "IDEMPOTENT_REQUEST_IN_PROGRESS"

## Response 429:

  - `429` (unknown)
    Too many requests.

## Response 429 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

  - `x-ratelimit-limit` (string, required)
    Example: `20, 10;w=60, 20;w=3600, 200;w=86400`
The first number (20) is the limit that has been exceeded.
The remaining numbers are the limits that are in force, with 'w' meaning 'window in seconds'. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)

  - `x-ratelimit-reset` (integer, required)
    The number of seconds until the window is reset.

## Response 500:

  - `500` (unknown)
    Internal Server Error - There is a problem with the server. Please try again later.

## Response 500 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response 503:

  - `503` (unknown)
    Service Unavailable - We're temporarily offline for maintenance. Please try again later.

## Response 503 headers:

  - `request-ref` (string, required)
    A request identifier. Providing this reference when contacting our support team will help us investigate your query.

## Response default:

  - `default` (unknown)
    Error

## Response default fields (application/json):

  - `code` (string)

  - `message` (string)

