---
title: "Update a customer legal profile"
method: PATCH
path: "/v1/customers/{customerId}/profile"
tags: ["Customers"]
---

# Update a customer legal profile

`PATCH /v1/customers/{customerId}/profile`

## Request

- Base URL: `https://hyperscale0.ai`
- URL: `https://hyperscale0.ai/v1/customers/{customerId}/profile`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Sets or replaces the sealed legal profile while the customer entity is pending.

## Path parameters

- `customerId` string, required: Tenant-local customer ID

## Headers

- `X-Hyperscale-Environment` 'sandbox' | 'live'
- `Idempotency-Key` string, required

## Request body

- object
  - `profile` union, required
    - object
      - `kind` 'person', required
      - `nationality` string, required: ISO 3166-1 alpha-2 country code
      - `dateOfBirth` string, date, required
      - `idDocument` object, required
        - `type` 'national_id' | 'resident_id' | 'passport', required
        - `number` string, required
        - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
        - `expiresOn` string, date, required
      - `phone` string, required
      - `address` object, required
        - `line1` string, required
        - `city` string, required
        - `postalCode` string, required
        - `country` string, required: ISO 3166-1 alpha-2 country code
      - `occupation` string, required
      - `sourceOfFunds` 'salary' | 'business_income' | 'investments' | 'savings' | 'inheritance' | 'other', required
      - `politicallyExposed` boolean, required
    - object
      - `kind` 'organization', required
      - `legalForm` 'llc' | 'sole_establishment' | 'joint_stock' | 'simplified_joint_stock' | 'partnership' | 'foreign_branch' | 'nonprofit' | 'other', required
      - `registrationNumber` string, required
      - `incorporatedOn` string, date, required
      - `taxNumber` string
      - `activity` string, required
      - `phone` string, required
      - `address` object, required
        - `line1` string, required
        - `city` string, required
        - `postalCode` string, required
        - `country` string, required: ISO 3166-1 alpha-2 country code
      - `signatory` object, required
        - `fullName` string, required
        - `role` string, required
        - `idDocument` object, required
          - `type` 'national_id' | 'resident_id' | 'passport', required
          - `number` string, required
          - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
          - `expiresOn` string, date, required
      - `beneficialOwners` object[], required
        - `fullName` string, required
        - `nationality` string, required: ISO 3166-1 alpha-2 country code
        - `idDocument` object, required
          - `type` 'national_id' | 'resident_id' | 'passport', required
          - `number` string, required
          - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
          - `expiresOn` string, date, required
        - `ownershipPercent` number, required

## Response `200`

Success

- CustomerProfileUpdateOutput
  - `tenantId` string, required: Organization tenant ID
  - `customerId` string, required: Tenant-local customer ID
  - `profile` union, required
    - object
      - `kind` 'person', required
      - `nationality` string, required: ISO 3166-1 alpha-2 country code
      - `dateOfBirth` string, date, required
      - `idDocument` object, required
        - `type` 'national_id' | 'resident_id' | 'passport', required
        - `number` string, required
        - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
        - `expiresOn` string, date, required
      - `phone` string, required
      - `address` object, required
        - `line1` string, required
        - `city` string, required
        - `postalCode` string, required
        - `country` string, required: ISO 3166-1 alpha-2 country code
      - `occupation` string, required
      - `sourceOfFunds` 'salary' | 'business_income' | 'investments' | 'savings' | 'inheritance' | 'other', required
      - `politicallyExposed` boolean, required
    - object
      - `kind` 'organization', required
      - `legalForm` 'llc' | 'sole_establishment' | 'joint_stock' | 'simplified_joint_stock' | 'partnership' | 'foreign_branch' | 'nonprofit' | 'other', required
      - `registrationNumber` string, required
      - `incorporatedOn` string, date, required
      - `taxNumber` string
      - `activity` string, required
      - `phone` string, required
      - `address` object, required
        - `line1` string, required
        - `city` string, required
        - `postalCode` string, required
        - `country` string, required: ISO 3166-1 alpha-2 country code
      - `signatory` object, required
        - `fullName` string, required
        - `role` string, required
        - `idDocument` object, required
          - `type` 'national_id' | 'resident_id' | 'passport', required
          - `number` string, required
          - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
          - `expiresOn` string, date, required
      - `beneficialOwners` object[], required
        - `fullName` string, required
        - `nationality` string, required: ISO 3166-1 alpha-2 country code
        - `idDocument` object, required
          - `type` 'national_id' | 'resident_id' | 'passport', required
          - `number` string, required
          - `issuingCountry` string, required: ISO 3166-1 alpha-2 country code
          - `expiresOn` string, date, required
        - `ownershipPercent` number, required
  - `profileStatus` 'complete', required
  - `updatedAt` string, date-time, required

## Other responses

- `default`: ErrorResponse. See x-error-codes and x-errors for codes, HTTP statuses and retry guidance.

---

[API](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api.md) · [All operations](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hyperscale0/apis/hyperscale-product-api/revisions/e9e8faa044d5?raw)
