Customers

Update customer

Changed on

Applies a partial update to a customer's onboarding data. Omitted fields are left unchanged.

Submit the company object for a company customer or the individual object for an individual customer, never both. A body that does not match the customer's type is rejected with 400 (error code bvnk:onboarding-accounts:4021).

:::info Updates are only permitted while the customer is in the INFO_REQUIRED status and before the customer has submitted their onboarding information. In any other status, the request is rejected with 400 (error code bvnk:onboarding-accounts:4004). :::

The same field validation rules as Create customer apply to the updated values, for example, SSN/ITIN format checks for US persons and uniqueness of documentNumber.

Customers onboarded with Customers API v.1 can't be updated with this endpoint; the request is rejected with 400 (error code bvnk:onboarding-accounts:4017).

Associates can't be changed with this endpoint. Use Update customer associate instead.

patch/platform/v2/customers/{id}

Request

Path parameters

idstring uuid required
Example:8d3f2a71-5c1e-4b9a-9f0d-2e6b7c4a1d95

Customer id.

Request body

OR

Example request

{
  "reference": "partner-ind-001-b",
  "company": {
    "name": "Krause Fintech GmbH",
    "entityType": "CORPORATION",
    "taxIdentification": {
      "number": "21/815/08150",
      "taxResidenceCountryCode": "DE"
    },
    "registrationNumber": "HRB 123456",
    "businessProfile": {
      "description": "German fintech company specializing in payment solutions and financial software",
      "naicsCode": "5411",
      "monthlyExpectedVolumes": "FROM_100K_TO_1M",
      "website": "https://www.krause-fintech.de",
      "websiteExplanation": "Trades only through a mobile app and has no public website.",
      "isRegulated": true,
      "regulatorInformation": {
        "regulatorName": "BaFin",
        "regulatorJurisdiction": "DE",
        "regulatorRegisterNumber": "108060"
      },
      "publicInformation": {
        "listedExchange": "NYSE",
        "tickerSymbol": "ACME"
      },
      "sourceOfFunds": "COMMERCIAL_ACTIVITIES",
      "intendedUseOfAccount": "SUPPLIER_VENDOR_PAYMENTS"
    },
    "address": {
      "addressLine1": "Heidestrasse 19",
      "city": "Koeln",
      "postalCode": "51247",
      "stateCode": "NY",
      "countryCode": "DE"
    },
    "operationalAddress": {
      "addressLine1": "Heidestrasse 19",
      "city": "Koeln",
      "postalCode": "51247",
      "stateCode": "NY",
      "countryCode": "DE"
    },
    "incorporationDate": "2019-01-15",
    "cdd": {
      "intendedUseOfAccount": "SUPPLIER_VENDOR_PAYMENTS",
      "pepStatus": "NOT_PEP",
      "expectedMonthlyVolume": {
        "amount": 10000,
        "currency": "EUR"
      }
    }
  }
}

Response

Customer updated

idstring uuid
referencestring
status'AGREEMENTS_PENDING' | 'INFO_REQUIRED' | 'PENDING' | 'ACTIONS_REQUIRED' | 'VERIFIED' | 'REJECTED' | 'TERMINATED'

Customer onboarding status:

  • AGREEMENTS_PENDING: The customer was created through pre-customer agreements and the agreements are not yet signed.

  • INFO_REQUIRED: Customer data, documents, or agreements are still missing. Check requiredActions.

  • PENDING: All information is submitted and the customer is under review.

  • ACTIONS_REQUIRED: Additional information is requested during or after review. Check requiredActions.

  • VERIFIED: The customer is verified.

  • REJECTED: The customer failed verification.

  • TERMINATED: The customer was offboarded.

type'COMPANY' | 'INDIVIDUAL'
model'EMBEDDED' | 'RELIANCE'

The onboarding model of the customer. EMBEDDED indicates BVNK-Managed onboarding, where BVNK performs identity verification. RELIANCE indicates Partner-Managed onboarding, where you perform identity verification.

useCase'FIAT' | 'CRYPTO' | 'STABLECOIN_PAYOUTS' | 'EMBEDDED_STABLECOIN_WALLETS' | 'EMBEDDED_FIAT_ACCOUNTS'
namestring
createdAtstring date-time
updatedAtstring date-time
verificationLinkstring uri

Identity verification (KYC) link. Returned for individual customers onboarded with the BVNK-Managed model. Send it to your customer so they can complete identity verification. The link doesn't expire: it stays active and is refreshed automatically.

Example response

{
  "id": "0a184641-30e2-4414-871f-3db1c683900e",
  "reference": "b3a4c1e2-9a1f-4c2b-8f11-7c2e5d4f9a01",
  "status": "PENDING",
  "type": "COMPANY",
  "model": "EMBEDDED",
  "useCase": "STABLECOIN_PAYOUTS",
  "name": "Krause Fintech GmbH",
  "requiredActions": [
    {
      "status": "REQUIRED",
      "target": {
        "kind": "AGREEMENT",
        "assignedAgreementId": "a3c1f9d2-84b7-4e1a-9f6c-2d8e5b7a4c01",
        "urn": "bvnk:agreements:terms-of-service",
        "version": "2.1",
        "title": "Terms of Service",
        "locale": "en"
      }
    }
  ],
  "verificationLink": "https://verify.bvnk.com/customer/8d3f2a71-5c1e-4b9a-9f0d-2e6b7c4a1d95"
}

Changes