Crypto Card Integration with Visa/Mastercard via Marqeta or Stripe Issuing

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1All 1305 services
Crypto Card Integration with Visa/Mastercard via Marqeta or Stripe Issuing
Complex
from 2 weeks to 3 months
Frequently Asked Questions

Blockchain Development Services

Blockchain Development Stages

Latest works

  • image_website-b2b-advance_0.webp
    B2B ADVANCE company website development
    1356
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1248
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    954
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1187
  • image_logo-advance_0.webp
    B2B Advance company logo design
    644
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    925

You are launching a crypto platform and want to issue a debit card that converts BTC to USD seconds before payment. The problem: integration with Visa/Mastercard requires three levels—principal member (bank with network membership), program manager (Marqeta/Stripe Issuing), and your platform. Direct membership takes 12–24 months and capital from $2M. A realistic path for a startup is working through a program manager that already has membership. We specialize in the technical side of such turnkey integration: from choosing a processing partner to launching the card product.

Our experience shows that most crypto platforms choose Marqeta as the card issuing API—it is the most flexible solution with JIT Funding support. An alternative is Stripe Issuing, but it requires a pre-funded fiat reserve. We will help evaluate your project and choose the optimal provider.

To understand the architecture, let's break down the structure:

Visa/Mastercard Network
    ↓
Principal Member Bank (BIN owner)
    ↓
Card Program Manager (Marqeta, Stripe Issuing, Galileo)
    ↓
Your Crypto Platform
    ↓
End User

Principal Member is a bank with direct membership in Visa/MC, issuing BIN ranges. Program Manager is the technological intermediary, providing APIs for card issuance and authorization processing, taking on technical and partially regulatory obligations. Your platform handles the crypto side: asset storage, conversion, user interface.

How JIT Funding Works for Crypto Cards

Marqeta is a leading card issuing API, used by Cash App, DoorDash, Coinbase Card. It operates as a program manager: you issue cards via their API, they process authorizations and via Just-In-Time (JIT) funding request funds from you at the moment of each transaction. This makes Marqeta the best choice for consumer crypto cards compared to Stripe Issuing, which requires pre-funding.

JIT (Just-In-Time) Funding is a mechanism where Marqeta does not hold the user balance on its own. Instead, at each card authorization, Marqeta makes a webhook request to your API, and you respond with approve/decline and the amount. This allows applying your business logic (check crypto balance, convert) in real time.

// Your JIT Funding endpoint
app.post("/marqeta/jit-funding", async (req, res) => {
  const { token, type, amount, currency_code, card_token } = req.body;
  
  const userId = await getUserByCardToken(card_token);
  const user = await getUser(userId);
  
  const cryptoAmount = await convertUSDToCrypto(amount, user.preferredAsset);
  
  const hasBalance = await reserveBalance(userId, cryptoAmount);
  
  if (!hasBalance) {
    return res.json({
      jit_funding: {
        token: token,
        method: "pgfs.authorization",
        user_token: userId,
        amount: 0,
      },
    });
  }
  
  return res.json({
    jit_funding: {
      token: token,
      method: "pgfs.authorization",
      user_token: userId,
      amount: amount,
      currency_code: "USD",
    },
  });
});

Marqeta API — Card Issuance

import Marqeta from "@marqeta/core-api";

const marqeta = new Marqeta({
  applicationToken: process.env.MARQETA_APP_TOKEN,
  accessToken: process.env.MARQETA_ACCESS_TOKEN,
  baseUrl: "https://sandbox.marqeta.com/v3",
});

async function createMarqetaUser(userId: string, userData: UserData) {
  const marqetaUser = await marqeta.users.create({
    token: userId,
    first_name: userData.firstName,
    last_name: userData.lastName,
    email: userData.email,
    birth_date: userData.birthDate,
    address1: userData.address,
    city: userData.city,
    state: userData.state,
    country: userData.country,
    postal_code: userData.postalCode,
  });
  return marqetaUser;
}

async function issueVirtualCard(userId: string) {
  const card = await marqeta.cards.create({
    user_token: userId,
    card_product_token: process.env.CARD_PRODUCT_TOKEN,
  });
  const cardDetails = await marqeta.cards.getShowPAN(card.token);
  return {
    cardToken: card.token,
    last4: card.last_four,
    expiration: card.expiration,
    pan: cardDetails.pan,
    cvv2: cardDetails.cvv_number,
  };
}

