Destination Inquiry
POSThttps://<merchant_base_url>/destination/inquiry
This API is used by DANA to inquire user information to merchant in regards to billing information
API Type
DANA Open API
Expected Timeout
8 seconds
SNAP Service Code
-
Accept
application/json
Content Type
application/json
This API is used for the following solution:
Digital Goods are enables partners to provide digital products within the DANA system, from publishing and synchronizing product catalogs, validating customer information, creating transactions, to tracking order status.
HTTP Response Code
This API must return one of these HTTP response status for the following case:
| Response Code | Body | Description |
|---|---|---|
| 200 | OK | Success |
| 201 | Created | Order successfully created |
| 400 | Bad request | Empty mandatory or illegal parameter(s) |
| 401 | Unauthorized | Invalid authentication |
version
string
1 - 8 charactersRequiredAPI version. As per the respective API reference
function
string
1 - 128 charactersRequiredAccording to specifications defined by each business domain Value:
dana.digital.goods.destination.inquiryreqTime
string
25 charactersRequiredRequest time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
reqMsgId
string
1 - 64 charactersRequiredIdentify an unique system request. Each request will be assigned with a unique identifier (UUID)
destinationInfos
array of json object
RequiredDefine the detail of product, refer to
destinationInfoprimaryParam
string
1 - 64 charactersRequiredMandatory destination parameter, e.g.,
mobile phone number for mobile recharge, account identifier for game top upsecondaryParam
string
1 - 64 charactersSecondary destination parameter, e.g.,
server identifierbillAmount
money
User's bill amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
productId
string
1 - 64 charactersRequiredMerchant's product identifier
1. General Example
{
"request":{
"head":{
"version":"2.0",
"function":"dana.digital.goods.destination.inquiry",
"reqTime":"2018-07-04T12:08:56+07:00",
"reqMsgId":"1234567asdfasdf1123fd123123aasd123"
},
"body":{
"destinationInfos":[
{
"primaryParam":"111111111",
"secondaryParam":""
},
{
"primaryParam":"22222222",
"secondaryParam":""
}
],
"productId":"merchant_sku_1"
}
},
"signature":"signature string"
}
version
string
1 - 8 charactersRequiredAPI version. As per the respective API reference
function
string
1 - 128 charactersRequiredAccording to specifications defined by each business domain
Value: dana.digital.goods.destination.inquiryrespTime
string
25 charactersRequiredResponse time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
reqMsgId
string
1 - 64 charactersRequiredIdentify an unique system request. Each request will be assigned with a unique identifier (UUID)
inquiryResults
array of json object
RequiredDefine the detail of product, refer to
inquiryResultinquiryId
string
1 - 64 charactersRequiredInquiry identifier
inquiryStatus
json object
RequiredDefine the detail of billing inquiry status, refer to
inquiryStatuscode
string
1 - 8 charactersRequiredInquiry status code
status
string
1 - 16 charactersRequiredInquiry status
message
string
1 - 256 charactersRequiredInquiry status message
destinationInfo
json object
RequiredDefine the detail of product, refer to
destinationInfoprimaryParam
string
1 - 64 charactersRequiredMandatory destination parameter, e.g.,
mobile phone number for mobile recharge, account identifier for game top upsecondaryParam
string
1 - 64 charactersSecondary destination parameter, e.g.,
server identifierbillAmount
money
User's bill amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
customerName
string
1 - 128 charactersRequiredCustomer name of the bill owner
period
array of string
Billing period. In format the day with 01 and the time and timezone with 0 since only month and year information is needed.
For example:
["2001-07-01T00:00:00+00:00", "2001-08-01T00:00:00+00:00"]
For example:
["2001-07-01T00:00:00+00:00", "2001-08-01T00:00:00+00:00"]
totalAmount
money
RequiredThe total amount of bills that user need to pay. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
baseAmount
money
RequiredBase amount not including admin fee and fine amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
adminFee
money
Administration fee. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
providerName
string
128 charactersProvider name e.g.,PLN Palyja
fineAmount
money
Fine (penalty) amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
minimumPayAmount
money
ConditionalMinimum pay amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
Conditional Info
Y:=
bizType is CREDITCARDvalue
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
maximumPayAmount
money
ConditionalMaximum pay amount. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
Conditional Info
Y:=
bizType is CREDITCARDvalue
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
dueDate
string
25 charactersPayment due date, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
paymentCount
number
1 - 8 charactersInstallment or insurance payment count
familyNumber
string
1 - 64 charactersBPJS family number
familyCount
number
1 - 8 charactersConditionalBPJS family count
Conditional Info
Y:=
bizType is BPJSdetailAmount
json object
Define the detail of detail amount or nominal of the bill, refer to
billAmountperiod
string
RequiredMonth of the bill
amount
money
RequiredAmount of the bill. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
policeNumber
string
1 - 128 charactersPolice number
address
string
1 - 256 charactersBilling owner's address
standMeter
string
1 - 64 charactersStand meter
usage
string
1 - 64 charactersUsage
tagNonAir
money
Tag non air. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
load
string
1 - 64 charactersLoad
amount
string
1 - 128 charactersConditionalAmount or quantity of goods/service to be paid e.g.,
2000KWHConditional Info
Y:=
bizType is ELECTRICITY and ELECTRICITY_POSTmeterNumber
string
1 - 128 charactersConditionalElectricity meter number
Conditional Info
Y:=
bizType is ELECTRICITY and ELECTRICITY_POSTfare
string
1 - 128 charactersConditionalElectricity fare
Conditional Info
Y:=
bizType is ELECTRICITYtotalEnergy
string
1 - 128 charactersConditionalTotal energy
Conditional Info
Y:=
bizType is ELECTRICITYrefNumber
string
1 - 128 charactersReference number
type
string
1 - 64 charactersType of product
certificateNumber
string
1 - 128 charactersCertificate number
phoneNumber
string
1 - 64 charactersCustomer phone number
startDate
string
25 charactersStart date, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
endDate
string
25 charactersEnd date, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
billDetail
array of json object
Billing detail for each period, refer to
billDetailcustomerName
string
1 - 128 charactersRequiredCustomer name of the bill owner
invoiceNumber
string
1 - 128 charactersRequiredInvoice number
amount
money
RequiredAmount of the bill. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
description
string
1 - 256 charactersRequiredDescription of the bill
billDate
string
25 charactersConditionalBill date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
Conditional Info
Y:=
EDUCATION & IPLbillInfo
string
1 - 128 charactersConditionalBilling information, e.g.,
Uang Antar JemputConditional Info
Y:=
EDUCATION & IPLbillItemId
string
1 - 64 charactersConditionalBill item detail identifier
Conditional Info
Y:=
EDUCATION & IPLfineAmount
money
ConditionalFine (penalty) amount per bill detail. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
1. Value: Amount
2. Currency: Currency code based on ISO
Conditional Info
Y:=
EDUCATION & IPLvalue
string
1 - 19 charactersRequiredValue of amount. Need to provide the amount in the smallest common currency unit. For most, this is the amount in cents (or pence, or similarly named unit).
For example: To create a charge for $1.00, set amount=100 (100 cents)
For example: To create a charge for $1.00, set amount=100 (100 cents)
currency
string
1 - 3 charactersRequiredCurrency
dueDate
string
25 charactersConditionalPayment due date per bill, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
Conditional Info
Y:=
EDUCATIONexpiredDate
string
25 charactersConditionalExpired date per bill, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
Conditional Info
Y:=
EDUCATION & IPLrespMapping
string
1 - 128 charactersConditionalResponse mapping on DANA side
Conditional Info
Y:=
ESAMSATflowId
string
1 - 64 charactersConditionalMerchant order identifier or user's validate user identifier from merchant
Conditional Info
Y:=
bizType is GAMEcustomerIdNumber
string
1 - 128 charactersConditionalCustomer identifier number
Conditional Info
Y:=
bizType is ESAMSATowned
string
1 - 64 charactersConditionalVehicle ownership
Conditional Info
Y:=
bizType is ESAMSATbrand
string
1 - 128 charactersConditionalVehicle brand
Conditional Info
Y:=
bizType is ESAMSATmodel
string
1 - 128 charactersConditionalVehicle model
Conditional Info
Y:=
bizType is ESAMSATmachineNumber
string
1 - 128 charactersConditionalVehicle machine number
Conditional Info
Y:=
bizType is ESAMSATframeNumber
string
1 - 128 charactersConditionalVehicle frame number
Conditional Info
Y:=
bizType is ESAMSATyearOfProduction
string
1 - 128 charactersConditionalVehicle year of production
Conditional Info
Y:=
bizType is ESAMSATnewTaxExpirationDate
string
25 charactersConditionalNew tax end date, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
Conditional Info
Y:=
bizType is ESAMSATextendInfo
json string
1 - 4096 charactersConditionalExtended information. Such as
-
-
billerMessages. These fields are mandatory: -
tower -
unitNoConditional Info
Y:=
bizType is IPLAll Successful Inquiry
{
"response":{
"head":{
"version":"2.0",
"function":"dana.digital.goods.destination.inquiry",
"reqTime":"2018-07-04T12:08:56+07:00",
"reqMsgId":"1234567asdfasdf1123fd123123aasd123"
},
"body":{
"inquiryResults":[
{
"inquiryId":"12323453523",
"inquiryStatus":{
"code":"10",
"status":"SUCCESS",
"message":"Success"
},
"destinationInfo":{
"primaryParam":"111111111",
"secondaryParam":""
},
"customerName":"John Rambo",
"period":[
"2001-07-01T00:00:00+00:00",
"2001-08-01T00:00:00+00:00"
],
"totalAmount":{
"value":"20000000",
"currency":"IDR"
},
"baseAmount":{
"value":"10000000",
"currency":"IDR"
},
"adminFee":{
"value":"250000",
"currency":"IDR"
},
"providerName":"PLN Palyja",
"fineAmount":null,
"dueDate":"2019-07-01T00:00:00+07:00",
"quantity":"2000KWH",
"fare":"100",
"totalEnergy":"10 KWH",
"meterNumber":"1234567890",
"minimumPayAmount":{
"value":"5000000",
"currency":"IDR"
},
"maximumPayAmount":{
"value":"50000000",
"currency":"IDR"
},
"type":"ELECTRICITY"
},
{
"inquiryId":"12323453523",
"inquiryStatus":{
"code":"10",
"status":"SUCCESS",
"message":"Success"
},
"destinationInfo":{
"primaryParam":"22222222",
"secondaryParam":""
},
"customerName":"John Rambo",
"period":[
"2001-07-01T00:00:00+00:00",
"2001-08-01T00:00:00+00:00"
],
"totalAmount":{
"value":"12000000",
"currency":"IDR"
},
"baseAmount":{
"value":"10000000",
"currency":"IDR"
},
"adminFee":{
"value":"250000",
"currency":"IDR"
},
"providerName":"PLN Palyja",
"fineAmount":null,
"dueDate":"2019-07-01T00:00:00+07:00",
"quantity":"2000KWH",
"fare":"100",
"totalEnergy":"10 KWH",
"meterNumber":"1234567890",
"minimumPayAmount":{
"value":"5000000",
"currency":"IDR"
},
"maximumPayAmount":{
"value":"10000000",
"currency":"IDR"
},
"type":"ELECTRICITY"
}
]
}
},
"signature":"signature string"
}
Note
For CREDITCARD payment, if on inquiry response the minimumPayAmount is not empty or null, DANA will validate the amount by the minimumPayAmount value.
| ResultStatus | ResultCode | ResultMessage | Solution |
|---|---|---|---|
| SUCCESS | 10 | Success | DANA displays billing information to the user |
| FAILED | 20 | Invalid Destination | Invalid customer number. - If biz type is ELECTRICITY/ELECTRICITY_POST, DANA will popup error message: "ERROR - IDPEL YANG ANDA MASUKKAN SALAH, MOHON TELITI KEMBALI" - If biz type is BPJS, DANA will popup error message: "ERROR - No va salah" |
| FAILED | 21 | Destination is blocked | Customer account is blocked. - If biz type is ELECTRICITY/ELECTRICITY_POST, DANA will popup error message: "ERROR - KONSUMEN IDPEL DIBLOKIR HUBUNGI PLN" |
| FAILED | 22 | Invalid Amount | Amount paid by customer is not valid for example by exceeding the maximum billing payment. For ELECTRICITY if the bill amount exceeds max value so that this account is blocked,DANA will popup error message: "ERROR - TOTAL TAGIHAN MELEBIHI BATAS MAKSIMUM" |
| FAILED | 23 | Invalid Payment Time | Customer is not allowed to make payment at this point of time. - If biz type is ELECTRICITY, DANA will popup error message: "ERROR - MOHON MAAF NO PELANGGAN WAKTU TRANSAKSI TERLALU BERDEKATAN DENGAN SEBELUMNYA,MOHON DICOBA KEMBALI BEBERAPA SAAT KEMUDIAN,TERIMA KASIH" |
| FAILED | 24 | Timeout | Merchant/provider got timeout. - If biz type is ELECTRICITY/ELECTRICITY_POST/BPJS, DANA will popup error message: "ERROR - Timeout" |
| FAILED | 25 | Bill is already paid | - If biz type is ELECTRICITY_POST, DANA will popup error message: "ERROR - TAGIHAN SUDAH TERBAYAR" - If biz type is BPJS, DANA will popup error message: "ERROR - Tagihan sudah dibayar" |
| FAILED | 26 | Bill is not available | If biz type is ELECTRICITY_POST, DANA will popup error message: "ERROR - TAGIHAN BULAN BELUM TERSEDIA" |
| FAILED | 27 | Transaction failed | - If biz type is ELECTRICITY_POST, DANA will popup error message: "ERROR - TRANSAKSI GAGAL" - If biz type is BPJS, DANA will popup error message: "ERROR - Transaksi Gagal" |
| FAILED | 28 | Data not found | DANA will popup error message: "ERROR - Data tidak ditemukan" |
| FAILED | 29 | Cut off time | DANA will popup error message: "ERROR - Sedang proses Cut-off, cobalah beberapa saat lagi" |
| FAILED | 30 | Pay in office | User are not eligible to make payment from DANA and is required to pay in provider office |
| FAILED | 99 | General Error | Other system level error from merchant |