Mulai
MCP server
Biarkan AI agent membuat dan membaca pembayaran untuk Anda, mulai dari Sandbox.
MCP (Model Context Protocol) adalah standar terbuka yang memungkinkan AI agent seperti Claude memanggil tool eksternal. kasera-pay-mcp adalah MCP server kami: jalankan di samping agent Anda, dan agent bisa membuat permintaan pembayaran, mencarinya, membaca tarif Anda, dan menentukan hasil pembayaran test — lewat API publik /v1 yang sama dengan yang dijelaskan dokumentasi ini, dengan API key yang tidak pernah keluar dari environment server.
Instalasi
Server ini dirilis sebagai package npm, kasera-pay-mcp, dan dijalankan dengan npx kasera-pay-mcp — tidak perlu install terpisah.
Claude Code
claude mcp add kasera-pay -e KASERA_API_KEY=kp_test_... -- npx kasera-pay-mcp
Claude Desktop & Cursor
Keduanya membaca format JSON yang sama — Claude Desktop dari claude_desktop_config.json, Cursor dari .cursor/mcp.json:
{
"mcpServers": {
"kasera-pay": {
"command": "npx",
"args": ["kasera-pay-mcp"],
"env": { "KASERA_API_KEY": "kp_test_..." }
}
}
}Environment
| Variabel | Arti |
|---|---|
KASERA_API_KEY | Wajib. kp_test_... atau kp_live_... dari Pengaturan → Developer. Diatur di environment server, tidak pernah dikirim sebagai argumen tool. |
KASERA_BASE_URL | Opsional. Default https://pay.kasera.id. |
KASERA_ALLOW_LIVE | Opsional. Key kp_live_ hanya dapat tool read-only, kecuali nilai ini true. |
Tool
Lima tool, masing-masing wrapper tipis untuk satu endpoint /v1. Server juga menyediakan dokumen OpenAPI live sebagai resource kasera-pay://openapi, jadi agent bisa membaca kontrak API lengkap sendiri. Tidak ada tool pencairan — pencairan bukan bagian dari API publik /v1.
| Tool | Fungsinya |
|---|---|
create_payment_request | Buat permintaan pembayaran dan dapatkan checkout_url-nya (POST /v1/transactions). |
get_payment | Ambil satu permintaan pembayaran berdasarkan id payreq_*-nya (GET /v1/transactions/{id}). |
list_payments | Satu halaman permintaan pembayaran, terbaru dulu, dengan next_cursor untuk halaman berikutnya (GET /v1/transactions). |
get_pricing | Metode yang aktif di akun beserta biaya per metode, batas amount, dan field pelanggan yang wajib (GET /v1/payment_methods). |
simulate_payment | Ubah pembayaran test yang pending jadi succeeded atau expired. Khusus test key — selalu ditolak untuk key live. |
Model keamanan
Agent yang memegang key Anda sama saja dengan caller lain, jadi server ini dibuat dengan Sandbox sebagai default:
Mulai dengan test key. Key kp_test_ bisa memakai semua tool, dan tidak ada yang dibuatnya bisa memindahkan uang sungguhan — test mode yang sama dengan yang dijelaskan di Test mode.
Key live default-nya read-only. Dengan key kp_live_, create_payment_request ditolak beserta petunjuk untuk mengatur KASERA_ALLOW_LIVE=true — langkah yang sengaja Anda lakukan di environment server, bukan sesuatu yang bisa diakali agent. simulate_payment selalu ditolak untuk key live: pembayaran live dibayar pembeli sungguhan, tidak pernah disimulasikan.
Setiap create membawa Idempotency-Key. Server membuat key UUID baru untuk tiap call, jadi retry jaringan untuk satu call tidak bisa menagih dua kali. Dua call terpisah tetap dua pembayaran — minta agent membuat pembayaran yang sama dua kali, maka pembayarannya dibuat dua kali.
Coba di Sandbox
Dengan server yang memakai key kp_test_, jalankan satu pembayaran dari awal sampai akhir langsung dari chat:
1. Buat. Minta agent membuat pembayaran test Rp150.000. Agent memanggil create_payment_request dan melaporkan id payreq_*, checkout_url, serta fee dan net sesuai tarif akun Anda.
2. Tandai lunas. Pembayaran test tidak pernah terkonfirmasi sendiri. Minta agent menandainya lunas: simulate_payment mengubahnya jadi succeeded — dan memicu webhook payment.paid ber-signature yang sama seperti pembayaran sungguhan, ke endpoint test Anda.
3. Cek. Tanyakan status pembayarannya. get_payment mengembalikannya dengan status: succeeded, livemode: false, dan paid_at yang sudah terisi.