When to Choose Stripe Issuing vs Marqeta

Stripe Issuing is simpler to integrate, available in 30+ countries. It does not fully support JIT Funding—balance must be pre-funded on Stripe account, which requires holding a fiat reserve at Stripe. This complicates crypto integration. Suitable for B2B expense management cards, corporate cards with crypto balance. Not optimal for consumer crypto debit cards.

Marqeta is twice as suitable for consumer cards as Stripe Issuing due to JIT Funding. If your product is a crypto debit card for users, choose Marqeta. For B2B expense management, Stripe Issuing.

import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

const card = await stripe.issuing.cards.create({
  cardholder: cardholderId,
  currency: "usd",
  type: "virtual",
  status: "active",
  spending_controls: {
    spending_limits: [{ amount: 50000, interval: "daily" }],
  },
});
Parameter Marqeta Stripe Issuing
JIT Funding Yes No (pre-funded)
Crypto cards Excellent Limited (B2B)
API Powerful, flexible Simpler, fewer options
Geography Global 30+ countries
Card issuance cost ~$2 ~$3

Marqeta charges about $2 per virtual card issuance and $0.10 per authorization. At a volume of 10,000 cards per month, savings on fiat reserve can reach $50,000 per year.

Authorizations, Settlement, and Currency Risk

It's important to understand the difference: Authorization—check and hold funds, happens instantly, your JIT endpoint must respond within 2-3 seconds. Clearing/Settlement—actual charge, occurs 1-3 business days later. Refund/Reversal—transaction cancellation, may arrive days after authorization.

app.post("/marqeta/webhook", async (req, res) => {
  const event = req.body;
  switch (event.type) {
    case "authorization":
      await holdCrypto(event.card_token, event.amount);
      break;
    case "authorization.clearing":
      await settleTransaction(event.transaction.token, event.amount);
      break;
    case "authorization.reversal":
      await releaseHold(event.transaction.token);
      break;
    case "refund":
      await refundCrypto(event.card_token, event.amount);
      break;
  }
  res.status(200).send("OK");
});

How to Manage Currency Risk with JIT Funding?

When holding a USD amount in crypto equivalent, there is a risk of rate change between authorization (T+0) and settlement (T+1..3). Three approaches:

  • Stablecoin by default (USDC/USDT). No currency risk. Users hold stablecoins, payment is straightforward. Disadvantage: no crypto upside.
  • Over-reservation. At authorization, reserve amount with a buffer (+2-3%). At settlement, excess is returned. Simple solution for small volumes.
  • FX hedge. At authorization, fix the rate through derivatives or fast CEX trade. More complex, expensive, but precise. Needed for large volumes or volatile assets.

PCI DSS and Regulatory Path

Handling card numbers (PAN) requires PCI DSS certification. Levels: SAQ A—if you don't process PAN directly (Marqeta stores them, you use tokens), minimal requirements; SAQ D—if you store/process PAN, full audit, expensive. We recommend using card tokenization (Marqeta Token Vault)—your system operates only with card_token, PAN never passes through your servers.

Jurisdiction Requirement Timeline Notes
EU EMI license (Lithuania) 6-12 months Requires passportization, partnership with issuer
UK FCA EMI 9-18 months High regulatory requirements
USA MTL in each state 12-24 months Expensive, alternative: partnership with a bank
Singapore MAS Major Payment Institution 12-18 months Requires local presence

Minimum path for EU: registration in Lithuania + passportization. For the rest of the world—partnership with an already licensed issuer.

Step-by-Step Integration Process

  1. Analytics and provider selection: volume assessment, choose Marqeta or Stripe Issuing.
  2. Architecture design: JIT Funding, conversion scheme, key storage.
  3. API integration: card issuance, webhooks, 3DS.
  4. Crypto custody integration: wallet, conversion, reservation.
  5. KYC/AML: integration with verification services.
  6. Testing: authorization, settlement, refund scenarios.
  7. Compliance: PCI DSS, licensing.

