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

# Request Virtual Card Limit Change

`requestVirtualCardLimitChange`

Submit a manager approval request to change a virtual card spend limit. When approved, Fluz updates the card limit.

## Scopes

| Action             | Scope                               |
| ------------------ | ----------------------------------- |
| Create request     | `REQUEST_VIRTUAL_CARD_LIMIT_CHANGE` |
| List requests      | `LIST_APPROVALS`                    |
| Approve or decline | `MANAGE_APPROVALS`                  |

## Webhook Identifiers

| Field          | Value          |
| -------------- | -------------- |
| `approvalType` | `VIRTUAL_CARD` |
| `approvalCode` | `600002`       |

Webhook events: `APPROVAL_CREATE`, `APPROVAL_APPROVE`, `APPROVAL_DECLINE`, and `APPROVAL_HANDLER_ERROR` on execution failure.

## Create a Request

### RequestVirtualCardLimitChangeInput

| Field           | Type                          | Required | Description                                                           |
| --------------- | ----------------------------- | -------- | --------------------------------------------------------------------- |
| `virtualCardId` | UUID                          | Yes      | ID of the virtual card to update                                      |
| `spendLimit`    | Float                         | Yes      | New spend limit. Must be greater than zero                            |
| `limitDuration` | VirtualCardSpendLimitDuration | Yes      | Limit duration: `DAILY`, `WEEKLY`, `MONTHLY`, `ANNUAL`, or `LIFETIME` |

### Sample Mutation

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

### Sample Response

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

## Approve a Request

Call `approveApprovalRequest` with the `approvalId`. Requires `MANAGE_APPROVALS`.

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

On approval, Fluz updates the virtual card spend limit.

## Decline a Request

Call `declineApprovalRequest` with the `approvalId`. Requires `MANAGE_APPROVALS`.

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

No limit change is applied when a request is declined.
