> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Canjear tarjeta de regalo de Fluz

La mutación `redeemFluzGiftCard` te permite canjear una tarjeta de regalo de Fluz a la cuenta del usuario autenticado usando el código de la tarjeta de regalo.

Un canje exitoso abona el **saldo de tarjeta de regalo** del usuario (`giftCardCashBalance`).

Esta mutación requiere el alcance `MAKE_DEPOSIT`.

***

### Argumentos

* **`input`** (`RedeemFluzGiftCardInput!`): El objeto de entrada que contiene la clave de idempotencia y el código de la tarjeta de regalo.

***

### Campos de RedeemFluzGiftCardInput

| Campo            | Tipo      | Descripción                                                                                               | Requerido |
| ---------------- | --------- | --------------------------------------------------------------------------------------------------------- | --------- |
| `idempotencyKey` | `UUID!`   | Clave única generada por el cliente para asegurar que la solicitud se procese solo una vez.               | Sí        |
| `code`           | `String!` | El código de la tarjeta de regalo de Fluz. Los espacios al inicio y al final se recortan automáticamente. | Sí        |

***

### Respuesta

Devuelve un `DepositCashBalanceResponse`, que incluye:

* **`cashBalanceDeposits`** — Registros de depósito creados para este canje
* **`balances`** — Saldos del usuario actualizados después del canje

> El valor canjeado se abona en `balances.giftCardCashBalance` (no en `cashBalance`).

***

### Mutación de ejemplo

```graphql theme={null}
mutation RedeemGC($input: RedeemFluzGiftCardInput!) {
  redeemFluzGiftCard(input: $input) {
    cashBalanceDeposits {
      cashBalanceDepositId
      depositDisplayId
      depositAmount
      depositFee
      status
      cashBalanceDepositType
      transactionDate
      clearedDate
      cashBalanceSettlements {
        cashBalanceSettlementId
        availabilityType
        status
      }
    }
    balances {
      cashBalance {
        availableBalance
        totalBalance
        pendingBalance
        lifetimeBalance
      }
      giftCardCashBalance {
        availableBalance
        totalBalance
        lifetimeBalance
      }
      rewardsBalance {
        availableBalance
        totalBalance
        lifetimeBalance
      }
    }
  }
}
```

***

### Variables

```json theme={null}
{
  "input": {
    "idempotencyKey": "ee940ccc-2d24-4e1f-8c81-1a3a8b59fa01",
    "code": "FLUZ-GC-CODE-EXAMPLE"
  }
}
```

***

### Ejemplo cURL

```bash theme={null}
curl -X POST \
  https://transactional-graph-service.fluzapp.com/api/v1/graphql \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_USER_ACCESS_TOKEN' \
  -d '{
    "query": "mutation RedeemGC($input: RedeemFluzGiftCardInput!) { redeemFluzGiftCard(input: $input) { cashBalanceDeposits { cashBalanceDepositId depositDisplayId depositAmount depositFee status cashBalanceDepositType transactionDate clearedDate cashBalanceSettlements { cashBalanceSettlementId availabilityType status } } balances { cashBalance { availableBalance totalBalance pendingBalance lifetimeBalance } giftCardCashBalance { availableBalance totalBalance lifetimeBalance } rewardsBalance { availableBalance totalBalance lifetimeBalance } } } }",
    "variables": {
      "input": {
        "idempotencyKey": "ee940ccc-2d24-4e1f-8c81-1a3a8b59fa01",
        "code": "FLUZ-GC-CODE-EXAMPLE"
      }
    }
  }'
```

***

### Comportamiento

* **Destino del saldo** — Los fondos se abonan en `giftCardCashBalance`.
* **Idempotencia** — Las solicitudes duplicadas con el mismo `idempotencyKey` se rechazan mientras están en curso.
* **Manejo de espacios** — Los espacios al inicio y al final en `code` se recortan automáticamente.
* **Comisiones** — Cualquier comisión de activación se refleja en `depositFee`.
* **Liquidación** — Los canjes son **instantáneos** (`INSTANT`, `AVAILABLE`).

***

### Errores

| Código     | Descripción                                                      |
| ---------- | ---------------------------------------------------------------- |
| `ARG-XXXX` | `idempotencyKey` o `code` faltantes o inválidos.                 |
| `GC-0003`  | Tarjeta de regalo inválida, inactiva o ya canjeada.              |
| `G-0409`   | Solicitud duplicada en progreso para el mismo `idempotencyKey`.  |
| `G-0004`   | Falla general (por ejemplo, acceso a la función, error interno). |
