Symmetric Signature
Symmetric Signature digunakan untuk melakukan verifikasi permintaan layanan SNAP Anda. Signature ini dihasilkan menggunakan client secret dengan algoritma SHA-512 HMAC, kemudian encode hasilnya dalam format Base64 untuk memastikan keamanan dan integritas data.
Pembuatan Signature
- Siapkan data yang diperlukan untuk membuat signature.
- Minify request body
HTTP body before minify:{
"partnerServiceId": " 12334",
"customerNo" : "318574181222",
"virtualAccountName" : "Setya Wardana",
"trxId": "2MkdEnmf434udFGuk1hE9sFL49Myv2q4xTQP",
"virtualAccountTrxType": "C",
"totalAmount": {
"value": "10000.00",
"currency": "IDR"
},
"additionalInfo": {
"callbackUrl": "http://partner-domain/callback",
"bankCode": "008"
}
}
HTTP body after minify:{"partnerServiceId":"12334","customerNo":"318574181222","virtualAccountName":"SetyaWardana","trxId":"2MkdEnmf434udFGuk1hE9sFL49Myv2q4xTQP","virtualAccountTrxType":"C","totalAmount":{"value":"10000.00","currency":"IDR"},"additionalInfo":{"callbackUrl":"http://127.0.0.1:10007/callback/partner","bankCode":"008"}}
- Lowercase(HexEncode(SHA-256(RequestBody))).
Mengubah request body menjadi hash menggunakan SHA-256, kemudian konversi hasil hash tersebut ke dalam format Hexadecimal, dan terakhir mengubah seluruh hasilnya menjadi huruf kecil.080fd80881349db059d87cc2a93af2ec9c00c74dac5e97faca0b544732c8de18
- Compose string untuk proses sign.
Membuat sebuah string gabungan yang akan digunakan untuk menghasilkan signature digital. String ini biasanya terdiri dari beberapa elemen penting, yaitu sebagai berikut:<HTTP METHOD> + ":" + <RELATIVE PATH URL> + ":" + <ACCESS TOKEN B2B> + ":" + LowerCase(HexEncode(SHA-256(Minify(<HTTP BODY>)))) + ":" + <X-TIMESTAMP>
Contoh:POST:/snap/v1.0/transfer-va/create-va:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJQQUtBSUxJTksiLCJqdGkiOiIyNDc0NzdlNjk0ZGM3N2FhZDU5YzA4MjA1NzdmZmViNyIsImV4cCI6MTE3NDAyOTc2NzgsImFzIjoicGFydG5lciIsImlkIjoiUFRSMDAwMDAwMyJ9.XmUxHExWILJCHJG74Af8TPJljX2aOmUz4UwJXumxkqxW9uDsIrSX_M_j0uRzPOmaBkk2_rQiHIo_OX_qxv45Mg:080fd80881349db059d87cc2a93af2ec9c00c74dac5e97faca0b544732c8de18:2025-01-30T12:38:12+07:00
- Enkripsi String signature dari proses sebelumnya ke SHA-512 HMAC menggunakan Client Secret, kemudian ubah menjadi format Base64. Berikut contoh nilai yang dihasilkan:
HFplT7auM0pHh9tOBl8gTpsQ4kDERjgi6SNAG+WEyA+ThpuquMknqV8EpLMS0lzi9DVOrseXjqdh+fl5XLN39A==
- Tempatkan string signature pada header HTTP dengan nama “X-SIGNATURE” untuk memastikan keamanan dan validitas permintaan.
X-SIGNATURE:
HFplT7auM0pHh9tOBl8gTpsQ4kDERjgi6SNAG+WEyA+ThpuquMknqV8EpLMS0lzi9DVOrseXjqdh+fl5XLN39A==