# Canjear un beneficio (https://docs.loybox.com.ar/api-reference/beneficios/canjear)



<Endpoint method="POST" path="/v1/benefits/redeem" auth="api-key" />

Canjea el beneficio usando el código que tiene el cliente. Es el último paso del
flujo: a partir de acá el código queda quemado y no se puede volver a usar.

<Callout type="warn" title="No tiene vuelta atrás">
  Llamá a este endpoint recién cuando la venta esté cerrada y el descuento
  aplicado. Si lo llamás antes y la venta se cae, el cliente pierde el premio y no
  hay forma de devolvérselo por API.

  Para ver qué premio es sin quemarlo, usá
  [consultar un código](https://docs.loybox.com.ar/api-reference/beneficios/consultar-codigo).
</Callout>

## Cuerpo [#cuerpo]

<Fields>
  <Field name="client_benefit_code" type="integer" required="true">
    El código de canje que tiene el cliente.
  </Field>
</Fields>

## Ejemplo [#ejemplo]

```bash
curl -X POST https://loybox-public-api-752998171300.southamerica-west1.run.app/v1/benefits/redeem \
  -H "Authorization: Bearer $LOYBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "client_benefit_code": 887766
  }'
```

```json
// 200 OK
{
  "message": "Benefit redeemed successfully"
}
```

## Errores [#errores]

| Código | Cuándo                             |
| ------ | ---------------------------------- |
| `400`  | El beneficio ya fue usado.         |
| `404`  | El beneficio no existe.            |
| `422`  | Falta el campo, o no es un entero. |

<Callout type="info" title="El 400 es el caso a cubrir en la UI">
  Es lo que pasa cuando alguien intenta usar el mismo código dos veces. No es un
  error de tu integración: conviene mostrarle al cajero un mensaje claro de
  "este código ya se usó" en lugar de un error genérico.
</Callout>
