---
title: "Update a customer"
method: PUT
path: "/v1/customers/{id}"
tags: ["Customers"]
---

# Update a customer

`PUT /v1/customers/{id}`

Updates an existing customer's information. This endpoint allows you to modify the customer's contact details, PII, and metadata.

## Path parameters

- `id` string, uuid, required

## Headers

- `Straddle-Account-Id` string, uuid
- `Request-Id` string
- `Correlation-Id` string
- `Idempotency-Key` string

## Request body

- UpdateCustomerV1Request
  - `name` string, required — The customer's full name or business name.
  - `email` string, email, required — The customer's email address.
  - `address` AddressV11, nullable — An object containing the customer's address. This is optional, but if provided, all required fields must be present.
    - `address1` string, required — Primary address line (e.g., street, PO Box).
    - `address2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
    - `city` string, required — City, district, suburb, town, or village.
    - `state` string, required — Two-letter state code.
    - `zip` string, required — Zip or postal code.
  - `phone` string, required — The customer's phone number in E.164 format.
  - `compliance_profile` union
    - object — Individual PII data required to trigger Patriot Act compliant KYC verification.
      - `ssn` string, nullable, required — Social Security Number (format XXX-XX-XXXX). Required for Patriot Act-compliant KYC verification.
      - `dob` string, date, nullable, required — Date of birth (YYYY-MM-DD). Required for Patriot Act-compliant KYC verification.
    - object — Business registration data required to trigger Patriot Act compliant KYB verification.
      - `ein` string, nullable, required — Employer Identification Number (format XX-XXXXXXX). Required for Patriot Act-compliant KYB verification.
      - `legal_business_name` string, nullable, required — Official registered business name as listed with the IRS. This value will be matched against the 'legal_business name'.
      - `website` string, uri, nullable — Official business website URL. Optional but recommended for enhanced KYB.
      - `representatives` RepresentativeV11[], nullable — A list of people related to the company. Only valid where customer type is 'business'.
        - `name` string, required
        - `email` string, nullable
        - `phone` string, nullable
  - `external_id` string, nullable — Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems.
  - `device` DeviceUnmaskedV1, required
    - `ip_address` string, ipv4, required — The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration.
  - `status` 'pending' | 'review' | 'verified' | 'inactive' | 'rejected', required
  - `metadata` object, nullable — Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format.

## Response `200`

OK

- CustomerV1ItemResponse
  - `meta` ResponseMetadata, required — Metadata about the API request, including an identifier and timestamp.
    - `api_request_id` string, uuid, required — Unique identifier for this API request, useful for troubleshooting.
    - `api_request_timestamp` string, date-time, required — Timestamp for this API request, useful for troubleshooting.
  - `response_type` 'object' | 'array' | 'error' | 'none', required — Indicates the structure of the returned content. - "object" means the `data` field contains a single JSON object. - "array" means the `data` field contains an array of objects. - "error" means the `data` field contains an error object with details of the issue. - "none" means no data is returned.
  - `data` CustomerV1, required
    - `id` string, uuid, required — Unique identifier for the customer.
    - `name` string, required — Full name of the individual or business name.
    - `type` 'individual' | 'business', required
    - `email` string, email, required — The customer's email address.
    - `phone` string, required — The customer's phone number in E.164 format.
    - `external_id` string, nullable — Unique identifier for the customer in your database, used for cross-referencing between Straddle and your systems.
    - `status` 'pending' | 'review' | 'verified' | 'inactive' | 'rejected', required
    - `created_at` string, date-time, required — Timestamp of when the customer record was created.
    - `updated_at` string, date-time, required — Timestamp of the most recent update to the customer record.
    - `address` AddressV11, nullable — An object containing the customer's address. This is optional, but if provided, all required fields must be present.
      - `address1` string, required — Primary address line (e.g., street, PO Box).
      - `address2` string, nullable — Secondary address line (e.g., apartment, suite, unit, or building).
      - `city` string, required — City, district, suburb, town, or village.
      - `state` string, required — Two-letter state code.
      - `zip` string, required — Zip or postal code.
    - `compliance_profile` union
      - object — PII required to trigger Patriot Act compliant KYC verification.
        - `dob` string, date, nullable, required — Masked date of birth in ****-**-** format.
        - `ssn` string, nullable, required — Masked Social Security Number in the format ***-**-****.
      - object — Business registration data required to trigger Patriot Act compliant KYB verification.
        - `ein` string, nullable, required — Masked Employer Identification Number in the format **-*******
        - `legal_business_name` string, nullable, required — The official registered name of the business. This name should be correlated with the `ein` value.
        - `website` string, uri, nullable — Official business website URL. Optional but recommended for enhanced KYB.
        - `representatives` RepresentativeV11[], nullable — A list of people related to the company. Only valid where customer type is 'business'.
          - `name` string, required
          - `email` string, nullable
          - `phone` string, nullable
    - `device` DeviceV1
      - `ip_address` string, ipv4, required — The customer's IP address at the time of profile creation. Use `0.0.0.0` to represent an offline customer registration.
    - `metadata` object, nullable — Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the customer in a structured format.
    - `config` CustomerConfigurationV1
      - `sandbox_outcome` 'standard' | 'verified' | 'rejected' | 'review'
      - `processing_method` 'inline' | 'background' | 'skip'

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `422` — Validation Failed
- `500` — Server Error

---

[API](https://skmtc.net/straddleio/apis/straddle-api.md) · [All operations](https://skmtc.net/straddleio/apis/straddle-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/straddleio/straddle-api/versions/6e13cd88cda9/schema)
