Transfer to Bank
POST/v1.0/emoney/transfer-bank.htm
This API is used for merchant to do transfer to Bank request via DANA. For the easiest integration, use DANA's Libraries to implement Disbursement to Bank.
API Type
SNAP API
Expected Timeout
8 second
SNAP Service Code
43
Accept
application/json
Content Type
application/json
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
X-IP-ADDRESS
string
15 charactersIP address of the end user (customer) using IPv4 format
CHANNEL-ID
string
1 - 5 charactersRequiredDevice identification on which the API services is currently being accessed by the end user (customer)
partnerReferenceNo
string
1 - 64 charactersUnique 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
customerNumber
string
1 - 32 charactersCustomer account number, in format 628xxx
accountType
string
1 - 25 charactersCustomer account type
beneficiaryAccountNumber
string
1 - 32 charactersRequiredBeneficiary account number
beneficiaryBankCode
string
1 - 8 charactersRequiredBank code for beneficiary account, refer to Beneficiary Bank Code List
amount
money
RequiredAmount.
Contains two sub-fields:
Contains two sub-fields:
- Value: Transaction amount, including the cents
- Currency: Currency code based on ISO
value
string
RequiredValue 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
RequiredCurrency
additionalInfo
json object
Additional information
additionalInfo.fundType
string
1 - 64 charactersRequiredAdditional information of top up fund type. Possible values:
-
AGENT_TOPUP_USER_SETTLE: used for disbursement to balance solution -
MERCHANT_WITHDRAW_FOR_CORPORATE: used for disbursement to bank solution
MERCHANT_WITHDRAW_FOR_CORPORATEadditionalInfo.externalDivisionId
string
1 - 64 charactersAdditional information of external division identifier.
(fundType:
Notes: It is generally optional, but becomes mandatory if the
(fundType:
MERCHANT_WITHDRAW_FOR_CORPORATE)Notes: It is generally optional, but becomes mandatory if the
additionalInfo.chargeTarget value is set to DIVISION.additionalInfo.chargeTarget
string
1 - 64 charactersAdditional information of charge target. The values are:
nullDIVISIONMERCHANT
DIVISION, externalDivisionId will be MandatoryadditionalInfo.needNotify
boolean
Additional information of flag result notification on transaction completed (result sync/async)
additionalInfo.beneficiaryAccountName
string
1 - 64 charactersAdditional information of beneficiary account name for validation purpose
POST .../v1.0/emoney/transfer-bank.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
X-IP-ADDRESS: 172.24.281.24
CHANNEL-ID: 95221
{
"partnerReferenceNo": "2020102900000000000001",
"customerNumber": "6281773628883",
"accountType": "SETTLEMENT_ACCOUNT",
"beneficiaryAccountNumber": "01234567890",
"beneficiaryBankCode": "002",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"additionalInfo": {
"fundType": "MERCHANT_WITHDRAW_FOR_CORPORATE",
"externalDivisionId": "91080916Division",
"chargeTarget": "DIVISION",
"needNotify": "true",
"beneficiaryAccountName": "Holder Name"
}
}
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
referenceNo
string
1 - 64 charactersConditionalTransaction identifier on DANA system
Conditional Info
Y:= Successful transaction
partnerReferenceNo
string
1 - 64 charactersUnique 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
transactionDate
string
25 charactersTransaction date, 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)
referenceNumber
string
1 - 64 charactersRequiredReference number
additionalInfo
json object
Additional information
Content-type: application/json
X-TIMESTAMP: 2020-12-21T14:36:19+07:00
{
"responseCode": "2004300",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"transactionDate": "2020-12-21T17:48:41+07:00",
"referenceNumber": "2020102977770000000009",
"additionalInfo": {
}
}
| Response | Cause | Solution |
|---|---|---|
2004300Successful | Success to be processed | Mark Transfer to Bank process as Success |
2024300Request In Progress | Transaction is on process | Mark Transfer to Bank process as Pending. Hold the money and wait notify |
4004300Bad Request | General request failed error | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4004301Invalid Field Format | Invalid format for certain field | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4004302Invalid Mandatory Field | Missing or invalid format on mandatory field | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4014300Unauthorized. [reason] | General unauthorized error | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4014301Invalid Token (B2B) | Authorization token are invalid, perhaps due to token expiry for B2B | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4014302Invalid Customer Token | Customer token are invalid, perhaps due to token expiry | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4014304Customer Token Not Found | Customer token not found in the system. This occurs on any API that requires token as input parameter | Mark Transfer to Bank process as Failed. Retry request with proper parameter |
4034302Exceeds Transaction Amount Limit | Exceeds transaction amount limit | Mark Transfer to Bank process as Failed. Retry request with proper amount |
4034303Suspected Fraud | Suspected fraud | Mark Transfer to Bank process as Failed. Contact DANA to check the user/merchant status |
4034314Insufficient Funds | Insufficient funds | Mark Transfer to Bank process as Failed. Contact DANA to top up deposit balance |
4034318Inactive Card/Account/Customer | Indicates inactive account | Mark Transfer to Bank process as Failed. Contact to DANA to check merchant configuration |
4034320Merchant Limit Exceed | Merchant aggregated purchase amount on that day exceeds the agreed limit | Mark Transfer to Bank process as Failed. Contact DANA to check merchant configuration |
4044303Bank Not Supported By Switch | Bank not supported by switch | Mark Transfer to Bank process as Failed. Retry new Transfer to Bank process with different Bank target |
4044311Invalid Card/Account/Customer [info]/Virtual Account | Card information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid | Mark Transfer to Bank process as Failed. Retry request with proper Bank account info |
4044318Inconsistent Request | Inconsistent request parameter found for the same partner reference number/transaction identifier | Mark Transfer to Bank process as Success. Contact DANA to check status of Transfer to Bank process |
4294300Too Many Requests | Maximum transaction limit exceeded | Mark Transfer to Bank process as Pending. Hold the money and retry request periodically |
5004300General Error | General error non retry-able | Mark Transfer to Bank process as Failed. Retry new Transfer to Bank process |
5004301Internal Server Error | Unknown internal server failure, please retry the process again | Mark Transfer to Bank process 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 3 attempts, if still fails mark Transfer to Bank process as Pending and 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) |
|