Skip to main content
After you create the wallet, onboard the user in Rain: create their application with the wallet address (backend), then complete KYC. This page covers the wallet-relevant parts — see Signing up a customer for the full KYC flow.

Create the application

From your backend, create the user’s application with the wallet address. There’s no separate initiate step — create it directly.
The response is an 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. Read applicationStatus on the response; if it isn’t approved:
  • Redirect the user to the returned applicationCompletionLink to finish Rain’s hosted verification, and/or upload documents with PUT /v1/issuing/applications/user/:userId/document.
  • Track approval by polling GET /v1/issuing/applications/user/:userId or handling the user.updated webhook.
You can also complete KYC from the app with a Client Session Token, but there’s no reason to today — keep it on the backend. See Application states for every status, and Signing up a customer for the full flow.
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.