Dokumentasi API

Generate QR MPM

API NameGenerate QR MPM
FunctionAPI yang digunakan untuk membuat QRIS dari mitra ke PakaiLink selaku acquirer. 
Service Code47
MethodPOST
URL/snap/v1.0/qr/qr-mpm-generate
Content Typeapplication/json
Related ServiceQRIS MPM (Acquirer)

Request​

Header​

NoNameTypeLengthRequiredConditionRemarks
1Content-TypeStringVariable, 127 maxWajibTipe konten, nilai selalu application/json
2AuthorizationStringVariableWajibBerisikan B2B Bearer JWT Token, yang didapatkan dari Access Token B2B
3X-TIMESTAMPStringFixed, 25 maxWajibWaktu transaksi, dalam format YYYY-MM-DDTHH:mm:ss+07:00. Zona waktu harus GMT+7 (Jakarta time)
4X-PARTNER-IDStringVariable, 36 maxWajibID untuk mitra yang dihasilkan oleh PakaiLink. Unique ID untuk mitra
5X-EXTERNAL-IDStringVariable, 36 maxWajibMessaging reference ID unik yang dihasilkan oleh merchant. Numeric String. Nomor referensi harus unik di hari yang sama.
6CHANNEL-IDStringVariable, 5 maxWajibIdentifikasi perangkat dimana API Service ini sedang diakses oleh pengguna. Daftar Channel ID dapat dilihat di sini.
7X-SIGNATUREStringVariableWajibSignature harus dihasilkan dengan metode Symmetric Signature

Body​

NoNameTypeLengthRequiredConditionRemarks
1merchantidStringVariable, 64 maxWajibPengidentifikasi unik untuk masing-masing mitra.
2storeIdStringVariable, 64 maxOptionalPengidentifikasi unik untuk masing-masing mitra. 
3terminalIdStringVariable, 16 maxOptionalPengidentifikasi unik untuk masing-masing mitra.
4partnerReferenceNoStringVariable, 64 maxWajibUnique transaction identifier on partner system which assigned to each transaction
5amountMoneyVariableWajibBerisi dua sub-field. Nilai: Total Amount, termasuk pecahan Mata uang: Kode mata uang berdasarkan ISO
7validityPeriodStringFixed, 25 maxOptionalDurasi QRIS valid, dalam format YYYY-MM-DDTHH:mm:ss+07:00. Zona waktu harus GMT+7 (waktu Jakarta). Jika mitra tidak mengisi data ini, maka akan diatur secara default selama 1 jam.
8additionalInfoJSON ObjectVariableWajibInformasi tambahan
9additionalInfo.callbackStringVariableWajibURL untuk dapat menerima notifikasi pembayaran setelah pembayaran dilakukan oleh pelanggan.

Contoh Request​

POST /snap/v1.0/qr/qr-mpm-generate
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJQQUtBSUxJTksiLCJqdGkiOiIyNDc0NzdlNjk0ZGM3N2FhZDU5YzA4MjA1NzdmZmViNyIsImV4cCI6MTE3NDAyOTc2NzgsImFzIjoicGFydG5lciIsImlkIjoiUFRSMDAwMDAwMyJ9.XmUxHExWILJCHJG74Af8TPJljX2aOmUz4UwJXumxkqxW9uDsIrSX_M_j0uRzPOmaBkk2_rQiHIo_OX_qxv45Mg
Content-Type: application/json
X-TIMESTAMP: 2025-01-30T12:38:12+07:00
X-PARTNER-ID: PTR0000003
X-EXTERNAL-ID: 1098449924
X-SIGNATURE: AaE7rxaiIFPQYryj+JxwOi826dQG4e8RbzagEBaAywS4ETa490Cy/3b1/Ljqput67EF+OgE0V1GDw2t/lxqEJw==
CHANNEL-ID: 95221
{
    "merchantId": "1031964782",
    "storeId": "12333",
    "terminalId": "ID1024361878720",
    "partnerReferenceNo": "Mkbk7WbPyEB3PAYDI5ZlunhK02qOG8cPEZ4B",
    "amount": {
        "value": "10000.00",
        "currency": "IDR"
    },
    "validityPeriod": "2025-03-06T23:59:59+07:00",
    "additionalInfo": {
        "callbackUrl": "http://localhost:10007/callback/partner"
    }
}

