# Crear un cliente

Crear un nuevo cliente de Débito Directo

Endpoint: POST /customers
Version: 1.0.0
Security: ApiKeyAuth, ApiKeySecret

## Request fields (application/json):

  - `firstname` (string, required)
    El primer nombre del cliente.
    Example: "Carlos"

  - `lastname` (string, required)
    El apellido del cliente.
    Example: "Vives"

  - `email` (string, required)
    El correo electrónico del cliente.
    Example: "carlos-vives@musica.mx"

  - `documentType` (string, required)
    El tipo de documento del individuo.

Para 🇲🇽 México, puede ser uno de los siguientes:
  - mx_rfc: Número de Identificación Fiscal (Registro Federal de Contribuyentes)
  - mx_curp: Clave Única de Registro de Población (Clave Única de Registro de Población)
    Enum: "mx_rfc", "mx_curp"

  - `documentNumber` (string, required)
    El número de documento del cliente.  
Para México, este debe tener 18 caracteres.

> Nota: Si el documentNumber no coincide con la longitud y el formato de caracteres esperados para un documentType dado, devolvemos un error 400 input_validation.
    Example: "123456789"

  - `phone` (string)
    El número de teléfono del cliente (incluido el código de país).
    Example: "+523001234567"

## Response 201 fields (application/json):

  - `customerId` (string)
    El identificador único creado por Belvo utilizado para referenciar al cliente.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

## Response 400 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 400

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Bad Request"

  - `message` (any)
    Una breve descripción del error, indicando qué está mal con la solicitud.
> Nota: Devolvemos una cadena o un arreglo de cadenas, dependiendo del/los error(es) de validación.

La descripción puede ser (entre otras):

  - id must be a UUID
  - Not enough balance
  - amount is not a valid decimal number.
  - currency must be one of the following values: cop, mxn, usd
  - reference must be a string
  - Customer not found for merchant
  - documentType is a required field
    Example: "id must be a UUID"

## Response 401 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 401

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Unauthorized"

  - `message` (string)
    Una breve descripción del error, indicando qué está mal con la solicitud. En el caso de un error 401 Unauthorized, el mensaje es:

  - Unauthorized credentials
    Example: "Unauthorized credentials"

## Response 404 fields (application/json):

  - `statusCode` (integer)
    El código de estado HTTP para este error.
    Example: 404

  - `error` (string)
    La descripción del código de estado HTTP para este error.
    Example: "Not Found"

  - `message` (string)
    Una breve descripción del error, indicando qué está mal con la solicitud. La descripción puede ser (entre otras):

  - Payout Target not found
  - Payment method not found
  - Customer not found
    Example: "Payout Target not found"


