mandiri-va-direct-inquiry-snap
API Request
Type | Value |
---|---|
Service Code | 24 |
HTTP Method | POST |
Path | .../{version}/transfer-va/inquiry |
Here is the sample of request header for direct inquiry Mandiri VA :
'Content-Type: application/json'
'Authorization: Bearer scriptdummytoken'
'Accept: application/json'
'X-PARTNER-ID: 123-abc'
'X-EXTERNAL-ID: VIRTUAL_ACCOUNT2226230726182946130107164433001000268204'
'X-TIMESTAMP: 2023-07-26T18:29:46+07:00' \
'X-SIGNATURE: jhHSOrlcIEPCIQX2rG0eIIPo0eEuMZiLXVvqkUqj1cfu8IcBXTRPOCKPTfk7Gaq3AVsUIjAKYJEC5ELX2eGAZQ=='
'CHANNEL-ID: VA002'
Request Header Explanation
Parameter | Data Type | Type | Description |
---|---|---|---|
Content-type | string | Mandatory | String represents indicate the media type of the resource (e.g. application/json) |
X-TIMESTAMP | string | Mandatory | Client's current local time with format : YYYY-MM-DDTHH:mm:ssZD |
X-SIGNATURE | string | Mandatory | Represents signature of a request. Identify Signature Type used Value: 1. Symmetric Signature with Get Token (Default) HMAC_SHA512 (clientSecret, stringToSign) dengan formula stringToSign = HTTPMethod +”:“+ EndpointUrl +":"+ AccessToken +":“+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":“ + TimeStamp Notes : 1. The full URL endpoint includes all parameters in the associated URL 2. For the minify(Request Body) parameter, if there is no Request Body then an empty string is used. |
X-PARTNER-ID | string | Mandatory | Client Id for merchant that generated by DOKU |
X-EXTERNAL-ID | string | Mandatory | Numeric String. Reference number that should be unique in the same day (Request Id) |
Authorization | string | Mandatory | Represents access_token of a request; String starts with keyword “Bearer ” followed by access_token (e.g. Bearer eyJraWQiOi...Jzc29zIiwiY) |
Content type | string | Mandatory | String represents indicate the media type of the resource (e.g. application/json) |
CHANNEL-ID | string(5) | Mandatory | VA002 |
Here is the sample of request body for direct inquiry Mandiri VA :
{
"partnerServiceId": " 88899",
"customerNo": "8889912345678980002",
"virtualAccountNo": "8889912345678980002",
"trxDateInit": "2023-07-26T18:29:45+07:00",
"channelCode": "6011",
"language": "ID",
"inquiryRequestId": "R_1690370985"
}
Parameter | Type | Mandatory | Description |
---|---|---|---|
partnerServiceId | string(8) | Mandatory | This parameter is similar to company code/BIN, 8 digit left padding space. |
customerNo | string(20) | Mandatory | Unique number (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
virtualAccountNo | string(28) | Mandatory | partnerServiceId (8 digit left padding 0) + customerNo (up to 20 digits). partnerServiceId + customerNo or virtualAccountNo |
trxId | string(64) | Mandatory | Transaction ID in Partner system |
trxDateInit | string(25) | Mandatory | Transaction date. ISO-8601. Example: 2020-12- 31T23:59:59-07:00 |
channelCode | String(4) | Optional | Channel code from acquirer |
language | String(3) | Optional | Language used |
inquiryRequestId | String(64) | Optional | Reference number for tracking inquiry |
API Response
After hitting the above API request, DOKU will give the response.
Here is the sample of response header :
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
Response Header Explanation
Parameter | Data Type | Type | Description |
---|---|---|---|
X-Timestamp | string | Mandatory | Client's current local time with format YYYY-MM-DDTHH:mm:ssZ |
Type | Value |
---|---|
HTTP Status | 200 |
Result | SUCCESS |
Here is the sample of response body of success scenario :
{
"responseCode" : "2002400",
"responseMessage" : "Successful",
"virtualAccountData" : {
"partnerServiceId" : " 88899",
"customerNo" : "12345678980002",
"virtualAccountNo" : " 8889912345678980002",
"virtualAccountName" : "Jokul Doe 001",
"virtualAccountEmail" : "jokul@email.com",
"virtualAccountPhone" : "6281828384858",
"inquiryRequestId": "122421512521"
"trxId": "INV-1234",
"totalAmount" : {
"value" : "12345678.00",
"currency" : "IDR"
},
"billDetails" : [ {
"billCode" : "01",
"billNo" : "123456789012345678",
"billName" : "Bill A for Jan",
"billShortName" : "Bill A",
"billDescription" : {
"english" : "Maintenance",
"indonesia" : "Pemeliharaan"
},
"billSubCompany" : "00001",
"billAmount" : {
"value" : "10000.00",
"currency" : "IDR"
},
"additionalInfo" : { }
} ],
"freeTexts" : [ {
"english" : "Free text",
"indonesia" : "Tulisan bebas"
} ],
"virtualAccountTrxType" : "1",
"expiredDate" : "2020-12-31T23:59:59-07:00",
"additionalInfo" : {
"deviceId" : "12345679237",
"channel" : "mobilephone"
},
"inquiryStatus" : "00",
"inquiryReason" : {
"english" : "Success",
"indonesia" : "Sukses"
},
"inquiryRequestId" : "R_1690370985"
}
}
Response Body Explanation
Parameter | Type | Mandatory | Description |
---|---|---|---|
responseCode | string(7) | Mandatory | Response Code : HTTP status code + service code + case code |
responseMessage | string(150) | Mandatory | Response Description |
virtualAccountData.partnerServiceId | string(8) | Mandatory | similar to company code, 8 digit left padding space |
virtualAccountData.customerNo | String (20) | Optional | Unique number (up to 20 digits). partnerServiceId + customerNo = virtualAccountNo |
virtualAccountData.virtualAccountNo | String (28) | Optional | partnerServiceId (8 digit left padding 0) + customerNo up to 20 digits). |
virtualAccountData.virtualAccountName | string(255) | Mandatory | Customer Name |
virtualAccountData.virtualAccountEmail | string(255) | Optional | Customer Email |
virtualAccountData.virtualAccountPhone | string(30) | Optional | Customer Phone, Format: 62xxxxxxxxx xxxx |
virtualAccountData.inquiryRequestId | string(64) | Mandatory | Reference number for tracking inquiry |
virtualAccountData.trxId | string(64) | Mandatory | Transaction ID in Partner system |
virtualAccountData.totalAmount.value | string(8) | Optional | Transaction Amount. Total Amount with 2 decimal, format ISO 4217 |
virtualAccountData.totalAmount.Currency | string(3) | Optional | Currency. Example: IDR |
billDetails.billCode | string(2) | Optional | Bill code for Customer choose. Example : 01 |
billDetails.billNo | string(18) | Optional | Bill number from Partner |
billDetails.billName | string(20) | Optional | Bill Name |
billDetails.billShortName | string(10) | Optional | Bill Name to shown to |
billDetails.billDescription.english | string(18) | Optional | Bill Description in English |
billDetails.billDescription.indonesia | string(18) | Optional | Bill Description in Bahasa Indonesia |
billDetails.billSubCompany | string(5) | Optional | Partner’s product code |
billDetails.billAmount.value | String (16.2)(ISO 4217) | Optional | Transaction Amount. Nominal inputted by Customer with 2 decimal |
billDetails.billAmount.currency | string(3) | Optional | Currency |
billDetails.additionalInfo | Object(Unlimited) | Optional | Additional Information for custom use for each bill |
freeTexts.english | string(32) | Optional | This parameter will be shown in Channel |
freeTexts.indonesia | string(32) | Optional | This parameter will be shown in Channel |
virtualAccountTrxType | string(1) | Optional | Type of Virtual Account : C : closed paymentO : open payment |
feeAmount.value | String (16.2) | Optional | Format ISO 4217 |
feeAmount.currency | string(3) | Optional | Example : IDR |
expiredDate | string(25) | Optional | Expiration date for Virtual Account. ISO-8601. Example: 2020-12- 31T23:59:59-07:00 |
additionalInfo.deviceId | Object | Optional | Additional Information for payment media used |
additionalInfo.channel | Object | Optional | Additional Information for payment media used |
inquiryStatus | String (2) | Optional | Show inquiry status code |
inquiryReason.english | String | Optional | Success/ failed reason in English |
inquiryReason.indonesia | String | Optional | Success/ failed reason in Indonesia |
inquiryRequestId | String (64) | Optional | Reference number for tracking inquiry |