# Update customer

Updates specified <a href="https://docs.solidgate.com/billing/manage-customers/customers/" target="_blank">customer</a> fields.

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

## 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 | null)
    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.
    Example: AUTO

  - `tax.registrations.validation.mode` (string)
    Stores the tax registration with the status you assert.
    Example: 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 | null)
    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

  - `configuration` (object | null)
    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"]

## Response 200 fields (application/json):

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

  - `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

## 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"}}}

## 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 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 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 fields (application/json):

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

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

## 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

