◯ Marutap Log in Join the waitlist
◯ for developers

Give any agent a way to pay — without ever touching a card number.

Marutap is an MCP server. Your agent asks to pay; the user approves on their phone; your agent gets a single-use card scoped to that one purchase. You never hold, store, or see the user’s real card.

The shape of it

  1. The user connects a card and hands your agent a token. You send it as Authorization: Bearer <token>. No token yet? The first call returns a claim link that onboards the user — no pre-registration required.
  2. Your agent calls request_payment with an amount and merchant, and shows the returned approval_url to the user.
  3. The user approves with a one-tap passkey confirmation.
  4. Your agent calls get_payment_result and receives a single-use card — number, CVC, expiry — locked to that purchase. Check out with it.

A request, end to end

# Connect over MCP to the "marutap" server, auth with the user's token.
# 1) Ask to pay — usually returns an approval_url to show the user.
request_payment(amount=24.50, merchant="Gino's Pizza",
                line_items=[{"name": "Large pepperoni", "quantity": 1,
                             "amount_cents": 2450}])
# -> { "auto_approved": false,
#      "approval_url": "https://marutap.com/approve/…",
#      "charge_id": "…" }

# 2) Poll for the outcome (long-polls until the user taps approve).
get_payment_result(charge_id="…", wait_seconds=30)
# -> { "status": "approved",
#      "card": { "number": "4242…", "cvc": "123",
#                "exp_month": 12, "exp_year": 2029, "last4": "4242" } }

# 3) Use that single-use card to check out at the merchant. Done.
#    (Optional) report the merchant's order id so the user can refund later:
record_order(charge_id="…", order_ref="pi_123")

If the user’s policy auto-approves the purchase (under their cap, allowlisted merchant), request_payment returns the card immediately — no approval step.

The tools

What you never have to handle

No card numbers in your prompt, logs, or database. No PCI scope. No stored payment credentials to leak. A revoked token stops working instantly, and every credential your agent ever receives is single-use and scoped to a purchase the user already approved — so even a hijacked agent can’t overspend.

Join the waitlist

New to the model? Start with How it works · or the security guarantees