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

# Update a customer

`PATCH /customers/{customerId}`

Partial update. Only include fields you want to change. Compliance-relevant changes (residentialAddress, lastName, identifyingInformation, ipAddress) may trigger endorsement re-evaluation. Including endorsement names in the endorsements array explicitly triggers re-evaluation.

## Path parameters

- `customerId` string, required

## Request body

- CustomerUpdate — Partial update - only send the fields you want to change. All optional fields from CustomerRequest can be updated (including ipAddress). PII fields are write-only.
  - `firstName` string
  - `middleName` string
  - `lastName` string
  - `email` string
  - `phone` string
  - `birthDate` string
  - `nationality` string
  - `ipAddress` string
  - `externalId` string
  - `signedAgreement` boolean — One-way operation - cannot be set back to false.
  - `residentialAddress` ResidentialAddress — Customer's residential address.
    - `line1` string
    - `line2` string
    - `city` string
    - `state` string
    - `country` string — ISO 3166-1 alpha-2 country code.
    - `zipCode` string
  - `identifyingInformation` IdentificationDocument[] — Appends to existing array. To replace an entry, submit the same type with updated fields.
    - `type` 'ssn' | 'itin' | 'driversLicense' | 'passport', required
    - `issuingCountry` string, required — ISO 3166-1 alpha-2 country code.
    - `number` string, required — The identification number.
  - `endorsements` string[] — Request additional endorsements. New endorsements are added; existing ones are not removed. Including endorsement names triggers re-evaluation.
  - `metadata` object

## Response `200`

Customer updated

- Customer — Customer response object. PII fields (birthDate, residentialAddress, ipAddress, identifyingInformation) are write-only - accepted in POST/PATCH but never returned in responses.
  - `id` string
  - `object` string
  - `type` 'individual' — Customer type. Only individual is supported for MVP.
  - `firstName` string, nullable
  - `middleName` string, nullable
  - `lastName` string, nullable
  - `email` string, nullable
  - `phone` string, nullable — Primary phone in E.164 format.
  - `nationality` string, nullable — ISO 3166-1 alpha-2 country code.
  - `externalId` string, nullable — Developer's own user ID for cross-referencing.
  - `status` 'active' | 'inactive' — active or inactive. Inactive customers cannot create new transactions. No intermediate states - all granularity lives in endorsement statuses.
  - `signedAgreement` boolean — Whether the customer has accepted OMS terms of service.
  - `signedAgreementAt` string, date-time, nullable — Timestamp when signedAgreement was set to true. Null if not yet signed.
  - `wallets` object[] — Simplified flat view: one entry per wallet-asset combination. Use GET /wallets/{id} for the full representation.
    - `id` string
    - `type` string
    - `address` string
    - `network` string
    - `asset` string
    - `balance` string
    - `estimatedValueUsd` string
    - `createdAt` string, date-time
  - `endorsements` object[] — Endorsements track KYC/compliance status. Types: basic, cryptoCustody, usd. Statuses use SCREAMING_CASE: INACTIVE, PENDING, ISSUES, ACTIVE, REJECTED, REVOKED_ISSUES, OFFBOARDED.
    - `name` 'basic' | 'cryptoCustody' | 'usd'
    - `status` 'INACTIVE' | 'PENDING' | 'ISSUES' | 'ACTIVE' | 'REJECTED' | 'REVOKED_ISSUES' | 'OFFBOARDED'
    - `rejectionReasons` object[]
      - `developerReason` string
      - `reason` string
    - `requirements` object — Tracks what is complete, pending, missing, or has issues for this endorsement.
      - `complete` string[]
      - `pending` string[]
      - `missing` string[], nullable
      - `issues` string[]
  - `metadata` object, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `401` — Unauthorized
- `404` — Not Found

---

[API](https://skmtc.net/polygon-technology/apis/polygon-oms-public-api.md) · [All operations](https://skmtc.net/polygon-technology/apis/polygon-oms-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polygon-technology/polygon-oms-public-api/revisions/18fdaebf64e5/schema)
