---
title: "List cards"
description: "Retrieve the card inventory with its issuance state and which spend controls are active."
source: https://developers.qashio.com/v2/reference/get-public-v1-erp-cards/
---

# List cards

`GET /public/v1/erp/cards`

Requires a Bearer access token.

**Purpose.** Retrieve the card inventory with its issuance state and which spend controls are active.

**Description.** Returns a paginated list of cards, newest first, with the cardholder, the funding
account, the cost-allocation segments, and a set of boolean flags showing which control families are
switched on — purchase limits, transaction limits, country limits, merchant-category limits, ATM
withdrawal and low-balance alerts. The flags tell you *whether* a control is active; call the
single-card endpoint for the actual values.

Card numbers are always masked (`**** **** **** 1234`); the full PAN is never returned.

**Input (query).**

| Parameter | Type | Description |
| --- | --- | --- |
| `page` | integer | Page number, 1-based. Default `1` |
| `page_size` | integer | Records per page. Default `20` |
| `status` | string | `active`, `inactive`, `suspended`, `terminated`, `draft`, `cancelled` |
| `card_type` | string | `virtual` or `physical` |
| `account_type` | string | `reloadable` (one card per account) or `pool` (shared account) |
| `pool_account_id` | string | Cards funded by this account |
| `user_id` | string | Cards held by this user profile |
| `last4` | string | Exactly four digits |
| `issued_time_from` / `issued_time_to` | date | Issuance window, `YYYY-MM-DD`. Either may be sent alone |
| `created_time_from` / `created_time_to` | date | Creation window, `YYYY-MM-DD`. Either may be sent alone |

**Output.** Array of cards, plus `pagination`.

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | Card identifier (`CA…`) |
| `card_nickname` | string | Card name |
| `status` | string | `Active`, `Inactive`, `Suspended`, `Terminated`, `Draft`, `Cancelled` |
| `card_type` | string | `Virtual` or `Physical` |
| `masked_card_number` | string | `**** **** **** 1234` |
| `cardholder` | object | `{ name, email, employee_id }` |
| `company_name` | string | Company the card belongs to |
| `account_external_id` | string | Funding account identifier |
| `account_type` | string | `reloadable` or `pool` |
| `card_currency` | string | Card currency (ISO 4217) |
| `allowed_max_balance` | number | Maximum balance the card may hold |
| `topup_type` | string | How the card is funded |
| `float_management_enabled` | boolean | Whether float management applies |
| `card_replaced` | boolean | Whether this card replaced an earlier one |
| `purchase_limits_active` | boolean | A purchase spend limit is in force |
| `transaction_limits_active` | boolean | A per-transaction count limit is in force |
| `country_limits_active` | boolean | Country restrictions are in force |
| `category_limits_active` | boolean | Merchant-category restrictions are in force |
| `atm_withdrawal_allowed` | boolean | ATM withdrawals are permitted |
| `low_balance_notification_active` | boolean | Low-balance alerting is on |
| `low_balance_notification_amount` | number | Threshold that triggers the alert |
| `segments` | array | Standard cost allocation: `Location`, `Project`, `Division`, `Department` |
| `custom_segments` | array | Company-defined cost allocation |
| `issued_at`, `activated_at`, `terminated_at`, `created_at` | string | ISO 8601 timestamps |

**Errors.** `400` (unrecognised `account_type`, `last4` not four digits, inverted date range), `401`,
`403`, `404`.

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | no | Page number, 1-based. Default `1` |
| `page_size` | integer | no | Records per page. Default `20` |
| `status` | string | no | `active`, `inactive`, `suspended`, `terminated`, `draft`, `cancelled` |
| `card_type` | string | no | `virtual` or `physical` |
| `account_type` | string | no | `reloadable` (one card per account) or `pool` (shared account) |
| `pool_account_id` | string | no | Cards funded by this account |
| `user_id` | string | no | Cards held by this user profile |
| `last4` | string | no | Exactly four digits |
| `issued_time_from` | date | no | Issuance window, `YYYY-MM-DD`. Either may be sent alone |
| `issued_time_to` | date | no | Issuance window, `YYYY-MM-DD`. Either may be sent alone |
| `created_time_from` | date | no | Creation window, `YYYY-MM-DD`. Either may be sent alone |
| `created_time_to` | date | no | Creation window, `YYYY-MM-DD`. Either may be sent alone |

### Example request

```bash
curl -X GET 'https://api.qashio.com/public/v1/erp/cards?page=1&page_size=20' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>'
```

### Example response (200)

```json
{
  "status_code": 200,
  "success": true,
  "data": [
    {
      "id": "CAj2w5b3w9hoe0ga",
      "card_nickname": "Qashio Card - 1",
      "company_name": "Qashio",
      "status": "Draft",
      "card_type": "Virtual",
      "masked_card_number": "************1234",
      "account_external_id": "AChhak778j2251b0",
      "account_type": "company_account",
      "card_currency": "AED",
      "allowed_max_balance": "10000.00",
      "float_management_enabled": false,
      "topup_type": "manual",
      "card_replaced": false,
      "transaction_limits_active": false,
      "purchase_limits_active": false,
      "country_limits_active": false,
      "category_limits_active": false,
      "atm_withdrawal_allowed": true,
      "low_balance_notification_active": false,
      "low_balance_notification_amount": "500.00",
      "terminated_at": "2026-08-06T07:30:44.941Z",
      "activated_at": "2026-08-06T07:30:44.941Z",
      "issued_at": "2026-08-06T07:30:44.941Z",
      "created_at": "2026-09-09T09:31:49.152Z",
      "cardholder": {
        "name": "John Doe",
        "email": "john.doe@example.com",
        "employee_id": ""
      },
      "segments": [
        {
          "id": null,
          "name": null,
          "label": null,
          "code": null,
          "erp_internal_id": null,
          "erp_code": null
        }
      ],
      "custom_segments": [
        {
          "id": null,
          "name": null,
          "label": null,
          "code": null,
          "erp_internal_id": null,
          "erp_code": null
        }
      ]
    }
  ],
  "meta": {
    "request_id": "3adb2d16090c7b3bdbde3b326a814b30",
    "timestamp": "2026-09-09T10:07:52.143Z"
  },
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total_pages": 1,
    "total_records": 7,
    "has_next": false,
    "has_previous": false
  }
}
```

### Errors

- `401` Unauthorized - missing or invalid Bearer token
