Customer Top Up Inquiry Status
POST/v1.0/emoney/topup-status.htm
This API is used for merchant to do inquiry status top up transaction to DANA
API Type
SNAP API
Expected Timeout
8 second
SNAP Service Code
39
Accept
application/json
Content Type
application/json
This API is used for the following solution:
enables merchants to transfer balance to users' DANA balance. This API lets you validate account details, topup, and check topup statuses.
Retry Mechanism
The following are the details of the retry mechanism in case merchant needs to initiate a retry process:
- Retry is a mandatory process.
- The maximum retry is 5 times.
- Using the following interval time: 5, 10, 20, 40, 60, till merchant’s cut off (in seconds).
Content-Type
string
1 - 127 charactersRequiredContent type, value always
application/jsonAuthorization
string
1 - 2048 charactersConditionalContains bearer JWT token, which has been obtained from Authorization Token Request API
Conditional Info
Y:= Signature option is symmetric approach
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
symmetricSignature or 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
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
originalReferenceNo
string
1 - 64 charactersOriginal transaction identifier on DANA system
originalExternalId
string
1 - 36 charactersOriginal external identifier on header message
serviceCode
string
2 charactersRequiredTransaction type indicator is based on the service code of the original transaction request, value always
38additionalInfo
json object
Additional information
POST .../v1.0/emoney/topup-status.htm HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a
X-TIMESTAMP: 2020-12-21T17:07:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221
{
"originalPartnerReferenceNo": "2021072342358089475892734",
"originalReferenceNo": "2021072342358089475892091",
"originalExternalId": "2ads-2da-d23dasd-21dadjoiq-23ij4oinfoen",
"serviceCode": "38",
"additionalInfo": {
}
}
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)
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
originalPartnerReferenceNo
string
1 - 64 charactersRequiredOriginal transaction identifier on partner system
originalReferenceNo
string
1 - 64 charactersOriginal transaction identifier on DANA system
originalExternalId
string
1 - 36 charactersOriginal external identifier on header message
serviceCode
string
2 charactersRequiredTransaction type indicator is based on the service code of the original transaction request, value always
38amount
money
RequiredAmount. 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
latestTransactionStatus
string
2 charactersRequiredStatus of latest transaction:
00 - Success01 - Initiated02 - Paying03 - Pending04 - Refunded05 - Cancelled06 - Failed07 - Not found
transactionStatusDesc
string
1 - 50 charactersRequiredDescription of transaction status
additionalInfo
json object
Additional information
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode": "2003900",
"responseMessage": "Successful",
"originalPartnerReferenceNo": "2021072342358089475892734",
"originalReferenceNo": "2021072342358089475892091",
"originalExternalId": "2ads-2da-d23dasd-21dadjoiq-23ij4oinfoen",
"serviceCode": "38",
"amount": {
"value": "40000.00",
"currency": "IDR"
},
"latestTransactionStatus": "00",
"transactionStatusDesc": "success",
"additionalInfo": {
}
}
| Response | Cause | Solution |
|---|---|---|
2003900Successful | Success to be processed | Mark Customer Top Up Inquiry Status based on latestTransactionStatus:
|
4003900Bad Request | General request failed error | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request with proper parameter |
4003901Invalid Field Format | Invalid format for certain field | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request with proper parameter |
4003902Invalid Mandatory Field | Missing or invalid format on mandatory field | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request with proper parameter |
4013900Unauthorized. [reason] | General unauthorized error | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request with proper parameter |
4013901Invalid Token (B2B) | Authorization token are invalid, perhaps due to token expiry for B2B | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request with proper parameter |
4043901Transaction Not Found | Transaction not found | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Failed. Retry new Customer Top Up Inquiry Status process |
4293900Too Many Requests | Maximum transaction limit exceeded | Mark Customer Top Up Inquiry Status process as Pending and mark Top Up as Pending. Hold the money and retry request periodically |
5003900General Error | General error non retry-able | Mark Customer Top Up Inquiry Status process as Failed and mark Top Up as Pending. Hold the money and retry request periodically |
5003901Internal Server Error | Unknown internal server failure, please retry the process again | Mark Customer Top Up Inquiry Status process as Pending and mark Top Up as Pending. Hold the money and 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 5 attempts, if still fails mark Customer Top Up Inquiry Status process as Pending and mark Top Up as Pending. Hold the money |
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) |
|