# Autenticación (https://docs.loybox.com.ar/api-reference/autenticacion)



Login del **usuario final** con un código de un solo uso enviado por email. Es
la sección que habilita integrar Loybox directamente en el frontend de tu web,
sin pasar por tu servidor.

No hay contraseñas: el usuario pone su email, recibe un código de 6 dígitos y con
eso queda logueado.

## El flujo [#el-flujo]

<Steps>
  <Step>
    ### Pedir el código [#pedir-el-código]

    [`POST /v1/auth/otp/request`](https://docs.loybox.com.ar/api-reference/autenticacion/pedir-codigo) con el
    email del usuario. Le llega un código de 6 dígitos. El endpoint responde `200`
    siempre, incluso si ese email no tiene cuenta.
  </Step>

  <Step>
    ### Verificarlo [#verificarlo]

    [`POST /v1/auth/otp/verify`](https://docs.loybox.com.ar/api-reference/autenticacion/verificar-codigo) con
    el email y el código. Devuelve un token de acceso (`access`) y uno de refresco
    (`refresh`). Si el email no tenía cuenta en Loybox, se crea; en ambos casos el
    usuario queda adherido al programa de tu comercio.
  </Step>

  <Step>
    ### Usar la sesión [#usar-la-sesión]

    A partir de ahí, las llamadas a [Mi cuenta](https://docs.loybox.com.ar/api-reference/mi-cuenta) van con el
    header `Authorization: Bearer {access}`.
  </Step>

  <Step>
    ### Renovarla [#renovarla]

    Cuando el `access` vence,
    [`POST /v1/auth/refresh`](https://docs.loybox.com.ar/api-reference/autenticacion/renovar-token) devuelve
    uno nuevo a partir del `refresh`, sin pedirle otro código al usuario.
  </Step>
</Steps>

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

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

## El header X-Commerce-Id [#el-header-x-commerce-id]

Todos los endpoints de esta sección y de [Mi cuenta](https://docs.loybox.com.ar/api-reference/mi-cuenta)
requieren el header `X-Commerce-Id` con el id de tu comercio:

```
X-Commerce-Id: {tu-commerce-id}
```

Ese header es el que limita la respuesta a tu programa: el usuario nunca ve datos
de otros comercios.

<Callout type="warn" title="No confundas las dos credenciales">
  La **API key** del comercio es secreta y va únicamente en tu servidor. El
  **token de acceso del usuario** es el que puede vivir en el browser. No mandes
  nunca la API key desde el frontend. Ver
  [Credenciales](https://docs.loybox.com.ar/api-reference/credenciales).
</Callout>

## Los endpoints [#los-endpoints]

<Cards>
  <Card title="Pedir un código" icon="Mail" description="Le manda al usuario un código de 6 dígitos por email." href="/api-reference/autenticacion/pedir-codigo" />

  <Card title="Verificar el código" icon="BadgeCheck" description="Valida el código y devuelve los tokens de sesión." href="/api-reference/autenticacion/verificar-codigo" />

  <Card title="Renovar el token" icon="RefreshCw" description="Un access nuevo a partir del refresh, sin molestar al usuario." href="/api-reference/autenticacion/renovar-token" />
</Cards>
