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

# createVirtualCard

> Initiates virtual card creation.

Initiates virtual card creation. Requires CREATE\_VIRTUALCARD scope.
@throws INVALID\_INPUT if:

* idempotency key is not provided
* spendLimit less than \$1
* lockDate is in the past
* spendLimit is not within card program limit
* offerId is defined and is in uuid format

When billingAddress or userAddressId is provided, the address is registered with the
card program before card issuance. If the issuer has not approved the address within
the server-side wait window (typically \~60s), this mutation returns an error with code
VC-0020 (PENDING\_APPROVAL) and extensions.addressId. Callers should retry the same
request using the returned addressId until the card is issued successfully.

```graphql theme={null}
mutation {
  createVirtualCard(
    input: CreateVirtualCardInput!
  ): VirtualCard
}
```

## Arguments

<ParamField body="input" type="CreateVirtualCardInput!" required>
  *No description provided in the schema yet.*
</ParamField>

## Returns

[`VirtualCard`](/api-reference/types/virtual-card) — VirtualCard represents a record of a virtual card generated by a user.
