Skip to main content
POST
Issue a virtual card

Authorizations

X-Numero-Api-Key
string
header
required

Your business API key (live_key_...). Issued on approval; managed in Dashboard β†’ Settings β†’ Developer.

X-Numero-Signature
string
header
required

Base64(HMAC-SHA256(publicApiKey, input)) over the raw request body (POST) or canonicalized query string (signed GET). Also send X-Numero-Signature-Version: v2. Required on money-movement / state-changing endpoints (marked πŸ”’).

The HMAC key is your Public Key as raw UTF-8 bytes β€” a SECRET despite the name, and a different value from the X-Numero-Api-Key authentication header. Signing with the API key will never produce a valid signature.

Body

application/json
productCode
string
required

Card product code (drives currency + card type). Discover available products via GET /business/card/products.

Example:

"USD_VIRTUAL"

firstName
string
required
lastName
string
required
capability
enum<string> | null

Card type. Every card is a wallet-enabled USD card, so this is optional β€” omit it, or send APPLE_PAY or GOOGLE_PAY to issue a wallet-enabled USD card the cardholder can add to Apple/Google Wallet. Numero routes to an issuer that supports it.

Available options:
USD,
APPLE_PAY,
GOOGLE_PAY,
null
Example:

"APPLE_PAY"

initialBalance
number

USD loaded onto the card at issue (debited from your USD card wallet).

Example:

5

brand
string | null
Example:

"visa"

label
string | null

Friendly card name.

Example:

"Ads spend"

email
string | null
phone
string | null
dateOfBirth
string<date> | null
address1
string | null
city
string | null
state
string | null
zipcode
string | null
country
string | null
Example:

"NG"

idType
string | null
Example:

"PASSPORT"

idNumber
string | null
bvn
string | null
idDocumentFrontUrl
string | null

ID-document image URL β€” required by some issuers.

Response

The issued card (masked only)

Canonical response envelope for the public surface. data on success, error on failure.

data
object
required

A card as exposed to you β€” masked only.

error
object | null
required
meta
object
required