> ## Documentation Index
> Fetch the complete documentation index at: https://developers.paycode.com.mx/llms.txt
> Use this file to discover all available pages before exploring further.

# Clientes

Gestiona los clientes asociados a tu negocio. Un cliente en PayCode es el registro de la persona que realiza los pagos, puedes crearlo, consultarlo, actualizarlo y eliminarlo.

***

## Crear cliente

**Método:** `POST` **Endpoint:** `/api/v2/customers`

**Header requerido:** `Authorization: Bearer {token}`

**Ejemplo de request:**

```json theme={null}
{
  "customers": [
    {
      "customer_code": "1234567893333",
      "name": "Demo",
      "paternal_surname": "Api",
      "maternal_surname": "V2",
      "email": "demo@ejemplo.com",
      "phone": "5555555555"
    }
  ]
}
```

**Descripción de los campos:**

| Campo              | Tipo   | Requerido | Descripción                                                         |
| ------------------ | ------ | --------- | ------------------------------------------------------------------- |
| `customer_code`    | string | Sí        | Identificador único del cliente. Alfanumérico, máximo 18 caracteres |
| `name`             | string | Sí        | Nombre del cliente                                                  |
| `paternal_surname` | string | Sí        | Apellido paterno del cliente                                        |
| `maternal_surname` | string | No        | Apellido materno del cliente                                        |
| `email`            | string | Sí        | Correo electrónico del cliente                                      |
| `phone`            | string | No        | Teléfono del cliente                                                |

<Note>
  Puedes crear múltiples clientes en una sola llamada enviando más de un objeto dentro del array `customers`.
</Note>

***

## Obtener cliente

**Método:** `GET` **Endpoint:** `/api/v2/customers?customer_code={customer_code}`

**Header requerido:** `Authorization: Bearer {token}`

**Parámetros:**

| Parámetro       | Tipo   | Requerido | Descripción                                 |
| --------------- | ------ | --------- | ------------------------------------------- |
| `customer_code` | string | Sí        | Identificador único del cliente a consultar |

***

## Actualizar cliente

**Método:** `PUT` **Endpoint:** `/api/v2/customers`

**Header requerido:** `Authorization: Bearer {token}`

**Ejemplo de request:**

```json theme={null}
{
  "customer_code": "123456789123456789",
  "new_customer_code": "123456789123456700",
  "name": "Demo",
  "paternal_surname": "Api",
  "maternal_surname": "V2"
}
```

**Descripción de los campos:**

| Campo               | Tipo   | Requerido | Descripción                               |
| ------------------- | ------ | --------- | ----------------------------------------- |
| `customer_code`     | string | Sí        | Identificador actual del cliente          |
| `new_customer_code` | string | No        | Nuevo identificador. Máximo 18 caracteres |
| `name`              | string | No        | Nuevo nombre                              |
| `paternal_surname`  | string | No        | Nuevo apellido paterno                    |
| `maternal_surname`  | string | No        | Nuevo apellido materno                    |

<Note>
  Solo es obligatorio enviar `customer_code`. Los demás campos son opcionales, solo se actualizan los que incluyas en el request.
</Note>

***

## Eliminar cliente

**Método:** `DELETE` **Endpoint:** `/api/v2/customers/{customer_code}`

**Header requerido:** `Authorization: Bearer {token}`

**Parámetros:**

| Parámetro       | Tipo   | Requerido | Descripción                                |
| --------------- | ------ | --------- | ------------------------------------------ |
| `customer_code` | string | Sí        | Identificador único del cliente a eliminar |

<Warning>
  Esta acción es irreversible. Una vez eliminado el cliente no puede recuperarse.
</Warning>