Response​

Body​

NoNameTypeLengthRequiredConditionRemarks
1responseCodeStringFixed, 7 maxWajibLihat daftar kode response.
2responseMessageStringVariable, 150 maxWajibLihat daftar kode response.
3referenceNoStringVariable, 64 maxOptionalID transaksi di PakaiLink
4partnerReferenceNoStringVariable, 64 maxOptionalPengidentifikasi transaksi unik pada sistem mitra yang ditetapkan untuk setiap transaksi
5qrContentStringVariable, 512 maxWajibQR String MPM
6merchantNameStringVariable, 25 maxOptionalNama merchant
7storeIdStringVariable, 64 maxOptionalID unik milik toko merchant
8terminalIdStringVariable, 16 maxOptionalPengidentifikasi unik untuk masing-masing merchant.
9validityPeriodStringFixed, 25 maxOptionalDurasi QRIS valid, dalam format YYYY-MM-DDTHH:mm:ss+07:00. Zona waktu harus GMT+7 (waktu Jakarta). Jika mitra tidak mengisi data ini, maka akan diatur secara default selama 1 jam.
10amountMoneyVariableOptionalBerisi dua sub-field. Nilai: Total Amount, termasuk pecahan Mata uang: Kode mata uang berdasarkan ISO
11feeAmountMoneyVariableOptionalBerisi dua sub-field. Nilai: Total Amount, termasuk pecahan Mata uang: Kode mata uang berdasarkan ISO

Contoh Response​

{
  "responseCode": "2004700",
  "responseMessage": "Successful",
  "referenceNo": "QRA0000038",
  "partnerReferenceNo": "Mkbk7WbPyEB3PAYDI5ZlunhK02qOG8cPEZ4B",
  "qrContent": "00020101021226640017ID.CO.DANAMON.WWW0118936000110000063204021012126070280303UKE51440014ID.CO.QRIS.WWW0215LQ12309846890140303UKE626001090000038070510QRA00000380709LI307GXIN9916000200010647875153033605405100006008SIDOARJO520459995915Merchant LinkQu5802ID61056125363041BD6",
  "merchantName": "HoreStudio",
  "storeId": "12333",
  "terminalId": "ID1024361878720",
  "validityPeriod": "2025-03-06T23:59:59+07:00",
  "amount": {
    "currency": "IDR",
    "value": "10000.00"
  },
  "feeAmount": {
    "currency": "IDR",
    "value": "3000.00"
  }
}

Kode dan Pesan Response

NoResponse CodeResponse MessageRemarks
12004700SuccessfulRequest telah berhasil diproses tanpa ada masalah.
24004701Invalid Field FormatPanjang informasi tidak boleh melebihi 150 karakter.
34004702Invalid Mandatory FieldKolom atau field yang wajib diisi tidak lengkap atau formatnya tidak sesuai dengan yang diharapkan.
44014700Unauthorized. [reason]Kesalahan umum yang terjadi ketika pengguna atau sistem tidak memiliki izin untuk mengakses tindakan tertentu.
54014701Invalid Token (B2B)Token akses yang digunakan untuk otentikasi tidak sah atau sudah kedaluwarsa.
64034702Exceeds Transaction Amount LimitJumlah uang terkecil atau terbesar yang dapat diproses dalam transaksi
74044708Invalid MerchantMerchant tidak ada atau dalam status abnormal
84094700ConflictX-EXTERNAL-ID tidak dapat digunakan lebih dari sekali dalam satu hari yang sama
94094701Duplicate partnerReferenceNoNomor referensi mitra (partnerReferenceNo, trxId) yang digunakan sudah terdaftar atau digunakan sebelumnya dalam sistem
105004702Backend system failureKesalahan yang terjadi di server saat mencoba memproses request