.NET SDK for BI SNAP (Standar Nasional Open API Pembayaran)
Open-source, zero-dependency .NET SDK untuk integrasi aplikasi dengan standar BI SNAP yang ditetapkan oleh Bank Indonesia.
| Service Category | Endpoint | Status |
|---|---|---|
| Keamanan | Access Token B2B | ✅ |
| Keamanan | Access Token B2B2C | ✅ |
| Administrasi | Account Registration Inquiry | ✅ |
| Informasi Saldo | Balance Inquiry | ✅ |
| Riwayat Transaksi | Transaction History | ✅ |
| Transfer Kredit | Credit Transfer (Internal & Interbank) | ✅ |
| Transfer Debit | Direct Debit Registration | ✅ |
| Transfer Debit | Direct Debit Payment | ✅ |
| Virtual Account | Create VA | ✅ |
| Virtual Account | VA Inquiry | ✅ |
| Virtual Account | Payment Notification | ✅ |
| QRIS | QRIS Generate | ✅ |
| QRIS | Payment Notification | ✅ |
dotnet add package SnapSharp.Coreusing SnapSharp;
var options = new SnapSharpOptions
{
BaseUrl = "https://sandbox.bank.co.id",
ClientId = "your-client-id",
PrivateKeyPem = File.ReadAllText("private-key.pem"),
ChannelId = "95221",
PartnerId = "your-partner-id"
};
using var client = new SnapSharpClient(options);
var token = await client.Auth.GetAccessTokenAsync();| Project | Description |
|---|---|
SnapSharp.Core |
SDK utama — authentication, service clients, models |
SnapSharp.Cli |
CLI tool (snapsharp) untuk sandbox testing |
SnapSharp.ReferenceApp |
ASP.NET Core Minimal API reference implementation |
- 🔐 Auto-signing: RSA-SHA256 request signing transparan
- 🔄 Token auto-refresh: Refresh 30 detik sebelum expiry
- 🧵 Thread-safe: Concurrent request aman dengan double-check locking
- ⚡ Async-first: Semua API async dengan sync wrapper opsional
- 📦 Zero dependency: Hanya
System.Text.Json(built-in .NET 6+) - 🛠️ CLI tool: Sandbox testing tanpa menulis kode
- 📖 Swagger UI: Reference app dengan dokumentasi interaktif
# Install
dotnet tool install -g SnapSharp.Cli
# Generate RSA keys
snapsharp keygen -o ./keys
# Validate config
snapsharp validate -c snapsharp.json
# Test endpoints
snapsharp sandbox token -c snapsharp.json
snapsharp sandbox balance -a 1234567890
snapsharp sandbox transfer --to 0987654321 --amount 10000 --bank 002 --name "Penerima"
# Debug signature
snapsharp sign --method POST --path /v1.0/balance-inquiry \
--body request.json --key private-key.pemdocker compose up
# Buka http://localhost:8080/swaggerdotnet build
dotnet test- v0.1.0 — Project setup, authentication module
- v0.2.0 — Core services (balance, transfer, history)
- v0.3.0 — Extended services (VA, QRIS, direct debit)
- v0.4.0 — CLI tool & reference app
- v1.0.0 — NuGet publish, full docs
MIT © Muhammad Faisal Affan

