---
title: "Create a card under a specific user"
description: "Issue a new card for an existing user."
source: https://developers.qashio.com/v2/reference/post-public-v1-core-cards/
---

# Create a card under a specific user

`POST /public/v1/core/cards`

Requires a Bearer access token.

**Purpose.** Issue a new card for an existing user.

**Description.** Creates a virtual or physical card under the user profile you name, optionally with
an initial spend limit. The user profile must already exist — invite the user first with
[`POST /public/v1/core/user_profiles/invite`](#post-publicv1coreuser_profilesinvite) if they are not
yet in Qashio.

The card currency defaults to the company's currency. Exactly which card product is issued depends on
the card issuer configured for your company, so the returned card may carry issuer-specific
attributes.

**Input (body, `application/json`).**

| Field | Type | Description |
| --- | --- | --- |
| `user_profile_external_id` | string | The user the card is issued to, e.g. `UPxxxxxxxxxxxxxxxx`. Required |
| `card_type` | string | `VIRTUAL` or `PHYSICAL`. Required |
| `nickname` | string | Card name shown in Qashio |
| `spend_limit_period` | string | Period for the initial spend limit, e.g. `MONTHLY` |
| `spend_limit_max_amount` | integer | Maximum spend within that period |

```json
{
  "user_profile_external_id": "UPxxxxxxxxxxxxxxxx",
  "card_type": "VIRTUAL",
  "nickname": "Marketing — Ads",
  "spend_limit_period": "MONTHLY",
  "spend_limit_max_amount": 250
}
```

**Output.** `201` with `message: "Resource created successfully."` and `data.card` — the created card:
`{ id, nickname, card_number, card_type, status, display_status, user_name, user_email, company_name,
velocity_period, allow_atm, allow_replace_card, card_replaced, return_card }`.

**Errors.** `400` (card could not be created; the reason is in `errors[].message`), `401`,
`404` (user profile not found).

### Request body

```json
{
  "user_profile_external_id": "UPxxxxxxxxxxxxxxxx",
  "card_type": "VIRTUAL",
  "nickname": "Card Name 324",
  "spend_limit_period": "MONTHLY",
  "spend_limit_max_amount": 250
}
```

### Example request

```bash
curl -X POST 'https://api.qashio.com/public/v1/core/cards' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "user_profile_external_id": "UPxxxxxxxxxxxxxxxx",
    "card_type": "VIRTUAL",
    "nickname": "Marketing: Ads",
    "spend_limit_period": "MONTHLY",
    "spend_limit_max_amount": 250
  }'
```

### Example response (201)

```json
{
  "status_code": 201,
  "success": true,
  "message": "Resource created successfully.",
  "data": {
    "card": {
      "id": 12276,
      "user_name": "John Doe",
      "company_name": "Qashio 2",
      "user_email": "john.doe@example.com",
      "status": "inactive",
      "display_status": "inactive",
      "card_type": "VIRTUAL",
      "nickname": "Card Name 324",
      "card_number": "******",
      "allow_replace_card": true,
      "card_replaced": false,
      "velocity_period": "MONTHLY",
      "allow_atm": false,
      "return_card": "company_address",
      "shipping_card": "company_address",
      "terminated_at": "2026-08-06T07:30:44.941Z",
      "spend_restriction_type": "no_limit",
      "last_four": "4554",
      "limit_amount_notification": "250.00",
      "card_balance_running_low_notification": false,
      "allowed_countries_list": "sample",
      "allowed_countries_list_active": false,
      "foreign_entity": false,
      "atm_restricted_at": "2026-08-06T07:30:44.941Z",
      "issuer": "John Doe",
      "allowed_mccs_active": "false",
      "spend_limit_active": true,
      "atm_limit_active": false,
      "auto_top_up_amount": "1000.00",
      "auto_load_on_transaction_approval": false,
      "tokenization_status": "active",
      "account_type": "company_account",
      "account_id": 600,
      "currency": "EUR",
      "show_pool_balance_to_cardholder": false,
      "is_manager": "false",
      "is_account_manager": false,
      "is_dept_manager": "false",
      "can_edit_all_time_limit": false,
      "can_reset_limit": false,
      "reset_summary": "Limits reset on the 1st of each month",
      "issued_at": "2026-08-06T07:30:44.941Z",
      "first_activated_at": "2026-08-06T07:30:44.941Z",
      "external_id": "CAtdh2nbj5yqbejd",
      "replaced_by_card_external_id": "CAj2w5b3w9hoe0ga",
      "replaced_by_card_id": "CAj2w5b3w9hoe0ga",
      "card_usage_type": "MANUAL_CARD",
      "card_usage_type_amount": "0",
      "account_balance": "",
      "shipment_tracking": "1Z999AA10123456784",
      "atm_transactions_limit_active": "false",
      "transactions_limit_active": false,
      "transactions_limit": "20",
      "atm_limit": "2000.00",
      "department": "Finance",
      "location": "Dubai",
      "division": "Operations",
      "project": "Office Fit-out",
      "card_product": "virtual-standard",
      "shipping_address": "Dubai Internet City, Dubai, AE",
      "return_address": "Dubai Internet City, Dubai, AE",
      "card_template": "virtual-standard",
      "erp_bank_account": "160104",
      "step_up_auth_delegated_user_profile": "UPc7ws3qre31j5uw",
      "created_at": "2026-09-09T16:20:39.441+04:00",
      "shipping_details": {
        "method": "COURIER",
        "return_address": {},
        "shipping_address": {}
      },
      "wallets_status": {
        "apple_pay": false,
        "google_pay": false,
        "samsung_pay": false
      },
      "spend_limit": {
        "id": 199,
        "name": "spend_limit",
        "active": true,
        "description": "CPnsya5pgz5qjdhq",
        "min_amount": 0,
        "max_amount": 250,
        "currency": "EUR",
        "period": "MONTHLY",
        "limit_type": "PER_CARD",
        "frequency": "sample",
        "num_of_days": "sample",
        "remote_id": "295",
        "transaction_scope": "PURCHASES",
        "external_id": "ADVELI6hjpq97ab5fya5",
        "remaining_balance": "2500.00",
        "remaining_frequency": "sample",
        "remote_sync": "pendingsync",
        "consumed_limit": 0,
        "consumed_frequency": 0,
        "remote_data": {}
      },
      "atm_transactions_limit": {
        "max_amount": "5000.00"
      },
      "expense_categories": [
        {
          "id": null,
          "name": null,
          "label": null,
          "code": null,
          "erp_internal_id": null,
          "erp_code": null
        }
      ],
      "merchants": [
        {
          "id": null,
          "name": null,
          "label": null,
          "code": null,
          "erp_internal_id": null,
          "erp_code": null
        }
      ],
      "user_profile": {
        "department_name": "Finance",
        "first_name": "David Chen",
        "last_name": "Sara Ali",
        "company_name": "Qashio",
        "user_name": "John Doe",
        "system_role_name": "End User",
        "email": "john.doe@example.com",
        "user_email": "john.doe@example.com",
        "external_id": "UPc7ws3qre31j5uw",
        "user_id": 2711,
        "status": "active",
        "fullname": "John Doe",
        "employee_id": "",
        "department_id": 1692,
        "managing_departments": []
      },
      "merchant_groups": [
        {
          "id": null,
          "name": null,
          "label": null,
          "code": null,
          "erp_internal_id": null,
          "erp_code": null
        }
      ],
      "advanced_velocity_limits": [
        {
          "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
        }
      ],
      "balance_controls_check_time": "02:00",
      "balance_controls_tier": {
        "tier": "enterprise",
        "allows_one_time": true,
        "max_one_time_schedules": 10,
        "max_one_time_per_date": 1,
        "allows_multiple_days": true,
        "max_recurring_days": "30",
        "max_weekly_days": 7,
        "max_monthly_days": 10,
        "allows_per_day_amounts": true
      },
      "balance_control": {
        "smart_topup_enabled": false,
        "max_balance": "25000.00",
        "effective_max_balance": "25000.00",
        "recurring_enabled": false,
        "one_time_enabled": false,
        "recurring_schedules": [],
        "one_time_schedules": []
      }
    }
  },
  "meta": {
    "request_id": "3adb2d16090c7b3bdbde3b326a814b30",
    "timestamp": "2026-09-09T10:07:52.143Z"
  }
}
```

### Errors

- `401` Unauthorized - missing or invalid Bearer token
- `404` Not Found
