← Docs

Stripe MPP + LemonCake (don't migrate, coexist)

The honest take: keep Stripe MPP for global card + USDC. Add LemonCake for Base/USDC + JP onramp. They run side by side.


Why this guide is different

Most "migrate from X to Y" guides try to convince you to rip out the incumbent. We're not going to do that here. Stripe Machine Payments Protocol shipped at Sessions 2026 with Bridge custody, Privy CLI integration, and Issuing-card backing in 30+ countries. That's a serious stack.

Where LemonCake fits: we accept MPP-signed paymentsand settle them on Base/USDC via our facilitator. Stripe MPP is the signing standard; we're one of several Base/USDC facilitators that can settle the resulting transaction. This is the same pattern as accepting Stripe-tokenized cards through any acquirer.

Why add LemonCake alongside MPP?

Three concrete cases where Stripe MPP alone leaves you short:

  1. JP buyers.Stripe Crypto Onramp is not available in Japan (as of May 2026). You can accept Stripe MPP-signed payments from a JP buyer, but the buyer has no onramp to fund the wallet that signs the MPP intent. LemonCake's native JPY → USDC → Base flow gives you a JP-funded buyer that then signs Stripe MPP. Same protocol, different onramp.
  2. Per-tx volume cost.Stripe's MPP take rate follows Stripe pricing (currently estimated ~$0.10/tx all-in at typical volumes). LemonCake's facilitator is $0.005/tx after the first 1k/mo free. For high-frequency micro-payments, the same MPP-signed transaction settled through LemonCake is materially cheaper. You don't lose Stripe — Stripe just doesn't see that tx.
  3. KYA / non-custodial requirement.Stripe MPP works with Bridge custody by default. If you have a buyer who explicitly cannot tolerate custody (regulated fund, EU GDPR-conscious org, FSA-cleared JP fund), LemonCake's ERC-2612 permit + buyer-controlled wallet + bundled KYA identity gives a non-custodial path with no Stripe involvement.

Coexistence architecture

        ┌──────────────────────────────────────────────────────┐
        │              your API / agent platform               │
        └──────────────────────┬───────────────────────────────┘
                               │
            ┌──────────────────┴──────────────────┐
            │                                     │
       MPP-signed by                       MPP-signed by
       Stripe Privy wallet                LemonCake / Privy wallet
            │                                     │
            ▼                                     ▼
    ┌───────────────┐                  ┌───────────────────────┐
    │  Stripe MPP   │                  │  LemonCake facilitator│
    │  facilitator  │                  │  (Base / USDC)        │
    │  (Bridge      │                  │                       │
    │  custody)     │                  │  Free 1k tx/mo        │
    │  Take-rate    │                  │  $0.005/tx after      │
    └───────────────┘                  │  JP onramp included   │
                                       └───────────────────────┘

Your code routes based on what the buyer's wallet hands you. Same MPP signature standard, two facilitators. Buyers pick by geo / cost preference.

Code diff (add LemonCake as a fallback facilitator)

import { mppMiddleware } from "@stripe/mpp-server";
+ import { paymentMiddleware as lemonCake } from "@lemon-cake/x402-server";

  app.use(mppMiddleware({
    facilitator: "https://api.stripe.com/v1/mpp",
    apiKey:      process.env.STRIPE_API_KEY,
+   fallbackFacilitator: lemonCake({
+     facilitator: "https://lemoncake.xyz/api/x402",
+     network:     "base",
+     mpp:         true,
+   }),
+   route: (intent) => {
+     // route by buyer geo or cost preference
+     if (intent.buyerCountry === "JP")             return "lemoncake";
+     if (intent.metadata.preferred === "base-usdc") return "lemoncake";
+     return "stripe";
+   },
  }));

Your buyers don't care which facilitator settles their MPP-signed payment — the spec is the spec. You route based on cost, geo, custody preference, or whatever else matters to your stack.

FAQ

If I add LemonCake, does Stripe see those transactions?

No. Routing is at your edge. Stripe sees only the MPP intents you forward to Stripe. The Base/USDC settlements done via LemonCake show up in your LemonCake dashboard, not Stripe's.

Does my Stripe MPP integration need to change?

Only if you want LemonCake routing. The Stripe MPP path stays identical; you're adding a conditional fallback, not replacing anything.

Will Stripe mind?

Stripe MPP is an open spec, not exclusively a Stripe-settled protocol. Multiple facilitators is the design assumption. (Same way Stripe accepts cards from any acquirer.)

What if I just want LemonCake, no Stripe?

Drop the Stripe code path and use LemonCake's middleware directly. You still accept MPP-signed payments — Stripe is just no longer in your stack.

Is there a migration sprint for this?

Yes — same $5,000 / 2-week scope. We add LemonCake as a fallback facilitator, set up the routing logic, and ship the geo/cost-based router. See /consulting.

Want us to do it?

$5,000, 2 weeks, fixed — we ship the dual-facilitator routing into your repo, set up the geo router, and validate the cutover with a 1% traffic mirror before flipping. Email contact@aievid.com.


Updated 2026-05-26. Stripe MPP details pulled from Stripe Sessions 2026 recap. Pricing estimates are non-authoritative — confirm with Stripe sales.