Order Complete Callback
POST/dana/bizcenter/digitalgoods/orderComplete.htm
This API is used for merchant to inform DANA of the final status (successful or failed) of a previously pending transaction.
API Type
DANA Open API
Expected Timeout
8 second
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.
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:
Value:
dana.digital.goods.order.completereqTime
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 a unique system request. Each request will be assigned with a unique identifier (UUID)
orders
json object
RequiredDefine the detail of order information, refer to order
partnerId
string
1 - 64 charactersRequiredMerchant identifier
aggregatorId
string
1 - 64 charactersRequiredAggregator identifier
requestId
string
1 - 64 charactersRequiredDANA’s request identifier. Merchant should store this parameter as the reference to merchant’s order
orderId
string
1 - 64 charactersRequiredMerchant’s order identifier
createdTime
string
25 charactersRequiredCreated order date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
modifiedTime
string
25 charactersRequiredModified order date time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
destinationInfo
json object
RequiredDefine the detail of destination information
primaryParam
string
1 - 64 charactersRequiredMandatory destination parameter, e.g., mobile phone number for mobile recharge, account identifier for game top up
secondaryParam
string
1 - 64 charactersSecondary destination parameter, e.g., server identifier
billAmount
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
orderStatus
json object
RequiredDefine the detail of destination information
Note
Only applicable for RC 10, 30, 31, 32 and 33
code
string
1 - 8 charactersRequiredOrder status code
status
string
1 - 16 charactersRequiredOrder status
message
string
1 - 256 charactersRequiredOrder status message
serialNumber
string
1 - 32 charactersRequiredProvider identifier
token
string
1 - 32 charactersConditionalElectricity token number
Conditional Info
Y := bizType is ELECTRICITY
product
json object
RequiredDefine the detail of product
productId
string
1 - 64 charactersRequiredMerchant’s product identifier
type
string
1 - 32 charactersRequiredProduct type specified by DANA, e.g.,
MOBILE_CREDIT and MOBILE_DATA. Refer to Biz Type Listprovider
string
1 - 32 charactersRequiredProduct provider, e.g.,
telkomsel, indosat. Refer to Provider Listprice
money
RequiredMerchant’s selling price. Contains:
1. Value: Amount
2. Currency: Currency code based on ISO
*Insurance not use this parameter
1. Value: Amount
2. Currency: Currency code based on ISO
*Insurance not use this parameter
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
availability
boolean
RequiredProduct availability from merchant. This field will be used to update merchant product's availability status in DANA. Will be true if the product is available and ready to buy
extendInfo
json string
RequiredExtend Information
customerName
string
1 - 64 charactersRequiredCustomer name
billItemIds
array of string
RequiredIdentifier of bill items
baseAmount
money
RequiredMerchant’s base 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
{
"request": {
"head": {
"version": "1.0",
"function": "dana.digital.goods.order.complete",
"reqTime": "2018-07-04T12:08:56+07:00",
"reqMsgId": "1234567asdfasdf1123fd123123aasd123"
},
"body": {
"orders": [
{
"partnerId": "1827381273912793829321381",
"aggregatorId": "ayopop",
"requestId": "2016234891823981234000",
"orderId": "723894791882739847100",
"createdTime": "2001-07-04T12:08:56+07:30",
"modifiedTime": "2001-07-04T12:08:56+07:30",
"completedTime": "2001-07-04T12:08:56+07:30",
"destinationInfo": {
"primaryParam": "0812312415234"
},
"orderStatus": {
"code": "10",
"status": "SUCCESS",
"message": "Success"
},
"serialNumber": "12983791283097423",
"token": "",
"product": {
"productId": "123",
"type": "MOBILE_CREDIT",
"provider": "telkomsel",
"price": {
"value": "9700000",
"currency": "IDR"
},
"availability": true
},
"extendInfo": "{\"customerName\":\"John Doe\",\"billItemIds\":\"[\"67543\", \"67583\"]\",\"baseAmount\":\"{\"value\":\"250000\",\"currency\":\"IDR\"}"
}
}
]
}
},
"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:
Value:
dana.digital.goods.order.completerespTime
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)
orders
json object
RequiredDefine the detail of order information, refer to order
partnerId
string
1 - 64 charactersRequiredMerchant identifier
aggregatorId
string
1 - 64 charactersRequiredAggregator identifier
requestId
string
1 - 64 charactersRequiredDANA’s request identifier. Merchant should store this parameter as the reference to merchant’s order
orderId
string
1 - 64 charactersRequiredMerchant’s order identifier
destinationInfo
json object
RequiredDefine the detail of destination information
primaryParam
string
1 - 64 charactersRequiredMandatory destination parameter, e.g., mobile phone number for mobile recharge, account identifier for game top up
secondaryParam
string
1 - 64 charactersSecondary destination parameter, e.g., server identifier
billAmount
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
notifyStatus
json object
RequiredDefine the detail of notify status
code
string
1 - 8 charactersRequiredOrder status code
status
string
1 - 16 charactersRequiredOrder status
SUCCESS
string
DANA acknowledges and accepts the order status
FAILED
string
DANA does not acknowledge and rejects the order's status due to errors:
Result Code 30, 31, 32, 33, 34, 35, 40, 99message
string
1 - 256 charactersRequiredOrder status message
retryable
boolean
RequiredRetry able process for merchant. The possible value are
true or false{
"response": {
"head": {
"version": "1.0",
"function": "dana.digital.goods.order.complete",
"respTime": "2018-07-04T12:08:56+07:00",
"reqMsgId": "1234567asdfasdf1123fd123123aasd123"
},
"body": {
"orders": [
{
"partnerId": "1827381273912793829321381",
"aggregatorId": "ayopop",
"requestId": "2016234891823981234000",
"orderId": "723894791882739847100",
"destinationInfo": {
"primaryParam": "0812312415234"
},
"notifyStatus": {
"code": "10",
"status": "SUCCESS",
"message": "Success",
"retryable": false
}
}
]
}
},
"signature": "signature string"
}
| ResultStatus | ResultCodeId | ResultCode | ResultMessage | Solution |
|---|---|---|---|---|
| S | 10 | SUCCESS | Success | Stop send callback API Note: Retryable is false |
| F | 30 | FAILED | <FAIL_REASON> | Stop send callback API Note: Retryable is false |
| F | 31 | PARAM_ILLEGAL | Param illegal | Stop send callback API Note: Retryable is false |
| F | 32 | EXCEED_CUT_OFF_TIME | Exceed Cut-off Time | Stop send callback API Note: Retryable is false |
| F | 33 | ORDER_HAS_BEEN_SUCCESS | Order already success | Stop send callback API Note: Retryable is false |
| F | 34 | ORDER_HAS_BEEN_FAILED | Order already failed | Stop send callback API Note: Retryable is false |
| F | 35 | PARAM_MISSING | Mandatory request param missing | Stop send callback API Note: Retryable is false |
| F | 40 | ORDER_NOT_FOUND | Order Not Found | Try re hit callback API Note: Retryable is true |
| U | 99 | SYSTEM_ERROR | Internal system Error | Try re hit callback API Note: Retryable is true |