POST /cards/users/{userId}/issue. The cardType field determines virtual or physical delivery.
End users can hold multiple virtual and/or physical cards. Your business account is limited to 50 non-canceled cards in total, and 50 card creations every 90 days.
Virtual card
Virtual cards do not use courier shipping. They do require a residentialphysicalAddress:
- Send
physicalAddresson the issue request, or - Ensure the user already has a stored
physicalAddress(fromPOST /users,PATCH /users/{userId}, or a prior physical issue)
400.
Issue virtual card (address on request)
Issue virtual card (user already has stored physicalAddress)
physicalAddress on issue, it is upserted on the user and synced to the issuer. It is not sent as Rain card shipping.
Virtual and physical cards are issued as active. No separate activate step is required.
For dual card branding, see Business account.
physicalAddress fields
Physical card
Requires ashippingAddress object on the issue request (courier delivery + recipient phone). Issuing a physical card also upserts users.physicalAddress from the shipping fields (phone is dropped).
Call GET /cards/fees first to read the once-off physical card fee (physicalCardFee in USDC cents). If it is greater than zero, send acceptCharge: true when issuing — otherwise the API returns a 400 with the charge amount. You also need enough treasury USDC to cover the fee.
GET /cards/fees
Card fees response
physicalCardFee is in USDC cents (1000 = 10.00 USDC). When it is 0, acceptCharge is not required.
Issue physical card
id as bulkShippingGroupId from Bulk shipping addresses (for example GET /cards/bulk-shipping-addresses/default). The issue call does not apply a default for you. Omit the field to ship that card individually.
shippingAddress fields
Physical cards are issued as active. Set the PIN with Managing a card’s PIN after issuance. To permanently end a card, use
DELETE /cards/{cardId}. See Lifecycle controls.
For a compromised virtual card, see Replace a card.