Transaction Detail
POST/v1.0/transaction-history-detail.htm
This API is used to query user’s DANA transaction history detail via merchant. For the easiest integration, use DANA's Libraries to implement DANA Widget Binding.
API Type
SNAP API
Expected Timeout
8 second
SNAP Service Code
13
Accept
application/json
Content Type
application/json
Content-Type
string
1 - 127 charactersRequiredContent type, value always
application/jsonAuthorization-Customer
string
1 - 512 charactersRequiredContains customer token, which has been obtained from binding process
X-TIMESTAMP
string
25 charactersRequiredTransaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00.
Time must be in GMT+7 (Jakarta time)
Time must be in GMT+7 (Jakarta time)
X-SIGNATURE
string
RequiredSignature need to be generated with
asymmetricSignature methodORIGIN
string
Origin domain
X-PARTNER-ID
string
1 - 36 charactersRequiredUnique identifier for partner was generated by DANA, or known as clientId
X-EXTERNAL-ID
string
1 - 36 charactersRequiredUnique messaging reference identifier generated by merchant and should be unique within the same day
X-IP-ADDRESS
string
15 charactersIP address of the end user (customer) using IPv4 format
X-DEVICE-ID
string
1 - 400 charactersRequiredDevice identification on which the API services is currently being accessed by the end user (customer). Sample:
- Web Application:
- Mozilla / 5.0 (Windows NT 10.0; Win64; x64)
- AppleWebKit / 537.36 (KHTML, like Gecko)
- Chrome / 75.0.3770.100
- Safari / 537.36 OPR / 62.0.3331.99
- Mobile Application:
- Android: android-20013adf6cdd8123f
- iOS: 72635bdfd223yvjm7246nsdj34hd4559393kjh42"
X-LATITUDE
string
1 - 10 charactersLocation on which the API services is currently being accessed by the end user (customer), refer to ISO 6709 standard representation of geographic point location by coordinates, as below:
New York City
Latitude: +40.75
- ±DD.DDDD format (without minutes and seconds)
- ±DD = three-digit integer degrees part of latitude
- .DDDD = variable-length fraction part in degrees
New York City
Latitude: +40.75
X-LONGITUDE
string
1 - 10 charactersLocation on which the API services is currently being accessed by the end user (customer), refer to ISO 6709 Standard representation of geographic point location by coordinates, as below:
New York City
Longitude: -074.00
- ±DDD.DDDD format (without minutes and seconds)
- ±DDD = four-digit integer degrees part of latitude
- .DDDD = variable-length fraction part in degrees
New York City
Longitude: -074.00
CHANNEL-ID
string
1 - 5 charactersRequiredDevice identification on which the API services is currently being accessed by the end user (customer)
originalPartnerReferenceNo
string
1 - 64 charactersRequiredOriginal transaction identifier on partner system
additionalInfo
json object
Additional information
additionalInfo.accessToken
string
1 - 512 charactersRequiredContains customer token, which has been obtained from binding process
additionalInfo.referenceNo
string
1 - 64 charactersRequiredAdditional information of transaction identifier on DANA system
POST .../v1.0/transaction-history-detail.htm HTTP/1.2
Content-type: application/json
Authorization-Customer: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
X-TIMESTAMP: 2020-12-23T08:31:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.108841
X-LONGITUDE: 106.7782137
CHANNEL-ID: 95221
{
"originalPartnerReferenceNo":"2020102900000000000001",
"additionalInfo":
{
"accessToken": "fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a",
"referenceNo": "202203297381273166738217381"
}
}
Content-Type
string
1 - 127 charactersRequiredContent type, value always
application/jsonX-TIMESTAMP
string
25 charactersRequiredTransaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
responseCode
string
7 charactersRequiredRefer to response code list
responseMessage
string
1 - 150 charactersRequiredRefer to response code list
referenceNo
string
1 - 64 charactersConditionalTransaction identifier on DANA system
Conditional Info
Y:= Data found
partnerReferenceNo
string
1 - 64 charactersConditionalUnique transaction identifier in partner system for each transaction.
Note: When retrying after a timeout or unexpected response, use the same partnerReferenceNo as in the original request
Note: When retrying after a timeout or unexpected response, use the same partnerReferenceNo as in the original request
Conditional Info
Y:= Data found
amount
money
ConditionalAmount. Contains two sub-fields:
- Value: Transaction amount, including the cents
- Currency: Currency code based on ISO
Conditional Info
Y:= Data found
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
cancelledTime
string
25 charactersTransaction cancelled time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
dateTime
string
25 charactersConditionalTransaction date time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
Conditional Info
Y:= Data found
refundAmount
money
Refund amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
remark
string
1 - 256 charactersTransaction remark
sourceOfFunds
array of json object
Source of fund used for this transaction. For this service, only use payMethod and amount parameter
source
string
1 - 64 charactersRequiredFund source
amount
money
RequiredAmount. Contains two sub-fields:
- Value: Transaction amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
status
string
1 - 32 charactersConditionalTransaction status. i.e.,
CLOSED, FAILED, INIT, SUCCESS, PROCESSING, EXPIRED, ISSUED, REDEEMED, REFUNDED, REVOKEDConditional Info
Y:= Data found
type
string
1 - 32 charactersConditionalTransaction type. i.e.,
PAYMENT, REFUND, OFFLINE_TOPUP, TOP_UP, COMMON_REBATE, REBATE, WITHDRAWConditional Info
Y:= Data found
additionalInfo
string
Additional information
additionalInfo.feeAmount
money
Additional information of fee amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
additionalInfo.orderModifiedTime
string
25 charactersConditionalAdditional information of last order modified time, in format YYYY-MM-DDTHH:mm:ssZ. Time must be in UTC
Conditional Info
Y:= Data found
additionalInfo.orderCompletedTime
string
25 charactersAdditional information of order completed time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
additionalInfo.orderExpireTime
string
25 charactersAdditional information of order expired time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
additionalInfo.ipRoleId
string
1 - 64 charactersAdditional information of DANA user's IP role identifier
additionalInfo.nickname
string
1 - 64 charactersAdditional information of DANA user's nickname
additionalInfo.targetIpRoleType
string
1 - 64 charactersAdditional information of target's type
additionalInfo.targetIpRoleId
string
1 - 64 charactersAdditional information of target's user identifier
additionalInfo.targetNickname
string
1 - 64 charactersAdditional information of target's nickname
additionalInfo.externalUserId
string
1 - 64 charactersAdditional information of DANA external user identifier
additionalInfo.partnerRoleId
string
1 - 64 charactersAdditional information of merchant identifier
additionalInfo.partnerNickname
string
1 - 64 charactersAdditional information of partner nickname
additionalInfo.orderTitle
string
1 - 64 charactersAdditional information of order title
additionalInfo.isFreeze
string
1 charactersAdditional information of the status of order is frozen or not.
The values are
The values are
0/1additionalInfo.isRefunded
string
1 charactersAdditional information of the status of order is refunded or not.
The values are
The values are
0/1additionalInfo.subBizOrderType
string
1 - 64 charactersAdditional information of sub business order type
additionalInfo.subBizOrderStatus
string
1 - 64 charactersAdditional information of sub business order status
additionalInfo.refBizOrderId
string
1 - 64 charactersAdditional information of reference business order identifier
additionalInfo.requestSource
string
1 - 64 charactersAdditional information of request source
additionalInfo.userPaidAmount
money
Additional information of user paid amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
additionalInfo.bizScenario
string
1 - 32 charactersAdditional information of business scenario
additionalInfo.extendInfo
string
1 - 4096 charactersAdditional information of extend
additionalInfo.totalAmount
money
Additional information of total amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
additionalInfo.originalOrderAmount
money
Additional information of original order amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
additionalInfo.merchantName
string
1 - 64 charactersAdditional information of merchant name
additionalInfo.productCode
string
1 - 32 charactersAdditional information of product code
additionalInfo.orderDetailList
array of json object
Additional information of order detail list, contains pay order detail such as payMethod and coupon
bizOrderDetailId
string
1 - 64 charactersBusiness order detail identifier
bizOrderDetailType
string
1 - 32 charactersBusiness order detail type
detailOrderStatus
string
1 - 32 charactersDetail order status
refBizOrderDetailId
string
1 - 64 charactersReference business order detail identifier
refBizOrderDetailType
string
1 - 32 charactersReference business order detail type
extendInfo
string
1 - 4096 charactersExtend information
payment
json object
Payment info
acceptedTime
string
25 charactersPayment accepted time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
amount
money
Amount. Contains two sub-fields:
- Value: Transaction amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
paymentOrderId
string
1 - 64 charactersPayment order identifier
status
string
1 - 32 charactersPayment status
paymentBizType
string
1 - 32 charactersPayment business type
paymentDetailList
array of json object
Payment detail information
moneyAmount
money
Money amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
paymentDetailId
string
1 - 64 charactersPayment detail identifier
status
string
1 - 32 charactersPay status
coupons
array of json object
Coupons information
couponId
string
1 - 32 charactersCoupon identifier
amount
money
Coupon amount. Contains two sub-fields:
- Value: Coupon amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
expiredDate
string
25 charactersCoupon expired date, in format YYYY-MM-DDTHH:mm:ssZ. Time must be in UTC
couponCode
string
1 - 32 charactersCoupon code
canRefund
string
1 charactersHas values:
0= false1= true
orderCreatedTime
string
25 charactersOrder created time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
orderCompletedTime
string
25 charactersOrder completed time, in format YYYY-MM-DDTHH:mm:ssZ.
Time must be in UTC
Time must be in UTC
assetBelong
string
1 - 16 charactersAsset belong to PAYER/PAYEE
totalDiscount
money
Total discount amount. Contains two sub-fields:
- Value: Amount, including the cents
- Currency: Currency code based on ISO
value
string
1 - 19 charactersRequiredValue of amount. Following ISO-4217, for IDR the value includes 2 decimal digits separated with point e.g. ,IDR 10.000,- will be placed with 10000.00
currency
string
1 - 3 charactersRequiredCurrency
accountNo
string
1 - 64 charactersAccount number
instId
string
1 - 32 charactersInstitution identifier
payMethod
string
1 - 32 charactersPay method
Content-type: application/json
X-TIMESTAMP: 2020-12-18T15:55:47+07:00
{
"responseCode": "2001300",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"amount": {
"value": "12345678.00",
"currency": "IDR"
},
"cancelledTime": "2020-12-23T08:31:11Z",
"dateTime": "2020-12-23T08:31:11Z",
"refundAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"remark": "Payment to Warung Ikan Bakar",
"sourceOfFunds": [
{
"source": "BALANCE",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
}
],
"status": "SUCCESS",
"type": "PAYMENT",
"additionalInfo": {
"feeAmount": {
"currency": "IDR",
"value": "0.00"
},
"orderModifiedTime": "2020-12-23T08:31:11Z",
"orderCompletedTime": "2020-12-23T08:31:11Z",
"orderExpiryTime": "2020-12-23T08:31:11Z",
"ipRoleId": "216610000187003188462",
"nickname": "85158225425",
"targetIpRoleType": "SELLER",
"targetIpRoleId": "216610000187003188463",
"targetNickname":"Warung Ikan Bakar",
"externalUserId": "531481296",
"partnerRoleId": "216620000001496726697",
"partnerNickname": "Warung Ikan Bakar",
"orderTitle": "Order BL2217EBTY99INV Payment Reduction",
"isFreeze": "0",
"isRefunded": "0",
"subBizOrderType": "REFUND_TO_SOURCE",
"subBizOrderStatus": "SUCCESS",
"refBizOrderId": "20211309111212800100166262022329202",
"requestSource": "EMPTY",
"userPaidAmount": {
"currency": "IDR",
"value": "0.00"
},
"bizScenario": "PAYMENT",
"extendInfo": "{\"key\":\"value\"}",
"totalAmount": {
"currency": "IDR",
"value": "1000.00"
},
"originalOrderAmount": {
"currency": "IDR",
"value": "0.00"
},
"merchantName": "Bukalapak",
"productCode": "51051000100000000031",
"orderDetailList": [
{
"bizOrderDetailId": "2021939218318391283912839183",
"bizOrderDetailType": "VIRTUAL",
"detailOrderStatus": "SUCCESS",
"refBizOrderDetailId": "63721632713712367213",
"refBizOrderDetailType": "VIRTUAL",
"extendInfo": "{\"key\":\"value\"}",
"payment": {
"acceptedTime": "2020-12-23T08:31:11Z",
"amount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentOrderId": "2022030910110000010000DANAW3ID166468845688115",
"status": "SUCCESS",
"paymentBizType": "AMOUNT_PREPARE",
"paymentDetailList": [
{
"moneyAmount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentDetailId": "2022030910110000014000DANAW3ID166468817381257",
"status": "SUCCESS",
"coupons": [],
"orderCreatedTime": "2020-12-23T08:31:11Z",
"orderCompletedTime": "2020-12-23T08:31:11Z",
"assetBelong": "PAYEE",
"totalDiscount": {}
},
{
"accountNo": "20070000000021365694",
"moneyAmount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentDetailId": "2022030910110000019000DANAW3ID166468817381256",
"status": "SUCCESS",
"coupons": [],
"orderCreatedTime": "2020-12-23T08:31:11Z",
"orderCompletedTime": "2020-12-23T08:31:11Z",
"assetBelong": "PAYER",
"totalDiscount": {}
}
]
}
},
{
"bizOrderDetailType": "VIRTUAL",
"payment": {
"acceptedTime": "2020-12-23T08:31:11Z",
"amount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentOrderId": "2022030910110000040000DANAW3ID166468826144818",
"status": "SUCCESS",
"paymentBizType": "REFUND",
"paymentDetailList": [
{
"instId": "DANAW3ID",
"moneyAmount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentDetailId": "2022030910110000041200DANAW3ID166468826336292",
"payMethod": "REBATE",
"status": "SUCCESS",
"coupons": [
{
"couponId": "2022030910111500110000000000460005785026",
"amount": {
"currency": "IDR",
"value": "1000.00"
},
"expiredDate": "2020-12-23T08:31:11Z",
"couponCode": "DANA",
"canRefund": "0"
}
],
"orderCreatedTime": "2020-12-23T08:31:11Z",
"orderCompletedTime": "2020-12-23T08:31:11Z",
"assetBelong": "PAYEE",
"totalDiscount": {
"currency": "IDR",
"value": "1000.00"
}
},
{
"moneyAmount": {
"currency": "IDR",
"value": "1000.00"
},
"paymentDetailId": "2022030910110000044000DANAW3ID166468826336293",
"status": "SUCCESS",
"coupons": [],
"orderCreatedTime": "2020-12-23T08:31:11Z",
"orderCompletedTime": "2020-12-23T08:31:11Z",
"assetBelong": "PAYER",
"totalDiscount": {}
}
]
}
}
]
}
}
| Response | Cause | Solution |
|---|---|---|
2001300Successful | Success to be processed | Mark Transaction Detail process as Success |
4001300Bad Request | General request failed error | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4001301Invalid Field Format | Invalid format for certain field | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4001302Invalid Mandatory Field | Missing or invalid format on mandatory field | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4011300Unauthorized. [reason] | General unauthorized error | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4011302Invalid Customer Token | Customer token are invalid, perhaps due to token expiry | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4011304Customer Token Not Found | Customer token not found in the system. This occurs on any API that requires token as input parameter | Mark Transaction Detail process as Failed. Retry request with proper parameter |
4041301Transaction Not Found | Transaction not found | Mark Transaction Detail process as Failed. Retry request periodically |
4291300Too Many Requests | Maximum transaction limit exceeded | Mark Transaction Detail process as Failed. Retry request periodically |
5001300General Error | General error non retry-able | Mark Transaction Detail process as Failed. Retry request periodically |
5001301Internal Server Error | Unknown internal server failure, please retry the process again | Mark Transaction Detail process as Failed. Retry request periodically |
Total Timeout | Total timeout, the client side does not get any responses from the server side (can be due to network issue, server slowing down, and so on) | Do a retry maximum 3 attempts, if still fails mark Transaction Detail process as Failed |
Unexpected response (empty field/field does not exist/undefined response code) | The server does not produce expected responses (can be due to hardware failure, bugs, and so on) |
|