QRIS MPM (Acquirer)
Ringkasan
Layanan ini digunakan untuk memungkinkan pedagang menerima pembayaran QRIS MPM dengan integrasi API ke Paydia sebagai pihak penerima. Dalam layanan ini, terdapat 4 API. Informasi rinci akan dijelaskan pada bagian selanjutnya.
Spesifikasi API Paydia akan mencakup 4 titik utama sebagai berikut:
No | Nama API | Deskripsi |
---|---|---|
1 | Buat QR MPM | API ini digunakan untuk membuat QRIS dari pedagang ke Paydia sebagai pihak penerima |
2 | Pertanyaan Status Transaksi | API ini digunakan untuk menanyakan status pembayaran dan informasi dari pedagang ke Paydia |
3 | Pengembalian Pembayaran | API ini digunakan untuk mengembalikan pembayaran dari platform pedagang ke Paydia |
4 | Pemberitahuan Pembayaran | API ini digunakan untuk memberi tahu status pembayaran dan informasi dari Paydia kepada pedagang |
Pembuatan dan Validasi Signature
Berikut akan dijelaskan tentang Pembuatan dan validasi Signature.
Simetris dengan Token Akses B2B (HMAC_SHA512)
Langkah-langkah berikut akan menjelaskan tentang Simetris dengan Token Akses B2B (HMAC_SHA512).
Pembuatan Signature Digital
Terapkan Signature Token B2B
- Compose string yang akan ditandatangani:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan SHA-256 dengan enkripsi RSA-2048 menggunakan kunci pribadi pkcs8, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke header HTTP “X-SIGNATURE“ saat memanggil API untuk menerapkan token akses B2B.
X-CLIENT-KEY + "|" + X-TIMESTAMP |
Signature Transaksi
- Compose string yang akan ditandatangani:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan HMAC_SHA512 hashing menggunakan kunci rahasia yang diberikan oleh Paydia, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke header HTTP “X-SIGNATURE“ saat memanggil API Paydia.
HTTP METHOD + ”:” + RELATIVE PATH URL + “:“ + B2B ACCESS TOKEN + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP |
Validasi Signature Digital
Terapkan Signature Token B2B
Langkah-langkah berikut adalah Pembuatan Signature digital:
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Deskripsi Signature menggunakan kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk menghasilkan Signature.
- Verifikasi kebenaran Signature berdasarkan SHA-256 dengan enkripsi Signature RSA-2048 terhadap string yang akan ditandatangani.
- Jika verifikasi benar, maka konsumsi pesan tersebut.
Signature Transaksi
- Compose string yang akan ditandatangani:
- Hasilkan Signature dari string yang akan ditandatangani di atas dengan menerapkan penggabungan HMAC_SHA512 menggunakan kunci rahasia yang diberikan oleh Paydia, dan kemudian kodekan hasilnya ke base64.
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Bandingkan nilai antara X-SIGNATURE dan Signature yang dihasilkan, jika nilai-nilai tersebut sama, maka konsumsi pesan tersebut.
HTTP METHOD + ”:” + RELATIVE PATH URL + “:“ + B2B ACCESS TOKEN + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP |
Asimetris tanpa Token Akses (SHA256withRSA)
Langkah-langkah berikut akan menjelaskan tentang Asimetris tanpa Token Akses (SHA256withRSA).
Pembuatan Kunci Asimetris
Berikut akan dijelaskan tentang Pembuatan kunci asimetris:
- Buat Kunci Pribadi
- Ekspor Kunci Publik
- Kodekan Kunci Pribadi ke PKCS#8
openssl genrsa -out rsa_private_key.pem 2048 |
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout |
openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt |
Mittra harus menghasilkan Signature dengan pkcs8_rsa_private_key.pem dan Paydia akan menggunakan rsa_public_key.pem untuk memvalidasi Signature dan sebaliknya.
Pembuatan Signature Digital
Berikut adalah langkah-langkah Pembuatan Signature digital:
- Compose string yang akan ditandatangani:
- Terapkan token:
- Transaksional:
- String Signature dihasilkan dari string yang akan ditandatangani di atas dengan menerapkan SHA-256 dengan enkripsi RSA-2048 menggunakan kunci pribadi pkcs8, dan kemudian kodekan hasilnya ke base64.
- Letakkan string Signature ke header HTTP “X-SIGNATURE“.
X-CLIENT-KEY + "|" + X-TIMESTAMP |
HTTP METHOD + ":" + RELATIVE PATH URL + ":" + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY))) + ":" + X-TIMESTAMP |
Contoh:
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5 |
Validasi Signature Digital
Berikut adalah langkah-langkah validasi Signature digital:
- Ambil Signature dari header HTTP “X-SIGNATURE“.
- Dekripsi Signature menggunakan kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk menghasilkan Signature.
- Verifikasi kebenaran Signature berdasarkan SHA-256 dengan enkripsi Signature RSA-2048 terhadap string yang akan ditandatangani.
- Jika verifikasi benar, maka konsumsi pesan tersebut.
Versi Dokumen
Tabel berikut digunakan untuk menunjukkan versi dokumen ini:
No | Tanggal | Versi | Catatan | Halaman |
---|---|---|---|---|
1 | 10 Mei 2023 | 1.2.2 |
| |
2 | 20 Oktober 2022 | 1.0.0 | Rilis Awal | Semua halaman SNAP |