Skip to main content

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:

NoNama APIDeskripsi
1Buat QR MPMAPI ini digunakan untuk membuat QRIS dari pedagang ke Paydia sebagai pihak penerima
2Pertanyaan Status TransaksiAPI ini digunakan untuk menanyakan status pembayaran dan informasi dari pedagang ke Paydia
3Pengembalian PembayaranAPI ini digunakan untuk mengembalikan pembayaran dari platform pedagang ke Paydia
4Pemberitahuan PembayaranAPI 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
  1. Compose string yang akan ditandatangani:
  2. X-CLIENT-KEY + "|" + X-TIMESTAMP
  3. 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.
  4. Letakkan string Signature ke header HTTP “X-SIGNATURE“ saat memanggil API untuk menerapkan token akses B2B.
Signature Transaksi
  1. Compose string yang akan ditandatangani:
  2. HTTP METHOD + ”:” + RELATIVE PATH URL + “:“ + B2B ACCESS TOKEN + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP
  3. 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.
  4. Letakkan string Signature ke header HTTP “X-SIGNATURE“ saat memanggil API Paydia.

Validasi Signature Digital

Terapkan Signature Token B2B

Langkah-langkah berikut adalah Pembuatan Signature digital:

  1. Ambil Signature dari header HTTP “X-SIGNATURE“.
  2. Deskripsi Signature menggunakan kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk menghasilkan Signature.
  3. Verifikasi kebenaran Signature berdasarkan SHA-256 dengan enkripsi Signature RSA-2048 terhadap string yang akan ditandatangani.
  4. Jika verifikasi benar, maka konsumsi pesan tersebut.
Signature Transaksi
  1. Compose string yang akan ditandatangani:
  2. HTTP METHOD + ”:” + RELATIVE PATH URL + “:“ + B2B ACCESS TOKEN + “:“ + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY)))) + “:“ + X-TIMESTAMP
  3. 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.
  4. Ambil Signature dari header HTTP “X-SIGNATURE“.
  5. Bandingkan nilai antara X-SIGNATURE dan Signature yang dihasilkan, jika nilai-nilai tersebut sama, maka konsumsi pesan tersebut.

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
  • openssl genrsa -out rsa_private_key.pem 2048
  • Ekspor Kunci Publik
  • openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout
  • Kodekan Kunci Pribadi ke PKCS#8
  • 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:

  1. Compose string yang akan ditandatangani:
    • Terapkan token:
    • X-CLIENT-KEY + "|" + X-TIMESTAMP
    • Transaksional:
    • HTTP METHOD + ":" + RELATIVE PATH URL + ":" + LowerCase(HexEncode(SHA-256(Minify(HTTP BODY))) + ":" + X-TIMESTAMP
  2. 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.
  3. Letakkan string Signature ke header HTTP “X-SIGNATURE“.

Contoh:

X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5

Validasi Signature Digital

Berikut adalah langkah-langkah validasi Signature digital:

  1. Ambil Signature dari header HTTP “X-SIGNATURE“.
  2. Dekripsi Signature menggunakan kunci publik yang sesuai dengan kunci pribadi yang digunakan untuk menghasilkan Signature.
  3. Verifikasi kebenaran Signature berdasarkan SHA-256 dengan enkripsi Signature RSA-2048 terhadap string yang akan ditandatangani.
  4. Jika verifikasi benar, maka konsumsi pesan tersebut.

Versi Dokumen

Tabel berikut digunakan untuk menunjukkan versi dokumen ini:

NoTanggalVersiCatatanHalaman
110 Mei 20231.2.2
  • Menghapus B2B ACCESS TOKEN pada Pembuatan Signature Digital
  • Menghapus bagian General Respone Code
220 Oktober 20221.0.0Rilis AwalSemua halaman SNAP