What's Included in Turnkey Integration

  • Consultation on card issuing provider selection (Marqeta/Stripe Issuing)
  • JIT Funding endpoint setup with crypto balance check
  • API integration for virtual and physical card issuance
  • 3D Secure (3DS) implementation for transaction protection
  • KYC/AML document upload integration
  • PCI DSS assistance: tokenization recommendations, SAQ completion
  • Load testing and monitoring
  • Documentation and team training

Timelines and Indicative Cost

  • Marqeta integration (JIT + card issuance + webhooks): 4-6 weeks
  • 3DS integration: +2-3 weeks
  • Crypto custody + conversion: parallel, 4-8 weeks
  • KYC/AML: 2-4 weeks
  • Mobile app: 8-12 weeks
  • Compliance + testing: 4-6 weeks
  • Total (technical): 5-7 months

Investment in integration: from $50,000 to $200,000 depending on stack complexity and volume. Savings on infrastructure due to JIT Funding: up to 40% compared to holding your own fiat reserve.

Get a consultation for your project—we'll assess the architecture and timelines in 1-2 days.

We develop crypto wallets turnkey — from custodial solutions for fintech to smart contract accounts on EIP-4337. 5+ years in blockchain development, 40+ projects implemented. Let's examine which architecture to choose for your task and why MPC or Account Abstraction solve the private key problem that MetaMask and classic HD wallets could not close.

Why are classic wallets dangerous for business?

A seed phrase in a browser extension is the only way to restore access. For retail users, this is a barrier to entry (lost phrase = lost money). For corporate treasuries, it is incompatible with compliance (KYC/AML, role model, multisignature). Any single key leak compromises all funds. These risks are built into the architecture, not poor UX.

We eliminate them at the protocol level: MPC wallets (key never fully assembled), smart contract wallets (authorization logic in code), hardware HSM for institutional storage. Details below.

What is the real difference between custodial and non-custodial?

Custodial — the provider stores the private key. User authenticates via email/password/OAuth. Recovery is trivial, KYC/AML built-in. For centralized financial applications, often the only regulatory acceptable option. Risk: single point of failure (e.g., Bitfinex hack — $72M, FTX — $600M+ client funds).

Non-custodial — keys are with the user. Provider has no access to funds. Storage responsibility falls on the user. For 99% of people, this model is unworkable without additional protection — hence MPC.

MPC wallets: the key that doesn't exist

Multi-Party Computation (MPC) is a cryptographic protocol that allows multiple parties to jointly sign a transaction without revealing their partial secrets. The private key never exists in its assembled form.

Standard scheme: 2-of-3 MPC between user (share on device), provider server, and backup cloud storage. Transaction is signed by any two of three parties. Lost phone — recovery via server + cloud. Server compromised — attacker holds only one share, signing impossible.

TSS (Threshold Signature Scheme) is a concrete implementation of MPC for ECDSA/EdDSA. Algorithms: GG18, GG20, CGGMP21 (the latter is faster and has better security proofs). Libraries: tss-lib (Go, from Binance), multi-party-sig (Go, from Coinbase), ZenGo-X/multi-party-ecdsa (Rust).

MPC requires no on-chain changes — to the blockchain, the signature looks like a normal single-key signature. This saves gas and keeps the key management scheme confidential (not published in chain) — unlike multisig.

Account Abstraction (EIP-4337): smart contract as wallet

EIP-4337 completely changes the model: instead of EOA (Externally Owned Account), a smart contract Account is used. Authorization logic is in contract code, not in protocol cryptography. This opens up arbitrary signing logic, social recovery, session keys, sponsored transactions, and batch operations.

How the EIP-4337 stack works:

User → UserOperation → Bundler → EntryPoint contract → Account contract
                                          ↑
                                    Paymaster (optional, pays gas)

UserOperation — a new type of object (not an L1 transaction). Bundler collects UserOps from an alternative mempool, packs them into one transaction, and sends to EntryPoint. EntryPoint calls validateUserOp on the Account contract — Account decides if the signature is valid.

Practical capabilities:

Social recovery. The contract stores a list of guardians (other addresses or a service). Lost key — guardians vote for replacement. Argent has used this scheme since 2020.

