Create the application
From your backend, create the user’s application with the wallet address. There’s no separate initiate step — create it directly.IssuingUser — save its id; that’s the userId you use everywhere else. Also include the user’s address and nationalId, or pass a Sumsub/Persona share token instead of raw PII. See the create application reference for every field and its allowed values.
Use
walletAddress for EVM chains, or solanaAddress / stellarAddress for those chains. At least one address is required for a Rain-managed program — which is why you create the wallet first.Complete KYC
Complete KYC from your backend with your API key — this is the standard flow. ReadapplicationStatus on the response; if it isn’t approved:
- Redirect the user to the returned
applicationCompletionLinkto finish Rain’s hosted verification, and/or upload documents withPUT /v1/issuing/applications/user/:userId/document. - Track approval by polling
GET /v1/issuing/applications/user/:userIdor handling theuser.updatedwebhook.
On approval, Rain automatically creates the cardholder and assigns collateral contracts — you’re ready to mint a session, fund the wallet, and issue a card.
What’s next
Authentication
Mint a session token for the new user.
Fund the Wallet
Put funds behind the user’s card.
Card Issuance
Issue a card once the user is approved.