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

# Issue Virtual Card

> Provision a programmable virtual USD VISA card

Issue a new programmable virtual USD VISA card. The card creation fee (\$2.00) plus your initial funding amount is debited from your merchant USD vault.

### Headers

| Header | Type | Description |
| :- | :- | :- |
| `Authorization` | `string` | `Bearer <accessToken>` |
| `Content-Type` | `string` | `application/json` |

***

### Request Body

| Parameter | Type | Required | Description |
| :- | :- | :- | :- |
| `nameOnCard` | `string` | **Yes** | Cardholder name embossed on the virtual card (e.g., `Alex Morgan`). |
| `amount` | `number` | **Yes** | Initial card funding amount in USD (minimum `$1.00`). |
| `cardBrand` | `string` | No | Card brand. Only `VISA` is currently supported. Default is `VISA`. |
| `currency` | `string` | No | Card currency. Default is `USD`. |
| `colorTheme` | `string` | No | Visual theme name (e.g. `Midnight Black`). Default is `Midnight Black`. |
| `reference` | `string` | No | Custom merchant reference ID for idempotency and internal reconciliation. |
| `customer` | `object` | No | Cardholder customer profile (recommended for KYC compliance). |

#### Customer Object Properties

| Property | Type | Required | Description |
| :- | :- | :- | :- |
| `firstName` | `string` | **Yes** | Cardholder given name. |
| `lastName` | `string` | **Yes** | Cardholder surname. |
| `email` | `string` | **Yes** | Cardholder email address. |
| `phoneNumber` | `string` | **Yes** | Cardholder phone number. |
| `dialCode` | `string` | No | Country dialing code (e.g. `+234`, `+1`). Default `+234`. |
| `dateOfBirth` | `string` | No | Date of birth formatted as `YYYY-MM-DD`. |
| `line1` | `string` | No | Billing street address. |
| `city` | `string` | No | Billing city. |
| `state` | `string` | No | Billing state or province. |
| `postalCode` | `string` | No | ZIP or postal code. |
| `country` | `string` | No | ISO-3 country code (e.g. `US`, `NGA`). |

***

### Request Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.laikipay.com/v1/merchant/cards" \
    -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
    -H "Content-Type: application/json" \
    -d '{
      "nameOnCard": "Alex Morgan",
      "amount": 10.00,
      "cardBrand": "VISA",
      "currency": "USD",
      "colorTheme": "Midnight Black",
      "reference": "CRD_ORD_001",
      "customer": {
        "firstName": "Alex",
        "lastName": "Morgan",
        "email": "alex.morgan@example.com",
        "phoneNumber": "08012345678",
        "dialCode": "+234",
        "dateOfBirth": "1995-05-15",
        "line1": "100 Financial District Blvd",
        "city": "New York",
        "state": "NY",
        "postalCode": "10005",
        "country": "US"
      }
    }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.laikipay.com/v1/merchant/cards', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      nameOnCard: 'Alex Morgan',
      amount: 10.00,
      cardBrand: 'VISA',
      currency: 'USD',
      reference: 'CRD_ORD_001',
      customer: {
        firstName: 'Alex',
        lastName: 'Morgan',
        email: 'alex.morgan@example.com',
        phoneNumber: '08012345678',
        dialCode: '+234',
      },
    }),
  });

  const result = await response.json();
  ```
</CodeGroup>

***

### Response (`201 Created`)

```json theme={null}
{
  "status": "success",
  "data": {
    "message": "Virtual card successfully provisioned and ready for use.",
    "card": {
      "id": "crd_8f921ab0c1",
      "cardType": "VIRTUAL",
      "cardBrand": "VISA",
      "maskedPan": "411111******1111",
      "nameOnCard": "Alex Morgan",
      "balanceAmount": 10.0,
      "currency": "USD",
      "status": "ACTIVE",
      "createdStatus": "COMPLETED",
      "reference": "CRD_ORD_001",
      "billingAddress": {
        "street": "100 Financial District Blvd",
        "city": "New York",
        "state": "NY",
        "postalCode": "10005",
        "country": "US"
      },
      "colorTheme": "Midnight Black",
      "createdAt": "2026-10-12T07:05:00.000Z",
      "updatedAt": "2026-10-12T07:05:00.000Z"
    }
  },
  "timestamp": "2026-10-12T07:05:01.000Z",
  "path": "/api/v1/merchant/cards"
}
```

***

## Alternative: Issue Lite Virtual Card (`POST /cards/lite`)

For fast onboarding requiring only essential customer information (limits up to \$250.00 USD):

```bash cURL theme={null}
curl -X POST "https://api.laikipay.com/v1/merchant/cards/lite" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Content-Type: application/json" \
  -d '{
    "nameOnCard": "Jane Smith",
    "amount": 25.00,
    "customer": {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com",
      "phoneNumber": "08098765432",
      "dialCode": "+234"
    }
  }'
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.