# Pedir un código (https://docs.loybox.com.ar/api-reference/autenticacion/pedir-codigo)



<Endpoint method="POST" path="/v1/auth/otp/request" auth="none" />

Envía por email un código de 6 dígitos para que el usuario final inicie sesión.

Si el email no tiene cuenta en Loybox, la cuenta se crea al
[verificar el código](https://docs.loybox.com.ar/api-reference/autenticacion/verificar-codigo), no acá.

<Callout title="Siempre responde 200">
  Responde `200` incluso si el email no existe. Es **a propósito**: si respondiera
  distinto, cualquiera podría usar este endpoint para averiguar qué emails están
  registrados.

  En la UI esto significa que después de pedir el código mostrás siempre el mismo
  mensaje ("te mandamos un código a tu email") sin poder saber si la cuenta
  existía.
</Callout>

## Headers [#headers]

<Fields>
  <Field name="X-Commerce-Id" type="integer" location="header" required="true">
    Id del comercio que integra la API. Todas las respuestas quedan limitadas a
    este comercio.
  </Field>
</Fields>

No lleva `Authorization`: es el endpoint con el que arranca la sesión.

## Cuerpo [#cuerpo]

<Fields>
  <Field name="email" type="string" required="true">
    Email del usuario. Tiene que tener formato de email válido.
  </Field>
</Fields>

## Ejemplo [#ejemplo]

```bash
curl -X POST https://loybox-public-api-752998171300.southamerica-west1.run.app/v1/auth/otp/request \
  -H "X-Commerce-Id: 87" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ana@example.com"
  }'
```

```json
// 200 OK
{
  "message": "Código enviado"
}
```

## Reglas del código [#reglas-del-código]

* Vence a los **10 minutos**.
* Admite **5 intentos**.
* Pedir un código nuevo **invalida el anterior**.

## Errores [#errores]

| Código | Cuándo                                                   |
| ------ | -------------------------------------------------------- |
| `422`  | Falta el header `X-Commerce-Id`, o el email es inválido. |
