If you plan to give your users a crypto card, you will meet three letters very early: KYC. It stands for Know Your Customer. It is the identity check a person passes before a card is issued in their name.
Many founders see KYC as a wall between their user and the card. In practice, a good KYC flow takes a few minutes, happens once, and protects both your users and your business. This guide explains what KYC is, why card programs need it, and how to build it into your app without losing people along the way.
#What KYC actually means
KYC is a simple idea: before a card program lets someone spend money with a card, it confirms that the person is real and is who they say they are.
A typical check asks the user for:
- their legal name, date of birth and country;
- a photo of a government ID document;
- a live selfie, so the face can be matched to the ID.
The check compares these pieces, looks for signs of fraud, and returns a verdict. The user is either approved, declined, or sent to review for a closer look.
#Why crypto cards need KYC
A crypto card turns a crypto balance into money that can be spent at millions of shops. Once a payment leaves the card, it is in the normal card world, with the same rules as any bank card. That is why card programs ask for verified cardholders.
It is a network and program rule. Card networks and the programs behind each card require it. Without a verified holder, the card simply cannot be issued.
It stops fraud early. Stolen identities, fake accounts and money mules are much harder to run through a program that checks every holder.
It protects your users. If someone steals a phone or an account, a card in the real owner's name is easier to freeze, investigate and recover.
It protects your brand. Your logo is on the card experience. A program full of fake holders gets restricted, and your honest users pay the price.
#How the KYC flow works with Cryptoinfra
Cryptoinfra runs the identity check as a hosted flow. You do not have to build camera screens, store ID photos or judge documents yourself. Here is the path a user takes:
- Create the cardholder. Your app sends the user's basic details (email, name and whatever else you have) to the API.
- Check the card product. Each card product says whether it needs verification. If it does, start the check.
- Send the user to the check. The API returns a secure link. The user opens it, shows their ID and takes a selfie.
- Wait for the verdict. Your app can ask for the status, or listen for a signed webhook that fires when the verdict changes.
- Issue the card. Once the status is approved, you issue the virtual Visa card.
A few details make this smoother:
- Users are checked once. If a user is already approved, starting the check again simply returns "approved". Nobody is sent through the flow twice.
- Issuing too early is refused. If you try to issue a card that needs verification before the user is approved, the API refuses with a clear error and the current status. No half-made card appears.
- Some programs use documents instead. A few card programs take an uploaded document set rather than the hosted link. The product tells you which one applies, so you never need both.
- Abuse is capped. Starting brand-new checks has a daily limit per business, so a bot cannot burn through verifications. Resuming a check that is already open is always free.
Developers can find every endpoint and field in the cards guide.
#What the statuses mean for your app
| Status | What it means | What your app should do |
|---|---|---|
| Not started | The user has not opened the check | Show a clear "Verify your identity" button |
| Pending | The user is in the flow or the check is running | Show progress, and do not ask again |
| Approved | The user is verified | Let them pick and issue a card |
| Declined | The check did not pass | Explain kindly and offer a fresh attempt |
| Review | The check needs a closer look | Tell the user it is being reviewed |
Declined and review are final for that attempt. The user can start a new one.
#Where to place KYC in your product
The best moment to ask for KYC is when the user wants a card, not at signup.
If you ask on the very first screen, many users leave before they see any value. If you wait until they tap "Get a card", they already know why the check is needed, and they are far more likely to finish it.
A good order looks like this:
- The user signs up and gets a USDT wallet.
- They deposit and look around.
- They tap "Get a card".
- Your app explains the check in one sentence and opens the hosted link.
- When the webhook says approved, the app moves straight to choosing a card.
You can read more about the wallet side on the wallets page, and about the card features on the cards page.
#A checklist for a smooth KYC flow
- [ ] Tell users why you need the check before they start.
- [ ] Say what they need: a valid ID and a phone camera, in good light.
- [ ] Pre-fill what you already know, so they type less.
- [ ] Listen for the webhook instead of making users refresh.
- [ ] Show a friendly screen for declined and review, with next steps.
- [ ] Never store ID photos yourself if the hosted flow already does it.
- [ ] Show card prices before the check, so nobody verifies and then leaves at the price.
#Common mistakes to avoid
Asking for KYC too early. Forcing the check at signup cuts conversion. Ask when the card is the next step.
Silent waiting screens. If the check goes to review, tell the user. A blank spinner looks like a broken app.
Building your own ID capture. Handling passport photos means storing very sensitive data. Let the hosted flow carry that load.
Treating "declined" as the end. Many declines come from blurry photos or an expired ID. A clear "try again with a sharper photo" message saves real users.
Hiding the cost of the card. Users who pass KYC and only then see the price feel tricked. Link to live numbers on the pricing page early.
#How KYC fits the bigger picture
KYC is the first step of the card journey, not the whole journey. After it come issuing, loading with USDT on-chain, spending online or through Apple Pay and Google Pay, and closing the card. Our guide on how crypto debit cards work walks through each of those steps in order.
When the identity step is short, clear and placed at the right moment, most users barely notice it. They just see a card that is ready to use.
#Get started
Signing up takes a few minutes, and you can build your wallet and webhook handling in the sandbox while you plan the card flow. Sign up free and start building your card onboarding today.