Card
post/cards

Request

Headers

Accept-Versionstring required

Specifies the API version to use for this request.

Request body

cardType'Virtual' | 'Physical' required

Specifies the type of card to create. Possible values:

physical: Select if you plan to use this card to create a physical form later.

virtual: Select if the card will remain digital-only.

Note: Selecting physical does not immediately produce a physical card; it must be requested separately via the shipping endpoint. Once set to virtual, the card type cannot be changed to physical. This choice is final and determines future options.

spendLimitnumber float

Sets the maximum spending limit for this card at the time of creation by allocating funds from the availableToAllocate amount in the master account balance.

Note: Only relevant for clients using the standard authorization model. Clients in this model must use spendLimit to define and monitor each card’s maximum spending capacity.

customerType'Business' | 'Consumer' required

Specifies whether the cardholder is an individual or a business. Possible values:

Business: For corporate customers, aligned with Commercial BIN products.

Consumer : For personal customers, aligned with Retail BIN products.

expiryDatestring date nullable

Specifies the expiry date of the card in the format YYYY-MM-DD. This must be at least 1 month from the date of creation. If not specified, the expiry date defaults to 3 years from the creation date.

preferredCardNamestring required

The name to be printed on the physical card, displayed in uppercase. Allowed characters: letters (A-Z, a-z), digits (0-9), non-English letters (äöüÄÖÜ), space, and / - ^ . apostrophe and right parenthesis.

secondaryCardNamestring

The name to be printed on the physical card, displayed in uppercase. Unsupported characters: ;:!?<>~\%^@{}|[]”_.

Note: If you wish to print a physical card with the secondaryCardName, please communicate with your relationship manager. This is an additional feature that must be activated during the card design approval process.

cardDesignstring uuid

The ID of the card design artwork approved by Visa. You can retrieve this ID using the GET /card-design/ endpoint.

programType'commercial' | 'retail'

The card’s program type. Valid values:

commercial: business/commercial spend.

retail: retail/consumer use.

This, together with scheme and the cardholder’s country, determines which BIN range the card is issued from and its interchange category.

When to pass them: For ARP-enabled clients, both programType and scheme are required on every create-card request. Omitting either returns a 400 validation error. For non-ARP businesses, both fields are optional and ignored — the card is issued on the existing BIN exactly as today, with no change in behavior. Simple rule: if you’re on ARP, always send both programType and scheme; if you’re not, you can leave them out.

scheme'visa'

The card network the card is issued on. Valid values:

visa: Visa network.

When to pass them: For ARP-enabled clients, both programType and scheme are required on every create-card request. Omitting either returns a 400 validation error. For non-ARP businesses, both fields are optional and ignored — the card is issued on the existing BIN exactly as today, with no change in behavior. Simple rule: if you’re on ARP, always send both programType and scheme; if you’re not, you can leave them out.

Example request

{
  "kyc": {
    "dob": "1990-08-08",
    "nationality": "HKG",
    "residentialAddress": {
      "country": "HKG"
    }
  },
  "expiryDate": "2025-08-08"
}

Response

Successfully created a card

idstring required

Changes

    • breaking

      removed subschema #1 subschema #2 from the request property oneOf list

    • breaking

      added subschema #1 subschema #2 to the response body oneOf list for the response status

    • breaking

      added subschema #12 subschema #13 subschema #14 to the response body oneOf list for the response status

    • breaking

      the response's body type changed from object to no type for status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added subschema #1: Consumer subschema #2: Business subschema #3: Business — sub-client to the request property oneOf list

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status