Pengenalan SNAP
Mengenai SNAP
SNAP (Standar Nasional Open API Pembayaran) adalah standar API pembayaran di Indonesia yang ditetapkan oleh Bank Indonesia dan dikelola bersama ASPI (Asosiasi Sistem Pembayaran Indonesia). Standar ini bertujuan agar penyedia payment gateway seperti NICEPAY dapat berkomunikasi dengan cara yang selaras.
Berdasarkan portal dev SNAP Bank Indonesia, SNAP mengatur tiga hal utama:
- Format dan URL API yang terstandar. Path endpoint, nama field, dan struktur response mengikuti spesifikasi yang sama bagi seluruh penyedia.
- Standar keamanan. Setiap request membutuhkan Access Token dan Signature digital.
- Response code yang terstruktur. Setiap kode berisi informasi status, layanan, dan kasus.
Komponen Sebuah Request SNAP API
Setiap request API SNAP terdiri dari beberapa komponen berikut.
Komponen | Fungsi |
|---|---|
Endpoint | URL standar, misal /nicepay/v1.0/access-token/b2b untuk mengajukan token. |
Access Token | Otorisasi akses, berlaku 15 menit, dikirim sebagai Authorization: Bearer {accessToken}. |
Signature | Tanda tangan digital pada header X-SIGNATURE untuk menjamin integritas dan non-repudiation. |
Timestamp | Header X-TIMESTAMP dengan format ISO-8601, ikut ditandatangani untuk mencegah request lama dipakai ulang. |
Identitas partner | Client ID dari NICEPAY, dikirim di header X-CLIENT-KEY |
Body | Data transaksi dalam format JSON dengan nama field sesuai standar SNAP. |
Response code | Kode 7 digit yang menjelaskan hasil request. |
Rincian cara mendapatkan Access Token dan membuat Signature dapat dilihat pada halaman Authentication - SNAP.
Header yang Umum Dipakai
Header | Dipakai pada | Keterangan |
|---|---|---|
Content-Type | Semua request | application/json |
X-TIMESTAMP | Semua request | Waktu request, ISO-8601 dengan zona waktu GMT+7, contoh 2024-12-31T10:11:40+07:00 |
X-CLIENT-KEY | Request Access Token | Client ID dari NICEPAY |
X-SIGNATURE | Semua request | Signature digital yang dibuat Merchant |
Authorization | Request layanan | Bearer {accessToken} |
X-PARTNER-ID | Request layanan | Client ID dari NICEPAY |
X-EXTERNAL-ID | Request layanan | Nomor referensi unik untuk setiap request yang dibuat |
CHANNEL-ID | Request layanan | Client ID ditambah 01 |
Memahami Response Code SNAP
Kode response SNAP terdiri dari 7 digit dengan tiga bagian:
Bagian | Jumlah digit | Arti |
|---|---|---|
Status HTTP | 3 | Contoh: 200 Berhasil 400 Request Salah 401 Tidak Terotorisasi |
Kode layanan (service code) | 2 | Menunjukkan layanan yang dipanggil |
Kode kasus (case code) | 2 | Menjelaskan rincian hasil |
Contoh: 2007300
- 200 adalah status HTTP sukses.
- 73 adalah service code untuk Access Token.
- 00 adalah kasus sukses.
Silakan kunjungi halaman Authentication - SNAP untuk melihat daftar service code dan halaman General Response Code and Message - API SNAP untuk melihat daftar lengkap response code.
Layanan NICEPAY yang Mendukung SNAP
Layanan | API tersedia |
|---|---|
Virtual Account | |
E-Wallet (Direct Debit) | |
QRIS | |
Payout (Disbursement) |
Perbedaan dengan API NICEPAY Non-SNAP
Perbedaan antara API NICEPAY SNAP dengan Non-SNAP terdapat pada autentikasi dan format response. Setiap request SNAP menggunakan Access Token dan Signature digital serta response SNAP memiliki parameter dengan standar Bank Indonesia (seperti parameter responseCode milik standar Bank Indonesia dengan parameter responseCd milik NICEPAY).
Silakan periksa halaman Implementasi SNAP untuk panduan implementasi & migrasi yang lebih lengkap.