# Retrieve a spending card

`GET /issuing/{accountID}/cards/{issuedCardID}`

API version: `v2026.10.00`. Send `X-Moov-Version: v2026.10.00` to get the behavior described here.

> AI agents: search and read all Moov docs with the docs MCP server at https://docs.moov.io/mcp (no API key). Setup: https://docs.moov.io/guides/developer-tools/mcp-ai/docs-mcp/index.md

Retrieve a single issued card associated with a Moov account.

To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) 
you'll need to specify the `/accounts/{accountID}/issued-cards.read` scope.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Moov-Version` | header | string |  | Set this header to v2026.10.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, the earliest supported version, which may not match the behavior documented here. An unrecognized well-formed version uses the latest supported version that is not newer than the requested version, when one exists. For example, `v2026.08.00` uses `v2026.07.00`. A malformed value, such as `2022`, returns a `404` response. Values: `v2026.10.00`. |
| `accountID` | path | string | Yes | The Moov business account for which the card was issued. |
| `issuedCardID` | path | string | Yes |  |

## Response 200

The request completed successfully.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `issuedCardID` | string | Yes |  |
| `brand` | string | Yes | The card brand. Values: `American Express`, `Discover`, `Mastercard`, `Visa`, `Unknown`. |
| `lastFourCardNumber` | string | Yes |  |
| `expiration` | object | Yes | The expiration date of the card or token. |
| `expiration.month` | string | Yes | Two-digit month the card expires. |
| `expiration.year` | string | Yes | Two-digit year the card expires. |
| `fundingWalletID` | string | Yes | Unique identifier for the wallet funding the card. |
| `authorizedUserAccountID` | string |  | Identifier for the account of the card's authorized user. |
| `nickname` | string |  | An optional descriptive name for the card. |
| `metadata` | object |  | Free-form key-value pair list. Useful for storing information that is not captured elsewhere. |
| `billingAddress` | object |  | Billing address associated with the card. |
| `billingAddress.addressLine1` | string | Yes |  |
| `billingAddress.addressLine2` | string |  |  |
| `billingAddress.city` | string | Yes |  |
| `billingAddress.stateOrProvince` | string | Yes |  |
| `billingAddress.postalCode` | string | Yes |  |
| `billingAddress.country` | string | Yes |  |
| `state` | string | Yes | The `state` represents the operational status of an issued card. Authorizations can only be approved while the card is `active`: - `active`: The card is operational and authorizations can be approved. - `frozen`: The card is temporarily suspended and authorizations cannot be approved. Set the state back to `active` to reactivate it. A card can move between `frozen` and `active` as often as needed. - `closed`: The card is permanently deactivated. A card is closed by request or when it expires, and cannot be reopened. Values: `active`, `frozen`, `closed`. |
| `formFactor` | string | Yes | Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card. Values: `virtual`. |
| `controls` | object |  | Spend controls applied to an issued card, including velocity runtime state. |
| `controls.singleUse` | boolean |  | Indicates if the card is single-use. If true, the card closes after the first authorization. |
| `controls.velocityLimits` | array of object |  | The spending limits per time interval, including current runtime state. |
| `controls.merchantCategoryRestrictions` | object |  | Restricts card usage by merchant category. When not set, all categories are allowed. |
| `controls.merchantRestrictions` | object |  | Restricts card usage to specific merchants, independent of merchant category. |
| `controls.allowedSchedule` | object, nullable |  | Limits card usage to specific days and times. |
| `controls.expiresOn` | string (date-time), nullable |  | A spend cutoff date and time. When set, all authorizations after this datetime are declined regardless of other controls. |
| `createdOn` | string (date-time) | Yes |  |
| `updatedOn` | string (date-time) | Yes |  |

## Errors

| Status | Meaning |
| --- | --- |
| 401 | The request contained missing or expired authentication. |
| 403 | The user is not authorized to make the request. |
| 404 | The requested resource was not found. |
| 429 | Request was refused due to rate limiting. |
| 500 | The request failed due to an unexpected error. |
| 504 | The request failed because a downstream service failed to respond. |

## Examples

### cURL

```bash
curl -X GET "https://api.moov.io/issuing/{accountID}/cards/{issuedCardID}" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.10.00"
```

### Typescript (SDK)

```typescript
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.cardIssuing.get({
    accountID: "4fde8da4-b6c5-4379-82a2-4ff6a742e41a",
    issuedCardID: "d04885c9-ea6b-43a7-9186-63d9fbd57716",
  });

  console.log(result);
}

run();
```

Full reference with SDK examples in every language: https://docs.moov.io/api/v2026.10.00/money-movement/issuing/get/
