Account Inquiry

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/emoney/bank-account-inquiry"
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;
}

Account Inquiry

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
partnerReferenceNostringOptional

Transaction identifier on service consumer system, generated by Doku partner

Example: hsjkans284b2he54
customerNumberstringRequired

Customer phone number with 62 or 0 prefix

Example: 628115678890
beneficiaryAccountNumberstring · max: 32Required

Destination account number

Example: 8377388292
Responses
200

Transfer bank processed

application/json
post
POST /snap/v1.1/emoney/bank-account-inquiry 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: 276

{
  "partnerReferenceNo": "hsjkans284b2he54",
  "customerNumber": "628115678890",
  "amount": {
    "value": "200000.00",
    "currency": "IDR"
  },
  "beneficiaryAccountNumber": "8377388292",
  "additionalInfo": {
    "beneficiaryBankCode": "014",
    "beneficiaryAccountName": "FHILEA HERMANUS",
    "senderCountryCode": "ID"
  }
}
{
  "responseCode": 2004200,
  "responseMessage": "Successful",
  "referenceNo": "I0438729855304540",
  "partnerReferenceNo": "hsjkans284b2he54",
  "beneficiaryAccountNumber": "8377388292",
  "beneficiaryAccountName": "SUHUT",
  "beneficiaryBankCode": "014",
  "beneficiaryBankShortName": "Bank Central Asia BCA",
  "beneficiaryBankName": "Bank Central Asia BCA",
  "amount": {
    "value": "200000.00",
    "currency": "IDR"
  },
  "sessionId": "I0438729855304540",
  "additionalInfo": {
    "senderCountryCode": "ID",
    "forexRate": "1.00",
    "forexOriginCurrency": "IDR",
    "feeAmount": "4500.00",
    "feeCurrency": "IDR",
    "beneficiaryAmount": "200000.00",
    "referenceNumber": "c5fe5465-0843-4ac7-9c93-57cb2c5ef6b2"
  }
}

Last updated

Was this helpful?