How fintechs launch a card program without a banking license
Verify your customers, issue Visa and Mastercard cards and control every card through one integration.
Fintechs and neobanks, especially in markets where local card issuers are slow or out of reach, that want to offer their own Visa and Mastercard cards.
Run the full onboarding in the sandbox: create a customer, generate the KYC link, issue a card and freeze it.
Launching a card program the traditional way means a sponsor bank, a processor, a KYC vendor, months of contracts and a minimum volume you cannot promise yet. For a young fintech, that wall often comes before the first customer.
The KemyCard API puts identity verification and card issuing behind one integration. You build the experience your customers see; we handle verification, issuing and card controls through simple REST calls and webhooks.
The customer journey in four calls
- Sign-up.
POST /v1/customerswith name, contact details, date of birth and address. In production, an active webhook endpoint is required first, so you never miss a status change. - Identity check.
POST /v1/kyc/{customerCode}/linkreturns a hosted verification URL to open in your app. The result comes back askyc.approvedorkyc.rejected; proof of address follows the same pattern withpoa.*events. - Card issuance.
POST /v1/cardswith the customer and the card product.card.activatedtells you the card is ready, andGET /v1/cards/{code}/sensitivereturns the details to display in your app. - Everyday control. Top up, freeze and unfreeze in one call each; every authorization arrives as
card.transaction.
# Create the customer
curl https://api.kemycard.com/v1/customers \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"external_reference": "user_8841",
"first_name": "Amina",
"last_name": "Diallo",
"email": "[email protected]",
"phone_country_code": "+33",
"phone": "612345678",
"date_of_birth": "1994-03-12",
"address": "8 avenue Example",
"city": "Paris",
"state": "Ile-de-France",
"postal_code": "75011",
"country": "FRA"
}'
# Generate the identity verification link
curl -X POST https://api.kemycard.com/v1/kyc/CUSTOMER_CODE/link \
-H "Authorization: Bearer sk_test_..."
external_reference is your own user ID and must be unique, so the same person is never created twice. The country uses the three-letter ISO code (FRA, USA…).
Card controls your support team will use
POST /v1/cards/{code}/freezeand/unfreeze: a lost phone or a suspicious payment is handled in seconds.GET /v1/cards/{code}/transactions: the full history for disputes and support.card.3ds_request: 3-D Secure requests are pushed to you, so the customer can confirm an online payment in your app.
Verification and card fees
Identity verification costs $2 per successful check and proof of address $1.80 per verified document, passed through at cost. Card fees depend on your plan and are read live from our pricing:
| Plan | Price | Card creation | Card load |
|---|---|---|---|
| Découverte | $0/mo | $5 | $1 + 2.5% |
| Starter | $750/mo | $3.50 | $1 + 2% |
| Business | $999/mo | $2.50 | $1 + 1.75% |
| Premium | $1,999/mo | $1.50 | $1 + 1.5% |
Start small, grow on the same API
The free Découverte plan lets you issue your first virtual cards with KYC, with monthly limits sized for a pilot. When your volume grows, paid plans remove the monthly limits and only change fees and support. Your integration does not change.
Start with the test mode guide and the webhooks guide.
Build this on the free Découverte plan
No monthly fee to start, an unlimited sandbox with test keys, and the same API you will use in production. Upgrade only when your volume grows.