# Create customer

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

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

## Request fields (application/json):

  - `type` (string)
    Customer type. Immutable after creation.
    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 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 422 fields (application/json):

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

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

