Langsung ke konten
Muhammad Septian
Semua proyek

snap-aspi-go

SDK Go untuk API pembayaran SNAP (ASPI) yang mencakup virtual account, QR MPM, transfer, dan direct debit, dilengkapi klien khusus BCA.

Tahun
2025
Dibangun dengan
Go, SNAP, Payments
Tautan

SNAP (Standar Nasional Open API Pembayaran) adalah standar Bank Indonesia untuk open API pembayaran yang dikelola oleh ASPI. Setiap bank mengimplementasikan kelompok endpoint yang sama, sering kali dengan tambahan khusus dari bank tersebut. snap-aspi-go membungkus semuanya dalam antarmuka Go yang rapi dan type-safe.

Cakupan

Klien inti mencakup virtual account, QR MPM, registrasi, cek saldo, riwayat transaksi, transfer kredit, dan transfer debit.

Klien BCA mencakup lebih banyak lagi:

  • Autentikasi: access token B2B dan B2B2C.
  • Virtual account: buat, ubah, hapus, inquiry, pembayaran, status, dan laporan.
  • QR MPM: generate, decode, bayar, query, batal, refund, dan notifikasi.
  • Transfer: intrabank, interbank, RTGS, dan SKNBI, plus status transfer.
  • Direct debit: pembayaran, status, batal, refund, dan QR CPM.
  • Auth payment: otorisasi, capture, dan void.
  • Rekening & riwayat: cek saldo dan rekening, riwayat transaksi, serta rekening koran.
  • Khusus BCA: account binding, registrasi kartu, OTP, dan bulk transfer.

Contoh penggunaan

client, err := snap.NewClient(snap.Config{
    BaseURL:        "https://sandbox.aspi-indonesia.or.id",
    ClientID:       "your-client-id",
    ClientSecret:   "your-client-secret",
    PrivateKeyPath: "path/to/private_key.pem",
    PublicKeyPath:  "path/to/public_key.pem",
    Environment:    "sandbox",
})
if err != nil {
    log.Fatal(err)
}

va, err := client.VirtualAccount().CreateVA(ctx, &types.CreateVAPayload{
    PartnerServiceId:   "12345",
    CustomerNo:         "CUST001",
    VirtualAccountNo:   "8808001234567890",
    VirtualAccountName: "John Doe",
    TotalAmount:        types.NewAmount(100000, "IDR"),
})