---
title: "Create a Card"
method: POST
path: "/api/v1/cards"
tags: ["Cards"]
---

# Create a Card

`POST /api/v1/cards`

## Request body

- CreateCardRequest — Request class for the Create Card REST endpoint
  - `cardType` 'Physical' | 'Virtual' | 'MasterVirtual', required — The form factor of the card.
  - `cardProduct` integer, required — The unique ID of the card product linked to the card.
  - `designId` string, nullable — The name of the card visual design.
  - `url` string, nullable — QR Code or delivery id
  - `customerReference` string, nullable — An external customer reference provided in the request.
  - `parentCard` string, nullable — Where the card is a secondary card, the public token of the primary card.
  - `cardHolder` CardHolder, required — Cardholder details.
    - `title` string, nullable — Title of the cardholder.
    - `firstName` string, required — First name of the cardholder.
    - `middleName` string, nullable — Middle name of cardholder
    - `lastName` string, required — Last name of the cardholder.
    - `dateOfBirth` string, required — Date of Birth of the cardholder. Format YYYY-MM-DD.
    - `mobile` string, nullable — Mobile number of cardholder.
    - `email` string, nullable — Email address of the cardholder.
  - `address` Address, required — Address.
    - `addressLine1` string, nullable — Address line 1.
    - `addressLine2` string, nullable — Address line 2.
    - `addressLine3` string, nullable — Address line 3.
    - `city` string, nullable — City.
    - `county` string, nullable — County.
    - `country` string, nullable — Country.
    - `postCode` string, nullable — Postcode.
  - `fulfilment` Address — Address.
    - `addressLine1` string, nullable — Address line 1.
    - `addressLine2` string, nullable — Address line 2.
    - `addressLine3` string, nullable — Address line 3.
    - `city` string, nullable — City.
    - `county` string, nullable — County.
    - `country` string, nullable — Country.
    - `postCode` string, nullable — Postcode.
  - `nameOnCard` string, nullable — Name embossed on card. This field is required for Physical cards.
  - `expiryDate` string, date-time, nullable — Optional Expiry Date. It will be embossed on the card. Format YYYY-MM.
  - `freetext1` string, nullable — Fulfilment additional text field
  - `freetext2` string, nullable — Fulfilment additional text field
  - `virtualCardImageDetails` VirtualCardImageDetails
    - `virtualCardImageId` string, nullable — The image ID for the virtual card.
    - `imageSize` integer — The image size of the virtual card as a multiple of 100%. For example, 1 is 100%, 2 is 200% etc.
  - `manufacturingDetails` ManufacturingDetails — Manufacturing details <b>optional</b> for physical card and <b>not required</b> for virtual cards and MVCs. Note: Field cannot be a null value in the API Explorer
    - `deliveryMethod` 'StandardDelivery' | 'RegisteredMail' | 'DirectDelivery' | 'CustomizedDelvMethod1' | 'CustomizedDelvMethod2' | 'CustomizedDelvMethod3' | 'CustomizedDelvMethod4' | 'CustomizedDelvMethod5', required — The delivery method for the physical card.
    - `carrierType` string, required — Carrier Product Design reference as used by the card printer.
    - `language` string, nullable — The language used on the card.
    - `thermalLine1` string, nullable — Free text field which can be used for transferring extra information to be printed on the card.
    - `thermalLine2` string, nullable — Free text field which can be used for transferring extra information to be printed on the card.
    - `embossLine4` string, nullable — Embossed card line 4. Actual maximum length will depend on the card design.
    - `vanityName` string, nullable — Can add an additional title to the card holder name (for example "Company Director").
    - `imageDetails` ImageDetails — Image details.
      - `imageId` string, required — Identifies the card manufacturer's image file that will be printed on the face of the card.
      - `logoFrontId` string, nullable — Identifies the card manufacturer's logo file that will be printed on the face of the card.
      - `logoBackId` string, nullable — Identifies the card manufacturer's logo file that will be printed on the back of the card, if supported.
  - `activateNow` boolean, nullable — If true, activates the card during card creation. Defaults to false for a physical card. Defaults to true for a virtual card.
  - `isSingleUse` boolean, nullable — Flag to check whether the card is for single use or not
  - `isNonReloadable` boolean, nullable — Flag to check whether the card is a reloadable one or not
  - `language3ds` string, nullable — Language3ds should be bcp-47 format.
  - `oobAppUrl` string, uri, nullable — 3DS OOBAppURL at card level.
  - `dynamicInterchange` DynamicInterchangeModel — Create card object for dynamic interchange
    - `feePercentage` number, double, nullable — The fee percentage

## Response `200`

Success

- CreateCardResponse — Response object from Create and Replace Card method
  - `publicToken` string, nullable — Public token of the newly created card.
  - `customerReference` string, nullable — Customer Reference (Account number)
  - `embossName` string, nullable — Embossed name of card
  - `maskedPan` string, nullable — Masked PAN
  - `startDate` string, nullable — Start Date (yyyy-MM-dd)
  - `expiryDate` string, nullable — Expiry Date (yyyy-MM-dd)

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Client Error
- `500` — Server Error

---

[API](https://skmtc.net/thredd/apis/core-cards.md) · [All operations](https://skmtc.net/thredd/apis/core-cards/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/thredd/core-cards/versions/841f62def5bf/schema)
