# Update customer

Updates specified customer fields.

Endpoint: POST /customers/update
Version: 2.0.0
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer SECRET

## Request fields (application/json):

  - `id` (string, required)
    Unique customer identifier.
    Example: cust_01KMG2ABYPF6XS5DMJQ817C429

  - `merchant_reference` (string | null)
    Merchant-defined reference for the customer.
    Example: 12345

  - `email` (string)
    Customer email.
    Example: customer@example.com

  - `first_name` (string | null)
    Customer first name.
    Example: John

  - `last_name` (string | null)
    Customer last name.
    Example: Doe

  - `phone` (string | null)
    Customer phone number.
    Example: +1234567890

  - `address` (object)
    Customer address.
    Example: {"city":"Anytown","country":"USA","line1":"123 Main St","line2":"Suite 456","state":"CA","postal_code":"12345"}

  - `address.city` (string)
    City name.
    Example: Anytown

  - `address.country` (string)
    Country according to the ISO-3166 alpha-3 country code.
    Example: USA

  - `address.line1` (string)
    Address line 1.
    Example: 123 Main St

  - `address.line2` (string)
    Address line 2.
    Example: Suite 456

  - `address.state` (string)
    State or province.
    Example: CA

  - `address.postal_code` (string)
    Postal or ZIP code.
    Example: 12345

  - `tax` (object)
    Provides customer tax information.

  - `tax.taxability` (string, required)
    Indicates if the customer is subject to tax.
    Enum: "EXEMPT", "TAXABLE"

  - `tax.registrations` (array | null)
    Complete list of tax registrations for the customer. The provided list replaces the existing list. Include every registration you want to keep, as omitted registrations are deleted.
    Example: [{"scheme":"VAT","id":"DE123456789","country":"DEU","validation":{"mode":"MANUAL","status":"VALID","validated_at":"2024-01-15T10:30:00.000000Z"}}]

  - `tax.registrations.scheme` (string, required)
    Tax registration scheme.
    Enum: "VAT"

  - `tax.registrations.id` (string, required)
    Tax registration number for the specified scheme.
    Example: DE123456789

  - `tax.registrations.country` (string, required)
    ISO 3166-1 alpha-3 country code.
    Example: DEU

  - `tax.registrations.validation` (object)
    Determines how to validate the tax registration.
    Example: {"mode":"AUTO"}

  - `tax.registrations.validation.mode` (string)
    Validates the tax registration through VIES. Validation runs asynchronously.
    Enum: "AUTO"

  - `tax.registrations.validation.mode` (string)
    Stores the tax registration with the status you assert.
    Enum: "MANUAL"

  - `tax.registrations.validation.status` (string, required)
    Status you assert for the tax registration.
    Enum: "VALID", "INVALID"

  - `tax.registrations.validation.validated_at` (string, required)
    Date and time when you validated the tax registration.
    Example: 2024-01-15T10:30:00.000000Z

  - `status` (string)
    Customer status.
    Enum: "ACTIVE", "INACTIVE"

  - `type` (string)
    Customer type.
    Enum: "INDIVIDUAL", "BUSINESS"

  - `business_details` (object)
    Business-specific details for a customer profile.

  - `business_details.name` (string)
    Legal business name.
    Example: Acme Corporation

  - `business_details.legal_address` (object)
    Registered legal address of the business.

  - `business_details.legal_address.country` (string, required)
    Country according to the ISO-3166 alpha-3 country code.
    Enum: "AUS", "BRA", "CAN", "CHN", "IND", "KOR", "MEX", "MYS", "NZL", "USA"

  - `business_details.legal_address.country` (string, required)
    Country according to the ISO-3166 alpha-3 country code.
    Example: DEU

  - `configuration` (object)
    Customer-level configuration settings.

  - `configuration.default_billing_currency` (string)
    ISO 4217 currency code used as default for billing.
    Example: USD

  - `configuration.default_payment_instrument_id` (string)
    Unique identifier of the default payment instrument for this customer.
    Example: pi_01J1Z2X3Y4W5V6U7T8S9R0

  - `configuration.preferred_locales` (array)
    Ordered list of preferred locales as BCP 47 tags.
    Example: ["en-US","de-DE"]

  - `metadata` (object | null)
    Arbitrary key-value metadata set by merchant.
    Example: {"internal_ref":"cust-123"}

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `id` (string, required)
    Unique customer identifier.
    Example: cust_01KMG2ABYPF6XS5DMJQ817C429

  - `email` (string, required)
    Customer email.
    Example: customer@example.com

  - `first_name` (string)
    Customer first name.
    Example: John

  - `last_name` (string)
    Customer last name.
    Example: Doe

  - `phone` (string)
    Customer phone number.
    Example: +1234567890

  - `merchant_reference` (string)
    Merchant-defined reference for the customer.
    Example: 12345

  - `address` (object)
    Customer address.

  - `address.city` (string)
    City name.
    Example: Anytown

  - `address.country` (string)
    Country according to the ISO-3166 alpha-3 country code.
    Example: USA

  - `address.line1` (string)
    Address line 1.
    Example: 123 Main St

  - `address.line2` (string)
    Address line 2.
    Example: Suite 456

  - `address.state` (string)
    State or province.
    Example: CA

  - `address.postal_code` (string)
    Postal or ZIP code.
    Example: 12345

  - `tax` (object, required)
    Provides customer tax information.

  - `tax.taxability` (string, required)
    Indicates if the customer is subject to tax.
