> ## 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.

# Solicitar cambio de límite de tarjeta virtual

`requestVirtualCardLimitChange`

Envía una solicitud de aprobación de un gerente para cambiar el límite de gasto de una tarjeta virtual. Cuando se aprueba, Fluz actualiza el límite de la tarjeta.

## Scopes

| Acción             | Scope                               |
| ------------------ | ----------------------------------- |
| Crear solicitud    | `REQUEST_VIRTUAL_CARD_LIMIT_CHANGE` |
| Listar solicitudes | `LIST_APPROVALS`                    |
| Aprobar o rechazar | `MANAGE_APPROVALS`                  |

## Identificadores de Webhook

| Campo          | Valor          |
| -------------- | -------------- |
| `approvalType` | `VIRTUAL_CARD` |
| `approvalCode` | `600002`       |

Eventos de webhook: `APPROVAL_CREATE`, `APPROVAL_APPROVE`, `APPROVAL_DECLINE` y `APPROVAL_HANDLER_ERROR` en caso de fallo de ejecución.

## Crear una solicitud

### RequestVirtualCardLimitChangeInput

| Campo           | Tipo                          | Requerido | Descripción                                                              |
| --------------- | ----------------------------- | --------- | ------------------------------------------------------------------------ |
| `virtualCardId` | UUID                          | Sí        | ID de la tarjeta virtual a actualizar                                    |
| `spendLimit`    | Float                         | Sí        | Nuevo límite de gasto. Debe ser mayor que cero                           |
| `limitDuration` | VirtualCardSpendLimitDuration | Sí        | Duración del límite: `DAILY`, `WEEKLY`, `MONTHLY`, `ANNUAL` o `LIFETIME` |

### Mutación de ejemplo

```graphql theme={null}
mutation {
  requestVirtualCardLimitChange(
    input: {
      virtualCardId: "07df5653-43a8-4532-9881-3ab5857bbe11"
      spendLimit: 500.00
      limitDuration: MONTHLY
    }
  ) {
    success
    messageId
    error {
      code
      message
    }
  }
}
```

### Respuesta de ejemplo

```json theme={null}
{
  "data": {
    "requestVirtualCardLimitChange": {
      "success": true,
      "messageId": "1234567890"
    }
  }
}
```

## Aprobar una solicitud

Llama a `approveApprovalRequest` con el `approvalId`. Requiere `MANAGE_APPROVALS`.

```graphql theme={null}
mutation {
  approveApprovalRequest(approvalId: "07df5653-43a8-4532-9881-3ab5857bbe12") {
    success
    approvalId
    action
  }
}
```

Al aprobar, Fluz actualiza el límite de gasto de la tarjeta virtual.

## Rechazar una solicitud

Llama a `declineApprovalRequest` con el `approvalId`. Requiere `MANAGE_APPROVALS`.

```graphql theme={null}
mutation {
  declineApprovalRequest(approvalId: "07df5653-43a8-4532-9881-3ab5857bbe12") {
    success
    approvalId
    action
  }
}
```

No se aplica ningún cambio de límite cuando una solicitud es rechazada.
