POST
/
cards
curl --request POST \
  --url https://api.sandbox.sudo.cards/cards \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "customerId": "<string>",
  "fundingSourceId": "<string>",
  "type": "physical",
  "brand": "Verve",
  "number": "<string>",
  "currency": "NGN",
  "issuerCountry": "NGA",
  "status": "active",
  "metadata": "<string>",
  "spendingControls": {
    "allowedCategories": [
      "[]"
    ],
    "blockedCategories": [
      "[]"
    ],
    "channels": {
      "atm": true,
      "pos": true,
      "web": true,
      "mobile": true
    },
    "spendingLimits": [
      {
        "amount": 123,
        "interval": "daily"
      }
    ]
  },
  "bankCode": "<string>",
  "accountNumber": "<string>",
  "replacementFor": "<string>",
  "replacementReason": "lost",
  "debitAccountId": "<string>",
  "amount": 123,
  "sendPINSMS": false,
  "expirationDate": "<string>"
}'
"{}"

Authorizations

Authorization
string
header
required

Body

application/json
customerId
string
required

The customer _id.

type
enum<string>
default:
physical
required

The card type.

Available options:
physical,
virtual
currency
enum<string>
default:
NGN
required

The currency type.

Available options:
NGN,
USD
status
enum<string>
default:
active
required

The initial card status.

Available options:
active,
inactive
fundingSourceId
string

The funding source _id. Required if you wish to map card to an existing funding source.

brand
enum<string>

The card brand. Required if type is virtual.

Available options:
Verve,
MasterCard,
Visa
number
string

The card PAN (Verve) or Card ID (Visa). Required if type is physical.

issuerCountry
enum<string>
default:
NGA

3 Digits Issuer Country. NGA for Nigeria and USA for United States. Defaults to NGA.

Available options:
NGA,
USA
metadata
string

The metadata object to attach to the card. Stored in key-value pair

spendingControls
object

Card spending controls. Default usage limits will be applied if non is provided.

bankCode
string

The bank code of existing account. Required if you wish to map card to existing account.

accountNumber
string

The account number of existing account. Required if you wish to map card to existing account.

replacementFor
string

The _id of the current card you wish to replace. Required for card replacement.

replacementReason
enum<string>

The reason for replacement. Required for card replacement.

Available options:
lost,
stolen
debitAccountId
string

Debit account _id. Required for all virtual cards and giftcards.

amount
integer

Funding amount. Required for mastercard.

sendPINSMS
boolean
default:
false

Send default PIN to customer phone number via SMS.

expirationDate
string

Card expiry date. Applies to Visa cards only. Format MMM-YYYY example AUG-2025. All cards are subject to maximum of 3 years validity.

Response

200
application/json
200

The response is of type object.