Card as a Service · Fintech & wallets

Cards inside your app

Give your wallet users a virtual card. They spend their balance anywhere cards work — your ledger decides every purchase.

  • A card per user
  • Your ledger approves
  • No card data on your servers
01 — How it works

Live in three steps.

  1. Day 1Map your users

    Every card carries your own user id.

    api
    · external_user_id: user_42
    POST /cards 201
  2. Every purchaseYour ledger decides

    Guara asks your endpoint before the money moves.

    api
    ⇢ authorization.request
    ← APPROVE ✓
  3. AfterReconcile

    Signed webhooks for every card event.

    api
    ⇢ transaction.posted ✓
    ⇢ card.issued ✓
02 — What you get

Fintech & wallets, end to end.

Issuing

A card for every user

external_user_id ties each card and transaction to the user in your app.

GuaraVIRTUAL
•••• •••• •••• 1290
Wallet · user_42VISA
Authorization

Your ledger decides

Approve from the user's balance in 1.2 s.

APPROVEDECLINE
Security

No card data on your servers

Card numbers open in our secure frame.

Webhooks

Signed, retried

HMAC-SHA256, 7 retries for every webhook.

Cards

Any currency

USD Visa or Mastercard, spent worldwide.

03 — Code

A few lines
to start.

Same REST API, same keys and limits for every program. Docs open in the console after sign-up.

// your ledger decides: the card spends the user's balance in your app
app.post("/guara/authorize", express.raw({ type: "application/json" }), (req, res) => {
  if (!verify(req)) return res.status(401).end();

  const { data } = JSON.parse(req.body);
  const balance = ledger.available(data.external_user_id);

  if (data.amount_cents > balance) {
    return res.json({ decision: "DECLINE", reason: "INSUFFICIENT_BALANCE" });
  }
  ledger.hold(data.external_user_id, data.amount_cents);
  res.json({ decision: "APPROVE" });
});
04 — Access

Tell us what you're building.

Three steps from here to live cards.

  1. We reply within a business dayPricing for your volume, by email or your contact.
  2. You connect the APIKeys, webhooks and MCP for your agents.
  3. You go liveSwitch to live keys and issue cards to your users.
Prefer email? support@guarapay.io
What will the cards be for?
Cards per month

Do I need PCI DSS?

Card numbers open in our secure frame and never reach your servers.

Whose balance does a purchase use?

Your user's balance lives in your ledger; you approve the purchase, and it is paid from your USDT balance with Guara.

Can I issue a card on sign-up?

Yes — one API call per user, with an idempotency key so a retry never issues twice.

Is Guara a bank?

No. Guara does not accept deposits; cards are issued by a licensed issuing partner.

Card issuing for wallets and fintechsRequest access →