Mulai

Server MCP

Biarkan agen AI membuat dan membaca pembayaran untuk Anda, sandbox lebih dulu.

MCP (Model Context Protocol) adalah standar terbuka yang memungkinkan agen AI seperti Claude memanggil tool eksternal. kasera-pay-mcp adalah server MCP kami: jalankan di samping agen Anda, dan agen bisa membuat permintaan pembayaran, mencarinya, membaca tarif Anda, dan mengarahkan pembayaran tes — 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 paket npm, kasera-pay-mcp, dan dijalankan dengan npx kasera-pay-mcp — tanpa langkah instalasi tersendiri.

Claude Code

claude mcp add kasera-pay -e KASERA_API_KEY=kp_test_... -- npx kasera-pay-mcp

Claude Desktop & Cursor

Keduanya membaca bentuk 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

VariabelArti
KASERA_API_KEYWajib. kp_test_... atau kp_live_... dari Pengaturan → Developer. Diatur di environment server, tidak pernah dikirim sebagai argumen tool.
KASERA_BASE_URLOpsional. Default https://pay.kasera.id.
KASERA_ALLOW_LIVEOpsional. Key kp_live_ hanya mendapat tool baca kecuali nilai ini true.

Tool

Lima tool, masing-masing panggilan tipis ke satu endpoint /v1. Server juga menyajikan dokumen OpenAPI live sebagai resource kasera-pay://openapi, jadi agen bisa membaca kontrak API lengkap sendiri. Tidak ada tool payout — payout bukan bagian dari API publik /v1.

ToolFungsinya
create_payment_requestBuat permintaan pembayaran dan dapatkan checkout_url-nya (POST /v1/transactions).
get_paymentAmbil satu permintaan pembayaran berdasarkan id payreq_*-nya (GET /v1/transactions/{id}).
list_paymentsSatu halaman permintaan pembayaran, terbaru dulu, dengan next_cursor untuk halaman berikutnya (GET /v1/transactions).
get_pricingMetode yang aktif di akun beserta biaya per metode, batas amount, dan field pelanggan yang wajib (GET /v1/payment_methods).
simulate_paymentArahkan pembayaran tes yang pending menjadi succeeded atau expired. Khusus key tes — selalu ditolak pada key live.

Model keamanan

Agen yang memegang key Anda adalah pemanggil seperti yang lain, jadi server ini dibangun dengan sandbox sebagai default:

Mulai dengan key tes. Key kp_test_ mendapat seluruh kemampuan, dan tidak ada yang dibuatnya bisa memindahkan uang sungguhan — mode tes yang sama dengan yang dijelaskan di Mode tes.

Key live hanya bisa membaca secara default. Dengan key kp_live_, create_payment_request ditolak beserta petunjuk untuk mengatur KASERA_ALLOW_LIVE=true — langkah yang Anda ambil dengan sengaja di environment server, bukan sesuatu yang bisa dinegosiasikan agen. simulate_payment selalu ditolak pada key live: pembayaran live dibayar pembeli sungguhan, tidak pernah disimulasikan.

Setiap create membawa Idempotency-Key. Server membuat key UUID baru untuk tiap panggilan, jadi retry jaringan atas satu panggilan tidak bisa menagih dua kali. Dua panggilan terpisah tetap dua pembayaran — meminta agen membuat pembayaran yang sama dua kali berarti membuatnya dua kali.

Latihan di sandbox

Dengan server yang memakai key kp_test_, jalani satu pembayaran dari awal sampai akhir langsung dari percakapan:

1. Buat. Minta agen membuat pembayaran tes Rp150.000. Agen memanggil create_payment_request dan melaporkan id payreq_*, checkout_url, serta fee dan net sesuai tarif akun Anda.

2. Simulasikan. Pembayaran tes tidak pernah terkonfirmasi sendiri. Minta agen menyimulasikannya sebagai lunas: simulate_payment mengarahkannya ke succeeded — dan memicu webhook payment.paid bertanda tangan yang sama seperti pembayaran sungguhan, ke endpoint tes Anda.

3. Periksa. Tanyakan status pembayarannya. get_payment mengembalikannya dengan status: succeeded, livemode: false, dan paid_at yang sudah terisi.