Skip to main content
KemyCard is the infrastructure behind your product. Your customers sign up in your application, pay you with your payment methods, and see your brand. Your servers call the KemyCard API to verify them and to issue and fund their cards. Your customers have no direct access to KemyCard.

Your system and ours

What you do

You own the customer relationship: sign-up, your prices, collecting the money of your customers by your own means, their balance in your system, support, and the decision to issue or top up a card.

What KemyCard does

We verify the identity of each customer, issue the cards through our banking partners, debit your ops balances, and send you a webhook for every event.
Your customers’ payments do not reach KemyCard. How you collect money from your customers, and what you charge them, is your decision and your responsibility. KemyCard only sees the USDC you deposit on your ops balances. Keep the balance of each customer in your system: KemyCard does not keep it for you.

A customer, step by step

  1. Your customer only talks to you. Sign-up, payment, card request, support: everything happens in your application.
  2. Your servers talk to KemyCard. With your API key, from your allowed IP addresses, never from the app of your customer.
  3. Two ledgers, two kinds of balance. In your system, the balance your customer paid you. At KemyCard, your ops balances, which pay for the cards. You keep enough on your ops balances, and you debit your customer in your system when you issue or top up their card.
  4. Webhooks keep both systems in sync. Update your application when you receive kyc.approved, card.activated, card.topup.completed or card.transaction.

Where the money is

KemyCard keeps two kinds of money apart: your money, on your ops balances, and your customers’ money, on their wallets if you use crypto wallets to collect it. Cards are always funded with your money.

The three rules

Cards use your ops balance

A Visa card is created and loaded from cards_visa, a Mastercard card from cards_mastercard. A card withdrawal goes back to the same balance.

Wallets hold your customers' money

Each wallet has its own balance. It is never mixed with your ops balances, and it never pays for a card or a fee.

Ops balances are funded in USDC on Solana

From your own exchange or wallet, to the deposit address of each balance. Funds cannot move from one ops balance to another.

Using your customers’ money on a card

A wallet cannot load a card directly. If your customer pays you on a wallet and you want to load their card with that money, you do it in two steps:
1

Get the funds out of the wallet

Withdraw them through the API (standard wallet), or let the collect wallet forward them automatically to your destination_address. The fee of the withdrawal or of the forward applies.
2

Fund your ops balance

Send USDC on Solana from your treasury to the deposit address of cards_visa or cards_mastercard. The deposit fee of your plan applies.
3

Load the card

Create or top up the card: it is paid from your ops balance, with the creation or load fee of your plan.
Most partners keep enough on their ops balances and load cards right away, then receive their customers’ payments on wallets. The two flows run side by side: you decide when to move money from one to the other.

Quick answers

See also: Ops Balance, Crypto Wallets, Top up a card, Plans and fees.