Session keys. A temporary key with limited rights: interaction only with a specific contract, until a certain date, up to a certain amount. For GameFi and dApps — user does not sign every micro-transaction.

Paymaster. A third-party contract pays gas for the user. Onboarding pattern: user does not hold ETH, gas is sponsored by dApp or taken from ERC-20 tokens.

Implementations: Safe{Core} Protocol, Biconomy SDK (Stackup), ZeroDev (Kernel), Alchemy (Rundler bundler). EntryPoint v0.6/v0.7 is deployed and active on Ethereum mainnet, Polygon, Arbitrum, Optimism. We guarantee compatibility with the latest contract versions.

What is a Hardware Security Module for corporate wallets?

For treasuries and institutional storage: HSM (Hardware Security Module). The key is generated and never leaves the secure chip. Signing happens inside the HSM. Hardware attestation is supported. Solutions used: AWS CloudHSM, Azure Dedicated HSM, Thales Luna, YubiHSM 2 (for small volumes). Integration via PKCS#11 or cloud-specific API.

A combination of HSM + MPC is optimal for institutional use: key shares are stored in HSMs on different servers/jurisdictions, signing via TSS. This ensures compliance with regulatory requirements (e.g., for crypto custodians).

Integration with dApps: WalletConnect and standards

Any wallet must be able to interact with dApps. Standard: WalletConnect v2 (Sign API): QR code or deep link, peer-to-peer encrypted channel via relay server. For browser extensions: EIP-1193 (Ethereum Provider API).

On the frontend, we use wagmi + viem — one interface for MetaMask, WalletConnect, Coinbase Wallet, injected providers. For Account Abstraction: EIP-5792 (wallet capabilities) and EIP-7677 (paymaster service).

Development process

  1. Threat model — who is the user (B2C, B2B, institutional), what operations, what is the acceptable risk model. Architecture depends on this.
  2. Selection and design of key storage scheme — MPC, HSM, multisig, or a combination.
  3. Development of Account contract (if EIP-4337) or integration of MPC library.
  4. Backend — MPC coordination, session management, paymaster service (if needed).
  5. Mobile/browser application — UI with WalletConnect integration, biometrics, QR.
  6. Integration with dApps — EIP-1193, WalletConnect v2.
  7. Audit of contracts and cryptographic implementations — mandatory step. MPC libraries have known vulnerabilities (GG18 susceptible to attack with malicious participant without abort protocol). We use libraries with up-to-date security reviews (CGGMP21). Experience passing audits with Certik, Hacken, Trail of Bits — we have certificates.

What is included in the work (deliverables)

  • Source code of smart contracts (Solidity/Rust) with documentation
  • Backend MPC coordination service (Go or Rust) with API
  • Mobile application (iOS/Android) or browser extension
  • Integration with WalletConnect, Ledger/Trezor (if required)
  • Preparation for security audit (vulnerability report)
  • Administrator and user documentation
  • Access to repository, CI/CD, monitoring (Tenderly, Etherscan API)
  • Training of your team (2-3 sessions)
  • Post-launch support — 1 month

Timeline and cost

Solution type Timeline (working weeks)
Custodial with basic UI 4–8
Non-custodial with MPC integration 8–16
EIP-4337 Account with paymaster 6–12
Institutional (HSM + MPC + compliance) from 16

Cost is calculated individually for your project. We will estimate within one day — contact us by email or Telegram. We provide a guarantee on code and timeline.

Typical mistakes in crypto wallet development (and how to avoid them)

  • Using outdated MPC libraries — GG18 without abort protocol. Choose CGGMP21 or tss-lib with up-to-date audit reports.
  • Tight coupling to a single blockchain — not abstracting for L2/sidechains. Use viem/wagmi for cross-chain.
  • Ignoring MEV attacks — when using multisig without timelocks. Add tx simulation (Tenderly) and sandwiching protection.
  • Lack of fallback recovery mechanism — for Account Abstraction, not setting up social recovery. Include from the first release.

We eliminate these pitfalls at the design stage — for each project, we create a threat model and security checklist.

Need a reliable wallet with no compromises? Get a consultation from our architect — we will analyze your task and propose an architecture with a precise estimate. Leave a request — we will respond within a day.