Pendahuluan

go-snap-bi adalah implementasi Go untuk standar SNAP (Standar Nasional Open API Pembayaran) milik Bank Indonesia — versi dokumen 1.0.2 (September 2024) — mencakup seluruh kategori API Service yang dipublikasikan di ASPI SNAP Developer Site.
Implementasi independen dan tidak resmi dari standar yang dipublikasikan oleh Bank Indonesia dan ASPI — tidak berafiliasi dengan atau didukung oleh keduanya.
go get github.com/koriebruh/go-snap-biStatus
Seluruh 7 kategori API Service pada portal sudah tercakup — 79 binding endpoint bertipe di 5 package domain, ditambah inti signing/token/transport yang dipakai bersama.
| Kategori portal | Package | Service Code | Endpoint |
|---|---|---|---|
| Registrasi | registration | 01–10, 81 | 11 |
| Informasi Saldo | balanceinfo | 11 | 1 |
| Riwayat Transaksi | transactionhistory | 12–14 | 3 |
| Transfer Kredit | transfercredit | 15–53, 75–78 | 43 |
| Transfer Debit | transferdebit | 54–72, 79–80 | 21 |
| Keamanan | package snap di root (Authentication) | 73–74 | — |
| Administrasi | (tidak ada endpoint API di portal — hanya dokumen onboarding) | — | — |
Endpoint Access Token milik Keamanan ditaruh di package root, bukan subpackage sendiri: setiap package lain butuh endpoint ini hanya untuk mendapatkan token, jadi sifatnya infrastruktur, bukan domain yang setara.
Desain
snap di root hanya menyimpan apa yang dibutuhkan setiap package domain: signing request, siklus hidup access-token, verifikasi request masuk, penyusunan header, parsing kode respons, dan tipe Money yang dipakai bersama. Setiap package domain memetakan 1:1 ke satu kategori portal ASPI.responseCode SNAP, tidak pernah sebaliknya), lalu unmarshal ke response bertipe.omitempty; field yang bentuknya ambigu atau tidak dispesifikasikan dimodelkan sebagai json.RawMessage, bukan ditebak.net/http, crypto/rsa, crypto/hmac, encoding/json.