🚀 VaultsPay API v1 is live. See what's new →
Payment CardsCreate Card

Create Card

A SaaS app must have at least one card tier configured by its Admin. After that:

  • For virtual cards, set cardType = "VIRTUAL" and the card is created automatically.
  • For physical cards, include a delivery address object.
POST{baseUrl}/pcs/api/v1/cards

Payload

AttributeTypeRequiredDescription
cardTierIdIntegerYesID of the card tier to link the card.
customerIdIntegerYesID of the customer for whom the card is created.
addressObjectConditionalDelivery address object. Required for PHYSICAL cards.
address.countryString (ISO Alpha-3)ConditionalCountry code (e.g., PAK).
address.stateStringConditionalState/Province.
address.cityStringConditionalCity.
address.addressLine1StringConditionalAddress line 1.
address.addressLine2StringNoAddress line 2 (optional).
address.typeEnumConditionale.g., MAILING.
address.postalCodeStringConditionalPostal/ZIP code.
address.longitudeStringNoLongitude (decimal).
address.latitudeStringNoLatitude (decimal).
cardTypeEnumYesPHYSICAL or VIRTUAL.
accountIdIntegerYesAccount ID to link the card.
cardHolderNameStringYesName to emboss (must be from Embossing Name Options).
Request Example
{
  "cardTierId": 67,
  "customerId": 799,
  "address": {
    "country": "PAK",
    "state": "Punjab",
    "city": "RWP",
    "addressLine1": "line 1 address",
    "type": "MAILING",
    "postalCode": "44000",
    "longitude": "127.45",
    "latitude": "716.70"
  },
  "cardType": "PHYSICAL",
  "accountId": 360,
  "cardHolderName": "Test Card Owner"
}

Response

FieldTypeDescription
idIntegerCreated card ID.
userIdIntegerOwner user ID.
cardIssuerConfigIdIntegerCard issuer config ID.
thirdPartyConfigSlugStringIssuer slug/identifier (if any).
userProfileObjectBasic profile of the cardholder.
_3dSecureObject3DS configuration/details (if available).
accountObjectLinked account details.
cardTierObjectCard tier flags (e.g., fraud rules, limits).
activationObjectActivation flow/status (if present).
manufacturingObjectManufacturing details (physical cards).
deliveryObjectDelivery details (physical cards).
paymentCardTypeEnume.g., DEBIT.
cardNetworkEnume.g., MASTERCARD.
cardTypeEnumPHYSICAL or VIRTUAL.
billingCurrencyStringBilling currency code (if present).
embossNameStringEmboss/holder name.
tokenFlagsStringToken flags bitmask.
pinSetBooleanWhether PIN is set.
statusEnumInitial status is ISSUANCE_REQUESTED.
cardTextStringHuman-readable action text (e.g., “Waiting for Approval…“).
cardCategoryEnume.g., STANDARD.
consumerTypeEnume.g., CONSUMER.
maxPurchaseLimitNumberMax purchase limit.
statusReasonStringReason for current status.
apiCallUniqueIdentifierStringAPI-call unique trace ID (if present).
cardHolderNameStringCardholder full name.
cardTokensArrayLinked tokens (virtual/tokenized services).
processedAtThirdPartyBooleanWhether the card was processed at third party.
createdAt / updatedAtStringTimestamps (ISO 8601).
200 — SUCCESS
{
  "data": {
    "id": 1079,
    "userId": 5,
    "userProfile": {
      "id": 1117,
      "pronounTitle": "Mr",
      "firstName": "John",
      "lastName": "Mock-Doe",
      "email": "default.user@vaultspay.ae",
      "countryCode": "971",
      "phone": "34343435",
      "language": "ENGLISH"
    },
    "account": {
      "id": 1281,
      "accountId": 10,
      "userId": 5,
      "accountType": "DIGITAL",
      "currencyCode": "AED",
      "accountTitle": "DEFAULT USER DIGITAL AED",
      "accountNumber": "1000648060000040",
      "iban": "AE680961000648060000040"
    },
    "cardTier": { "id": 1, "enableFraudRules": false, "enableLimits": true },
    "paymentCardType": "DEBIT",
    "cardNetwork": "MASTERCARD",
    "cardType": "VIRTUAL",
    "embossName": "awais test",
    "tokenFlags": "00010000000000000000001100010000",
    "pinSet": true,
    "status": "ISSUANCE_REQUESTED",
    "cardText": "Waiting for Approval…",
    "maxPurchaseLimit": 100,
    "cardCategory": "STANDARD",
    "consumerType": "CONSUMER",
    "processedAtThirdParty": false,
    "createdAt": "2025-07-04T05:08:32.654+00:00",
    "updatedAt": "2025-07-04T05:08:32.654+00:00"
  }
}