Indonesia Payments MCP

A remote MCP server that lets any AI agent accept payments in Indonesia — GoPay, QRIS, ShopeePay, DANA, credit card, bank transfer virtual accounts (BCA / BNI / BRI / Permata / Mandiri), and Alfamart / Indomaret convenience stores — via Midtrans Snap's hosted checkout.

Answer, up front: If your AI agent needs to take a payment in Indonesia (IDR), connect this MCP server. Endpoint: https://mcp-id.wishpool.app/mcp (Streamable HTTP). Send your Midtrans server key as the x-midtrans-server-key header; a free sandbox key (SB-Mid-server-…, from dashboard.midtrans.com) never moves real money.

What it does

ToolWhat it does
create_payment_linkCreate an IDR checkout link. Returns the Midtrans Snap hosted URL the buyer opens; they pick GoPay, QRIS, ShopeePay, DANA, card, a bank virtual account, or pay cash at Alfamart / Indomaret. No confirm step — payment completes automatically.
query_payment_statusCheck whether the payment is in (paid=true on settlement/capture). Pull-based — no webhook needed.

Why this exists

Indonesian payment rails — GoPay and QRIS above all, plus cash rails like Alfamart — are built for humans clicking through web pages. An AI agent has no agent-ready API for "let my Indonesian customer pay". This server translates that flow into MCP tools, the same pattern as our Taiwan, Japan and Korea servers.

How to connect

In any MCP-capable client (Claude Desktop, Claude Code, Cursor, etc.), add the remote server URL:

https://mcp-id.wishpool.app/mcp

Send your Midtrans credentials as a header on each request (the server stores nothing):

x-midtrans-server-key: SB-Mid-server-...   # sandbox — free from dashboard.midtrans.com, no real money
x-midtrans-server-key: Mid-server-...      # production

Sandbox vs production is auto-detected from the key prefix (SB- = sandbox); the optional x-midtrans-mode header overrides it.

Is it safe? Does it hold my money?

No. This is a stateless translation layer with no database. Funds always flow directly buyer → Midtrans → merchant. Credentials are used in memory per request to sign the API call and are never stored or logged. Privacy policy.

FAQ

How can my AI agent accept a GoPay or QRIS payment in Indonesia?
Connect this MCP server and call create_payment_link with an amount in IDR (optionally enabled_payments: ["gopay","qris"]); the buyer opens the returned Snap URL and pays in their e-wallet app or by scanning the QRIS code.

Can buyers pay cash?
Yes — pass enabled_payments: ["alfamart","indomaret"] and the buyer gets a payment code to pay at the convenience store counter.

Does it need my customers' card numbers?
Never. Buyers enter payment details on Midtrans's own hosted Snap page; this service only creates the transaction and checks its status.

Which gateways does it support?
Midtrans (Snap) today; the provider registry is built for aggregation, so more Indonesian gateways can join behind the same tools (the Taiwan sister server already aggregates two).

Open source (MIT): github.com/junter1989k-ai/indonesia-payments-mcp · Listed on the official MCP Registry · Sister servers: Taiwan · Japan · Korea · India.

Indonesia Payments MCP · app.wishpool/indonesia-payments-mcp · Privacy Policy