Check Status

Pre-request Script Example

var CryptoJS = require("crypto-js");
var moment = require("moment");
var navigator = {}; //fake a navigator object for the lib
var window = {}; //fake a window object for the lib
eval(postman.getGlobalVariable("jsrsasign-js")); //import javascript jsrsasign


const secretKey = pm.environment.get('SECRET_KEY');
const path = "/snap/v1.1/qr/qr-mpm-status"
signRequest(pm.request, path)

pm.globals.set("trx_id",  _.random(1,99999999));


function signRequest(request, path) {

    const date = new Date().toISOString();
    const dateIso = moment(date).format('YYYY-MM-DDTHH:mm:ssZ') 
     pm.globals.set('X-TIMESTAMP', dateIso);
    
    console.log('date: ' + dateIso);
    const method = request.method;
    console.log('method: ' + method);
    console.log('path: ' + path);
    const body = request.body.raw;
    var jsonObject = JSON.parse(body);
    var minifyJsonObject = JSON.stringify(jsonObject, null, 0)
    console.log('minifyJsonObject: ' + minifyJsonObject);
    const bodyToHash = CryptoJS.SHA256(minifyJsonObject);
    // const bodySha256 = CryptoJS.enc.Base64.stringify(CryptoJS.SHA256(minifyJsonObject)).toLowerCase();
    const bodySha256 = bodyToHash.toString(CryptoJS.enc.Hex);
    const accessToken = pm.globals.get('ACCESS_TOKEN');
    console.log('access token :' + accessToken);
    console.log('bodySha256: ' + bodySha256);
    const data = `${method}:${path}:${accessToken}:${bodySha256}:${dateIso}`
    console.log('stringtosign: ' + data);

   const signatureHash =  createSignature(data, secretKey)
   console.log('signature :' + signatureHash);
    pm.globals.set("X-SIGNATURE", signatureHash);
    
}

function createSignature(rawData, secretKey){
    let signatureUtf8 = CryptoJS.enc.Utf8.parse(rawData);
    var secretUtf8 = CryptoJS.enc.Utf8.parse(secretKey);
    console.log("secretKey: " + secretKey);
    var signatureBytes = CryptoJS.HmacSHA512(signatureUtf8,secretUtf8);
    var requestSignatureBase64String = CryptoJS.enc.Base64.stringify(signatureBytes);
    return requestSignatureBase64String;
}

Check Status

post
Header parameters
X-EXTERNAL-IDstringRequired

Numeric String. Reference number that should be unique in the same day (Request Id)

Example: 41807553358950093184162180797837
X-PARTNER-IDstringRequired

Client Id for merchant that generated by DOKU

Example: BRN-0240-1657686175289
X-SIGNATUREstringRequired

Symmetric Signature with Get Token (Default)HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp

Example: ieNOENDdN4MnectGytx5UvmOfASZ2oGWMCJ8gVqkw3tB98ofgY9cbxSeY4IYoYeoKs+0QP4h8BTBhemlfeXp1w==
X-TIMESTAMPstringRequired

Client's current local time with format YYYY-MM-DDTHH:mm:ssZD

Example: 2020-12-21T14:56:11+07:00
CHANNEL-IDstringRequired

refers to a unique identifier for the channel or method used to initiate a payment transaction

Example: H2H
Body
originalPartnerReferenceNostring · max: 64Required

Original transaction identifier on service consumer system. Filled with partnerReferenceNo from remit/transfer API

Example: hsjkans284b2he54
originalReferenceNostring · max: 64Optional

Original transaction identifier on service provider system. Can be filled with referenceNo or sessionId from remit/transfer API.

Example: hsjkans284b2he54
originalExternalIdstring · max: 32Optional

Original transaction identifier on service provider system. Can be filled with X-EXTERNAL_ID from remit/transfer API.

Example: 892834eWg
serviceCodestring · max: 2Required

Transaction type indicator (service code of the original transaction request).

Example: 43
Responses
200

check status processed

application/json
post
POST /snap/v1.1/qr/qr-mpm-status HTTP/1.1
Host: api-sandbox.doku.com
X-EXTERNAL-ID: text
X-PARTNER-ID: text
X-SIGNATURE: text
X-TIMESTAMP: text
CHANNEL-ID: text
Content-Type: application/json
Accept: */*
Content-Length: 142

{
  "originalPartnerReferenceNo": "hsjkans284b2he54",
  "originalReferenceNo": "hsjkans284b2he54",
  "originalExternalId": "892834eWg",
  "serviceCode": "43"
}
{
  "responseCode": 2005300,
  "responseMessage": "Successful",
  "originalReferenceNo": "DK01123220",
  "originalPartnerReferenceNo": "2020102900000000000001",
  "serviceCode": 43,
  "latestTransactionStatus": "00",
  "amount": {
    "value": "65000.00",
    "currency": "IDR"
  },
  "transactionDate": "2024-09-17T14:41:52. 022+07:00",
  "originalResponseCode": 0,
  "originalResponseMessage": "Transfer Approve",
  "transactionStatusDesc": "Transaction is successfully processed",
  "sessionId": "I0438729855304540",
  "additionalInfo": {
    "cashInTime": "2024-09-17 13:56:57",
    "remark": "Remark test",
    "beneficiaryAmount": "200000.00"
  }
}

Last updated

Was this helpful?