The list of enum values may be extended without notice.
    Enum: "EXEMPT", "TAXABLE"

  - `tax.registrations` (array)
    Tax registrations associated with the customer.
    Example: [{"scheme":"VAT","id":"DE123456789","country":"DEU","validation":{"status":"VALID","validated_at":"2024-01-15T10:30:00.000000Z","source":"VIES"}}]

  - `tax.registrations.scheme` (string, required)
    Tax registration scheme.
    Enum: "VAT"

  - `tax.registrations.id` (string, required)
    Tax registration number for the specified scheme.
    Example: DE123456789

  - `tax.registrations.country` (string, required)
    ISO 3166-1 alpha-3 country code.
    Example: DEU

  - `tax.registrations.validation` (object, required)
    Validation result for tax registration.

  - `tax.registrations.validation.status` (string, required)
    Status of the tax registration validation.
    Enum: "VALID", "INVALID", "PENDING", "FAILED"

  - `tax.registrations.validation.validated_at` (string)
    Date and time when the validation completed. Absent while `status` is `PENDING` or `FAILED`.
    Example: 2024-01-15T10:30:00.000000Z

  - `tax.registrations.validation.source` (string, required)
    Method or external system used for validation.
The list of enum values may be extended without notice.
    Enum: "VIES", "MANUAL"

  - `status` (string, required)
    Customer status.
The list of enum values may be extended without notice.
    Enum: "ACTIVE", "INACTIVE"

  - `configuration` (object)
    Customer-level configuration settings.

  - `configuration.default_billing_currency` (string)
    ISO 4217 currency code used as default for billing.
    Example: USD

  - `configuration.default_payment_instrument_id` (string)
    Unique identifier of the default payment instrument for this customer.
    Example: pi_01J1Z2X3Y4W5V6U7T8S9R0

  - `configuration.preferred_locales` (array)
    Ordered list of preferred locales as BCP 47 tags.
    Example: ["en-US","de-DE"]

  - `metadata` (object)
    Arbitrary key-value metadata set by merchant.
    Example: {"internal_ref":"cust-123","segment":"enterprise"}

  - `balances` (array)
    Customer balances.
    Example: [{"currency":"USD","amount":1000}]

  - `balances.currency` (string, required)
    ISO 4217 currency code.
    Example: USD

  - `balances.amount` (integer, required)
    Available balance amount in minor units.
    Example: 1000

  - `created_at` (string, required)
    Date and time when the customer was created.
    Example: 2024-01-01T10:00:00.000000Z

  - `updated_at` (string, required)
    Date and time when the customer was updated.
    Example: 2024-01-02T15:00:00.000000Z

  - `type` (string, required)
    Customer type.
    Enum: "INDIVIDUAL"

  - `type` (string, required)
    Customer type.
    Enum: "BUSINESS"

  - `business_details` (object)
    Business-specific details for a customer profile.

  - `business_details.name` (string)
    Legal business name.
    Example: Acme Corporation

  - `business_details.legal_address` (object)
    Registered legal address of the business.

  - `business_details.legal_address.city` (string, required)
    City name.
    Example: Anytown

  - `business_details.legal_address.country` (string, required)
    Country according to the ISO-3166 alpha-3 country code.
    Enum: "AUS", "BRA", "CAN", "CHN", "IND", "KOR", "MEX", "MYS", "NZL", "USA"

  - `business_details.legal_address.line1` (string, required)
    Address line 1.
    Example: 123 Main St

  - `business_details.legal_address.line2` (string)
    Address line 2.
    Example: Suite 456

  - `business_details.legal_address.state` (string, required)
    State or province.
    Example: CA

  - `business_details.legal_address.postal_code` (string, required)
    Postal or ZIP code.
    Example: 12345

  - `business_details.legal_address.country` (string, required)
    Country according to the ISO-3166 alpha-3 country code.
    Example: DEU

## Response 400:

  - `400` (unknown)
    Bad request

## Response 400 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "VALIDATION"

  - `message` (string, required)
    Message describing the error.
    Example: One or more fields failed validation due to constraints

  - `context` (object, required)
    Additional context about the validation error, including specific constraints.
    Example: {"constraints":{"email":{"type":"TYPE","message":"The 'email' field must be a valid email address"},"age":{"type":"MIN","message":"The 'age' field must be a number greater than or equal to 18"}}}

  - `context.constraints` (object, required)
    Failed constraints keyed by the field name.

## Response 401:

  - `401` (unknown)
    Unauthenticated

## Response 401 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "UNAUTHENTICATED"

  - `message` (string, required)
    Message describing the error.
    Example: Credentials are invalid or missing

## Response 403:

  - `403` (unknown)
    Unauthorized

## Response 403 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "PERMISSION_DENIED"

  - `message` (string, required)
    Message describing the error.
    Example: Permission denied

## Response 404:

  - `404` (unknown)
    Not found

## Response 404 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "NOT_FOUND"

  - `message` (string, required)
    Message describing the error. The entity varies by endpoint.
    Example: The requested resource could not be found

## Response 422:

  - `422` (unknown)
    Unprocessable entity

## Response 422 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
The list of enum values may be extended without notice.
    Enum: "INVALID_DEFAULT_PAYMENT_INSTRUMENT", "INVALID_CUSTOMER_TYPE_TRANSITION"

  - `message` (string, required)
    Message describing the error.
    Example: The request conflicts with the current state

  - `context` (object)
    Additional error context.

## Response 429:

  - `429` (unknown)
    Too many requests

## Response 429 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "RATE_LIMIT"

  - `message` (string, required)
    Message describing the error.
    Example: Rate limit exhausted

  - `context` (object)
    Additional context about the error.

  - `context.next_try_at` (string)
    Timestamp indicating when to retry the request.
    Example: 2024-12-31T23:59:59.000000Z

## Response 200 examples:

  - `Individual` (unknown)

  - `Business` (unknown)

## Response 404 examples:

  - `notFound` (unknown)

