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

# Create Card

> Create a virtual card for a customer with optional initial funding.

## Overview

Create a USD virtual card for a customer. This endpoint allows you to issue a new virtual card with a specified currency, brand, and initial funding amount. A wallet\_id and amount can be optionally specified to change the default currency funding wallet and initial amount in the card respectively. The card will be linked to the customer's account and can be used for online and in-store purchases.


## OpenAPI

````yaml POST /v1/cards/create
openapi: 3.1.0
info:
  title: API
  version: 1.0.0
  description: >-
    Platnova's Business API allows businesses to issue virtual accounts and
    cards to their employees, vendors, or retail customers. It allows businesses
    to streamline the process of issuing cards, manage spending, and track
    transactions. The API documentation provides information on how to integrate
    our virtual card issuing system into a business's existing systems and
    outlines the features and functionalities of the API, including card and
    account creation, management, and reporting. It also provides technical
    specifications, such as API requests, responses, and authentication
    processes.


    The API documentation is intended for developers and IT teams to use in
    order to effectively implement Platnova solutions into their business
    processes.


    # Authentication/Authorization


    To access any of the resources on the `{BaseUrl}/v1/`, the client has to
    pass pre-defined headers for authentication and authorization.


    The API is secure and only authorized clients can consume the service. There
    are API keys assigned to every business and JWT tokens assigned to every
    account for authentication/authorization.


    ## Bearer Token


    Requests may accept jwt tokens as below.


    ``` json

    Authorization: Bearer <jwt token>

     ```

    ## API Key


    Requests may acccept an api key either in the request headers or as a query
    parameter. Some requests cannot be authorized using an API key.


    ``` json

    X-API-KEY: <api key>

     ```

    OR


    ``` json

    ?api-key=<api key>

     ```

    # Base URL


    [https://sandbox.api.platnova.co](https://sandbox.api.platnova.co)


    # Errors


    Unauthorized API key


    ``` json

    {
        "status": false,
        "data": {},
        "error": [],
        "message": "unauthorized access"
    }

     ```

    Permission Denied


    ``` json

    {
        "status": false,
        "data": {},
        "error": [],
        "message": "unauthorized access: permission denied"
    }

     ```
servers:
  - url: https://api.platnova.com
    description: Production server
  - url: https://sandbox.api.platnova.co
    description: Development server
security:
  - apiKeyAuth: []
tags:
  - name: Customer
    description: Create and manage customers
  - name: Virtual Account
    description: Create and manage virtual accounts
  - name: Card
    description: Create and manage cards
  - name: Wallet
    description: List and manage wallets
  - name: Payment
    description: Send and verify payments
  - name: Transaction
    description: List transactions and generate receipts
  - name: Checkout
    description: Create and retrieve checkout sessions
  - name: Payment Link
    description: Create and manage payment links
  - name: Invoice
    description: Create and manage invoices
paths:
  /v1/cards/create:
    post:
      tags:
        - Card
      summary: Create card
      description: Create a virtual card for a customer with optional initial funding.
      operationId: createCard
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCardRequest'
            example:
              customer_id: 43a2b75e-5c59-429e-872a-2a54c7b17e34
              currency: ngn
              brand: mastercard
              amount: 15000
              wallet_id: 43a2b75e-5c59-429e-872a-2a54c7b17e37
      responses:
        '200':
          headers:
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
              example: 'true'
            Access-Control-Allow-Headers:
              schema:
                type: string
              example: >-
                Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token,
                Authorization, accept, origin, Cache-Control, X-Requested-With,
                Api-Version, Platform
            Access-Control-Allow-Methods:
              schema:
                type: string
              example: POST, OPTIONS, GET, PUT, PATCH, DELETE
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            Content-Type:
              schema:
                type: string
              example: application/json; charset=utf-8
            X-Ratelimit-Limit:
              schema:
                type: integer
              example: '4'
            X-Ratelimit-Remaining:
              schema:
                type: integer
              example: '3'
            X-Ratelimit-Reset:
              schema:
                type: integer
              example: '1753190676'
            Date:
              schema:
                type: string
              example: Tue, 22 Jul 2025 13:23:41 GMT
            Content-Length:
              schema:
                type: integer
              example: '321'
          description: 200 - Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  data:
                    type: object
                    properties:
                      customer:
                        type: object
                        properties:
                          id:
                            type: string
                          first_name:
                            type: string
                          last_name:
                            type: string
                          email:
                            type: string
                            format: email
                      card_id:
                        type: string
                      card_status:
                        type: string
                      card_brand:
                        type: string
                      card_currency:
                        type: string
                      amount_debited:
                        type: number
                  error:
                    type: array
                    items: {}
                  message:
                    type: string
              example:
                status: true
                data:
                  customer:
                    id: 43a2b75e-5c59-429e-872a-2a54c7b17e34
                    first_name: John
                    last_name: Doe
                    email: johndoe03@email.com
                  card_id: 18ee492a-617c-4878-958a-2ee08dc20ff4
                  card_status: processing
                  card_brand: mastercard
                  card_currency: ngn
                error: []
                message: operation was successful
        '400':
          headers:
            Access-Control-Allow-Credentials:
              schema:
                type: boolean
              example: 'true'
            Access-Control-Allow-Headers:
              schema:
                type: string
              example: >-
                Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token,
                Authorization, accept, origin, Cache-Control, X-Requested-With,
                Api-Version, Platform
            Access-Control-Allow-Methods:
              schema:
                type: string
              example: POST, OPTIONS, GET, PUT, PATCH, DELETE
            Access-Control-Allow-Origin:
              schema:
                type: string
              example: '*'
            Content-Type:
              schema:
                type: string
              example: application/json; charset=utf-8
            X-Ratelimit-Limit:
              schema:
                type: integer
              example: '4'
            X-Ratelimit-Remaining:
              schema:
                type: integer
              example: '2'
            X-Ratelimit-Reset:
              schema:
                type: integer
              example: '1753190676'
            Date:
              schema:
                type: string
              example: Tue, 22 Jul 2025 13:24:14 GMT
            Content-Length:
              schema:
                type: integer
              example: '91'
          description: 400 - Card limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: boolean
                  data:
                    type: object
                  error:
                    type: array
                    items: {}
                  message:
                    type: string
              example:
                status: false
                data: {}
                error: []
                message: only 1 mastercard card allowed in a month
components:
  schemas:
    CreateCardRequest:
      type: object
      required:
        - customer_id
      properties:
        customer_id:
          type: string
          description: Customer ID
        currency:
          type: string
          description: Card currency
        brand:
          type: string
          description: Card brand (e.g. mastercard)
        amount:
          type: integer
          description: Initial funding amount
        wallet_id:
          type: string
          description: Wallet ID to fund from
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication.

````