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

# create_card

> Issue a virtual card for a cardholder, holding an exact amount in cents (2500 = $25.00).

Connect to `https://mcp.agentcard.sh/mcp` with your **organization credential** (`client_id` + `client_secret`, or the org access token).

## What it does

Issue a virtual card for a cardholder, holding an exact amount in cents (2500 = \$25.00). Default is one-time-use: the first approved charge spends it and the card closes itself. Pass type "multi\_use" for a reusable card that survives repeated charges until its balance is spent (or expires\_at passes). In sandbox this issues a test card (mock, never charged). If the cardholder is not ready, the error says exactly which gate to clear: kyc\_required (run start\_cardholder\_kyc), wallet\_funding\_required or deposit\_confirming (the user's wallet), payment\_method\_required, or org\_wallet\_funding\_required (your company wallet, with funds\_source "company\_flow").

## Inputs

| Field                        | Type                                   | Description                                                                                                                                                                                                                  |
| ---------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cardholder_id` *(required)* | string                                 | Which cardholder the card is for                                                                                                                                                                                             |
| `amount_cents` *(required)*  | number                                 | Exact amount in cents, minimum 100 (\$1.00)                                                                                                                                                                                  |
| `funds_source`               | string: `onramp_flow` · `company_flow` | onramp\_flow (default): the user's own wallet pays. company\_flow: your pooled company wallet pays.                                                                                                                          |
| `type`                       | string: `single_use` · `multi_use`     | single\_use (default): closes after the first approved charge. multi\_use: reusable until the balance is spent.                                                                                                              |
| `expires_at`                 | string                                 | Multi-use only: ISO-8601 expiry in the future, at most 365 days out. The card closes then and any unused balance is released.                                                                                                |
| `idempotency_key`            | string                                 | Stable key for THIS card intent (e.g. your order id). Always pass one with company\_flow: retries then attach to the in-flight funding instead of double-funding, and a funding\_in\_progress retry must reuse the same key. |

## Returns

| Field                  | Type   | Description                                                                                                                                                                                |
| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `message` *(required)* | string | Human-readable outcome.                                                                                                                                                                    |
| `status`               | string | "created", "funding\_in\_progress", or a readiness gate: kyc\_required \| wallet\_funding\_required \| deposit\_confirming \| payment\_method\_required \| org\_wallet\_funding\_required. |
| `cardId`               | string | Present when created.                                                                                                                                                                      |
| `last4`                | string | Present when created.                                                                                                                                                                      |
| `verificationUrl`      | string | Present on kyc\_required when a verification link exists.                                                                                                                                  |
| `retryAfterSeconds`    | number | Present on funding\_in\_progress / deposit\_confirming — retry after this many seconds.                                                                                                    |

## Example call

```json theme={null}
{
  "tool": "create_card",
  "arguments": {
    "cardholder_id": "\u2026",
    "amount_cents": "\u2026"
  }
}
```
