Dokumentasi API

Asymmetric Signature

Asymmetric Signature digunakan untuk melakukan verifikasi permintaan Access Token. Proses pembuatan signature dilakukan menggunakan private key. Sistem PakaiLink mendukung format PKCS#8 untuk private key, sehingga merchant akan diminta untuk membuat signature menggunakan file pkcs8_rsa_private_key.pem. Signature yang dihasilkan kemudian akan diverifikasi menggunakan public key yang disimpan dalam file rsa_public_key.pem. PakaiLink menggunakan algoritma SHA256withRSA, dengan tipe format yang diterapkan adalah Base64.

Pembuatan Asymmetric Key

  1. Gunakan perintah berikut untuk menghasilkan private key RSA: openssl genrsa -out rsa_private_key.pem 2048
  2. Setelah private key dibuat, ekstrak public key dengan perintah ini: openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout
  3. Konversi private key ke format PKCS#8 untuk meningkatkan kompatibilitas: openssl pkcs8 -topk8 -in rsa_private_key.pem -out pkcs8_rsa_private_key.pem -nocrypt

Setelah merchant berhasil memperoleh public key, langkah selanjutnya adalah membagikan key tersebut ke PakaiLink untuk melanjutkan proses pembuatan signature.

Pembuatan Signature

  1. Siapkan data yang diperlukan untuk menghasilkan signature digital. No Data Keterangan Contoh 1 X-CLIENT-KEY Identifier unik untuk mitra, yang dikenal sebagai clientId, dihasilkan secara otomatis oleh PakaiLink untuk memastikan setiap mitra memiliki identitas yang unik dan ter verifikasi. ac517edf8c7ca47b9b3a334dd8bacb59 2 X-TIMESTAMP Tanggal dan waktu transaksi harus mengikuti format YYYY-MM-DDTHH:mm:ss+07:00, dengan waktu yang disesuaikan dengan GMT+7 (Waktu Jakarta), untuk memastikan kesesuaian dengan zona waktu lokal. 2025-01-30T12:38:12+07:00  
  2. Gabungkan nilai X-CLIENT-KEY dan X-TIMESTAMP menggunakan tanda pipe (|) untuk membentuk string yang siap untuk proses sign. Berikut contoh formatnya:
    ac517edf8c7ca47b9b3a334dd8bacb59|2025-01-30T12:38:12+07:00  
  3. String signature dibuat dengan mengenkripsi string yang telah disusun menggunakan algoritma SHA-256 dengan enkripsi RSA-2048 menggunakan private key dalam format PKCS#8 atau PKCS#1, lalu encode hasil enkripsi tersebut ke dalam format Base64 untuk menghasilkan signature yang dapat digunakan dalam proses verifikasi. IzAqHsx6ygZV6sWW6ng9QtfHOsrNaxUo3brQz+1oZ26RJp6NGOTmPyipKvs2whoTURh9ZMx8ao6rUYRdsbN16rGuLqxbzD70IcWYIbitXbgVCRt5Dx0BogynF2pZBcS+BJNhdgRqlSJQXjI3YhuSzbmEE1O1wYycWDqSksP1VwGLIhj87Xl837GTqK8AT7dP/Bq4/pjGFfpl60BrKtkw58waHMY/S4leUbo+XWT92SzCtjjJmb9rwTDlSJbUPHjJCarQC+02+A7dnTedo0/ckSPrpqzOmRwlXPhAZF+E+Edj0TPXlvYkuLBc+Svag3PUMWy7+GAYRoupfC6mKydfgA==  
  4. Letakkan string signature hasil encode ke dalam header HTTP X-SIGNATURE, seperti contoh berikut:
    Format: X-SIGNATURE: <Base64_Encoded_Signature> Contoh: X-SIGNATURE: IzAqHsx6ygZV6sWW6ng9QtfHOsrNaxUo3brQz+1oZ26RJp6NGOTmPyipKvs2whoTURh9ZMx8ao6rUYRdsbN16rGuLqxbzD70IcWYIbitXbgVCRt5Dx0BogynF2pZBcS+BJNhdgRqlSJQXjI3YhuSzbmEE1O1wYycWDqSksP1VwGLIhj87Xl837GTqK8AT7dP/Bq4/pjGFfpl60BrKtkw58waHMY/S4leUbo+XWT92SzCtjjJmb9rwTDlSJbUPHjJCarQC+02+A7dnTedo0/ckSPrpqzOmRwlXPhAZF+E+Edj0TPXlvYkuLBc+Svag3PUMWy7+GAYRoupfC6mKydfgA==