Skip to main content
POST

Authorizations

Authorization
string
header
required

Bearer JWT issued to your business account during onboarding

Path Parameters

userId
string
required

Body

application/json
cardType
enum<string>
required

Use physical when the card must be produced and shipped.

Available options:
virtual,
physical
Example:

"physical"

displayName
string
Example:

"Jane Doe Card"

physicalAddress
object

Residential address for virtual cards. Required only when the user does not already have a stored physicalAddress. Synced to Rain (not sent as Rain card shipping).

shippingAddress
object

Required for physical cards. Courier delivery address sent to Rain. Also upserts users.physicalAddress (phone dropped).

bulkShippingGroupId
string

Optional bulk shipping address id from POST /cards/bulk-shipping-addresses. When set, physical cards with this id ship together. Omitted cards ship individually. Virtual cards must not send this field.

Example:

"507f1f77bcf86cd799439022"

acceptCharge
boolean

Required when GET /cards/fees returns a non-zero physicalCardFee. Must be true to accept the once-off USDC charge.

Example:

true

Response

201 - application/json
id
string
required
Example:

"550e8400-e29b-41d4-a716-446655440002"

status
enum<string>
required

Cards are active after issuance. terminated is set by DELETE /cards/{cardId} and cannot be reversed.

Available options:
pending,
active,
frozen,
terminated
Example:

"active"

last4
string
required
Example:

"4242"

isPinSet
boolean
required
Example:

false

displayName
string
Example:

"Jane Doe Card"

cardType
enum<string>
Available options:
virtual,
physical
expirationMonth
string
Example:

"12"

expirationYear
string
Example:

"2028"

limit
object

Card spending limit from the issuer when available (amount in cents)

Example: