Direct Debit Payment
POST/rest/redirection/v1.0/debit/payment-host-to-host
This API is used to initiate payment from merchant's platform to DANA
API Type
SNAP API
Expected Timeout
8 second
SNAP Service Code
54
Accept
application/json
Content Type
applciation/json
This API is used for the following solution:
Seamlessly integrate DANA payments into merchant's platform, allowing customers to link their DANA accounts for faster, smoother transactions across all merchant's services.
This API is used for the following solution:
Integrate DANA as a payment method in merchant's platform without account binding. Users simply select DANA, get redirected to the DANA App, and complete payments using their DANA account.
Idempotent Key & Usage Rules
- If there is no OTT, meaning when accessing the checkout URL user has to do login otherwise user can directly go to the cashier page.
- Idempotent is controlled by Idempotent Key(merchantId+partnerReferenceNo)
- If Idempotent Key has been created and the key information is consistent, then Response code 2005400 (success) will be returned.
- If Idempotent Key has been created but the key information isn't consistent, then Response code 4045418 (inconsistent request) will be returned.
Content-Type
string
1 - 127 charactersRequiredContent type, value always
application/json
X-TIMESTAMP
string
25 charactersRequiredTransaction date time, in format YYYY-MM-DDTHH:mm:ss+07:00. 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
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 charactersRequiredUnique 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
merchantId
string
1 - 64 charactersRequiredMerchant identifier that is unique per each merchant
subMerchantId
string
1 - 32 charactersSub merchant identifier
amount
money
RequiredAmount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
urlParams
array of json object
Notify URL that merchant must send the payment notification to
url
string
1 - 512 charactersRequiredURL link
type
string
1 - 32 charactersRequiredURL type with values:
•
•
•
NOTIFICATION
: When finish payment, DANA will notify to the URL that has been defined by partner •
PAY_RETURN
: After the payment, the user will be redirected to merchant pageisDeeplink
string
1 charactersRequiredDeeplink URL or not
externalStoreId
string
1 - 64 charactersStore identifier to indicate to which store this payment belongs to
validUpTo
string
25 charactersThe time when the payment will be automatically expired, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
pointOfInitiation
string
1 - 20 charactersUsed for getting more info regarding source of request of the user
disabledPayMethods
string
1 - 64 charactersPayment method(s) that cannot be used for this
payOptionDetails
array of json object
Payment option that will be used for this payment
payMethod
string
1 - 64 charactersRequiredPayment Method. e.g.
CREDIT_CARD
. Refer to PayMethodEnumBALANCE
string
Payment method with balance
COUPON
string
Payment method with coupon
NET_BANKING
string
Payment method with internet banking
CREDIT_CARD
string
Payment method with credit card
DEBIT_CARD
string
Payment method with debit card
VIRTUAL_ACCOUNT
string
Payment method with virtual account
OTC
string
Payment method with OTC
DIRECT_DEBIT_CREDIT_CARD
string
Payment method with direct debit of credit card
DIRECT_DEBIT_DEBIT_CARD
string
Payment method with direct debit of debit card
ONLINE_CREDIT
string
Payment method with online credit
LOAN_CREDIT
string
Payment method with DANA Cicil
NETWORK_PAY
string
Payment method with e-wallet
VIRTUAL_ACCOUNT
string
Payment method with virtual account
payOption
string
1 - 64 charactersRequiredPayment option which shows the provider of this payment e.g.
CREDIT_CARD_VISA
transAmount
money
Trans amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
feeAmount
money
Fee amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
cardToken
string
1 - 64 charactersCard token used for this payment
merchantToken
string
1 - 64 charactersMerchant token used for this payment
additionalInfo
json object
Additional information
topupAndPay
boolean
Top up and pay
payerAccountNo
string
1 - 64 charactersNumber account of payer
saveCardAfterPay
boolean
Information save card after payment process
channelInfo
string
1 - 4096 charactersInformation of channel
issuingCountry
string
1 - 8 charactersInformation of issuing country
assetType
string
1 - 64 charactersType of asset
extendInfo
string
1 - 4096 charactersExtend information
additionalInfo
json object
Additional information
additionalInfo.supportDeepLinkCheckoutUrl
string
1 - 64 charactersAdditional information of deeplink checkout URL. For Mini Program, DANA will treat as
false
additionalInfo.phoneNumber
string
1 - 64 charactersAdditional information of user's phone number
additionalInfo.publicUserId
string
1 - 64 charactersAdditional information of public user's identifier
additionalInfo.productCode
string
1 - 32 charactersRequiredAdditional information of product code
additionalInfo.serviceInfo
json object
Additional information of service
serviceType
string
1 - 32 charactersRequiredInformation of service type. The value include
PARKING
or INVESTMENT
serviceScenario
string
1 - 32 charactersRequiredInformation of service scenario. The value include
SCAN_AND_PAY
or EXIT_AND_PAY
or EMAS_PURCHASE
extendInfo
string
1 - 4096 charactersExtend information
additionalInfo.order.buyer
json object
Additional information of buyer
userId
string
1 - 32 charactersDANA's user identifier
externalUserId
string
1 - 32 charactersConditionalExternal user identifier
Conditional Info
Y:= externalUserType is filled
externalUserType
string
1 - 32 charactersConditionalType of external user
Conditional Info
Y:= externalUserId is filled
nickname
string
1 - 64 charactersNickname, user's nick name in DANA's
additionalInfo.order.seller
json object
Additional information of seller
userId
string
1 - 32 charactersDANA's user identifier
externalUserId
string
1 - 32 charactersConditionalExternal user identifier
Conditional Info
Y:= externalUserType is filled
externalUserType
string
1 - 32 charactersConditionalType of external user
Conditional Info
Y:= externalUserId is filled
nickname
string
1 - 64 charactersNickname, user's nick name in DANA's
additionalInfo.order.orderTitle
string
1 - 64 charactersRequiredAdditional information of order title
additionalInfo.order.merchantTransType
string
1 - 64 charactersAdditional information of merchant transaction type
additionalInfo.order.orderMemo
string
1 - 64 charactersAdditional information of order memo
additionalInfo.order.createdTime
string
25 charactersAdditional information of created time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
additionalInfo.order.goods
array of json object
Additional information of goods
unit
string
1 - 64 charactersGoods unit
category
string
1 - 64 charactersRequiredGoods category
price
money
RequiredGoods price. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
merchantShippingId
string
1 - 64 charactersShipment identifier provided by merchant
merchantGoodsId
string
1 - 64 charactersRequiredGoods identifier provided by merchant
description
string
1 - 1024 charactersRequiredGoods description
snapshotUrl
string
1 - 512 charactersThe URL of good's snapshot web page
quantity
string
1 - 16 charactersRequiredCount of items
extendInfo
string
1 - 4096 charactersExtend information
additionalInfo.order.shippingInfo
array of json object
Additional information of shipping
chargeAmount
money
Charge amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
lastName
string
1 - 64 charactersRequiredLast name
trackingNo
string
1 - 64 charactersNumber of tracking
countryName
string
1 - 64 charactersRequiredName of country
merchantShippingId
string
1 - 64 charactersRequiredMerchant shipping identifier
cityName
string
1 - 64 charactersRequiredName of city
address1
string
1 - 256 charactersRequiredInformation of address 1
address2
string
1 - 256 charactersInformation of address 2
phoneNo
string
1 - 32 charactersPhone number
areaName
string
1 - 64 charactersName of area
email
string
1 - 128 charactersEmail
zipCode
string
1 - 32 charactersRequiredZip code
stateName
string
1 - 64 charactersRequiredName of state
faxNo
string
1 - 32 charactersFax number
carrier
string
1 - 64 charactersInformation of carrier
firstName
string
1 - 64 charactersRequiredFirst name
mobileNo
string
1 - 32 charactersMobile number
additionalInfo.order.internationalOrderInfo
json object
ConditionalAdditional information of international order. Only use for Mini Program service
Conditional Info
Y:= International merchant
networkPartnerReferenceNo
string
1 - 64 charactersTransaction identifier on Global Network's merchant
merchant
json object
Define the detail of merchant information
referenceMerchantId
string
1 - 32 charactersMerchant identifier
merchantMCC
string
1 - 32 charactersMerchant MCC
merchantName
string
1 - 256 charactersMerchant name
merchantDisplayName
string
1 - 64 charactersDisplay name of merchant
merchantAddress
json object
Define the detail of merchant address information
region
string
1 - 2 charactersRequiredRegion name, in format alpha-2 code according to ISO3166
state
string
1 - 8 charactersState/County/Province name
city
string
1 - 32 charactersCity/District/Suburb/Town/Village name
address1
string
1 - 256 charactersAddress line 1(Street address/PO Box/Company name)
address2
string
1 - 256 charactersAddress line 2(Apartment/Suite/Unit/Building)
zipCode
string
1 - 32 charactersZIP or postal code
merchantRegisterDate
string
25 charactersMerchant register time from merchant, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
store
json object
Define the detail of merchant store information
referenceStoreId
string
1 - 64 charactersRequiredThe store belongs to a merchant and the identifier assigned by the corresponding merchant to the store is unique under the merchant
storeName
string
1 - 256 charactersStore name
storeMCC
string
1 - 32 charactersStore business category code
storeDisplayName
string
1 - 64 charactersDisplay name of store
storeTerminalId
string
1 - 64 charactersUnique identifier of store's terminal
storeOperatorId
string
1 - 64 charactersUnique identifier of store's terminal operator
storeAddress
json object
The address of the store
region
string
1 - 2 charactersRequiredRegion name, in format alpha-2 code according to ISO3166
state
string
1 - 8 charactersState/County/Province name
city
string
1 - 32 charactersCity/District/Suburb/Town/Village name
address1
string
1 - 256 charactersAddress line 1(Street address/PO Box/Company name)
address2
string
1 - 256 charactersAddress line 2(Apartment/Suite/Unit/Building)
zipCode
string
1 - 32 charactersZIP or postal code
storePhoneNo
string
1 - 16 charactersPhone number of store
originOrderAmount
money
ConditionalOrigin order amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
Conditional Info
Y:= International transaction (The transaction is paid not in IDR Currency)
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
exchangeRate
json object
ConditionalDefine the detail of exchange rate information
Conditional Info
Y:= International transaction (The transaction is paid not in IDR Currency)
rate
string
1 - 64 charactersConditionalRate of exchange value represents the relation between two currencies. For example,
15917.2690
indicates that one USD is equivalent to 15917.2690 IDRConditional Info
Y:= International transaction
exchangeRelation
string
1 - 64 charactersConditionalExchange rate between two currencies. For example
USD/IDR
, refers to how much of one currency (in this case, Indonesian Rupiah or IDR) can be exchanged for one unit of another currency (in this case, US Dollar or USD)Conditional Info
Y:= International transaction
totalAmount
money
ConditionalTotal amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
Conditional Info
Y:= International transaction (The transaction is paid not in IDR Currency)
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
paymentPromoInfo
json object
ConditionalDefine the detail of payment promo information, contains promotion that handled and set by merchant
Conditional Info
Y:= If have promotion in payment phase
promoId
string
1 - 128 charactersRequiredPromo identifier
promoName
string
1 - 128 charactersRequiredPromo name
promoType
string
RequiredPromo type, refer to PromoTypeEnum
INSTANT_DISCOUNT
string
Instant discount
COUPON
string
Coupon
savingsAmount
money
RequiredSavings amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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
refundPromoInfo
json object
ConditionalDefine the detail of refund promo information
Conditional Info
Y:= If have promo info in refund phase
promoId
string
1 - 128 charactersRequiredPromo identifier
promoName
string
1 - 128 charactersRequiredPromo name
promoType
string
RequiredPromo type, refer to PromoTypeEnum
refundAmount
money
RequiredRefund amount. Contains two sub-fields:
1. Value: Transaction amount, including the cents
2. Currency: Currency code based on ISO
1. Value: Transaction amount, including the cents
2. 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.order.extendInfo
string
1 - 4096 charactersAdditional information of extend
additionalInfo.mcc
string
1 - 64 charactersRequiredAdditional information of merchant category code. This parameter is used to identify the type of business in which a merchant is engaged. Refer to Details of Merchant Category Code
additionalInfo.envInfo
json object
RequiredAdditional information of environment
sessionId
string
1 - 128 charactersSession identifier
tokenId
string
1 - 128 charactersToken identifier
websiteLanguage
string
1 - 16 charactersWebsite language
clientIp
string
1 - 32 charactersClient IP address
osType
string
1 - 128 charactersOperating system type
appVersion
string
1 - 128 charactersApp version
sdkVersion
string
1 - 128 charactersSDK version
sourcePlatform
string
1 - 32 charactersRequiredSource platform, refer to SourcePlatformEnum
IPG
string
The source platform is independent payment gateway
orderTerminalType
string
1 - 32 charactersRequiredOrder terminal type, refer to OrderTerminalTypeEnum
APP
string
Mobile Application
WEB
string
Browser Web
WAP
string
Mobile Wap
SYSTEM
string
System Call
terminalType
string
1 - 32 charactersRequiredTerminal type, refer to TerminalTypeEnum
APP
string
Mobile Application
WEB
string
Browser Web
WAP
string
Mobile Wap
SYSTEM
string
System Call
orderOsType
string
1 - 128 charactersOrder operating system type
merchantAppVersion
string
1 - 128 charactersMerchant App version
extendInfo
string
1 - 4096 charactersExtend information
additionalInfo.extendInfo
string
1 - 4096 charactersAdditional information of extend
POST .../rest/redirection/v1.0/debit/payment-host-to-host HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-23T08:31:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221
{
"partnerReferenceNo": "2020102900000000000001",
"merchantId": "23489182303312",
"subMerchantId": "310928924949487",
"amount": {
"value": "12345678.00",
"currency": "IDR"
},
"urlParams": [{
"url": "https://test.bi.go.id/v1/test",
"type": "PAY_RETURN",
"isDeeplink": "Y"
}],
"externalStoreId": "239840198240795109",
"validUpTo": "2020-12-23T07:44:11+07:00",
"pointOfInitiation": "Mobile App",
"disabledPayMethods": "CREDIT_CARD",
"payOptionDetails": [{
"payMethod": "CREDIT_CARD",
"payOption": "CREDIT_CARD_VISA",
"transAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"feeAmount": {
"value": "12345678.00",
"currency": "IDR"
},
"cardToken": "d89ca90ua90sd80as9809",
"merchantToken": "a90ua90sd80d89cas9809",
"additionalInfo": {
"topupAndPay": "true",
"payerAccountNo": "20050000000001503276",
"saveCardAfterPay": "true",
"channelInfo": "{\"key\" : \"value\" }",
"issuingCountry": "IN",
"assetType": "true",
"extendInfo": "{ \"key\" : \"value\" }"
}
}],
"additionalInfo": {
"supportDeepLinkCheckoutUrl": true,
"phoneNumber": "",
"publicUserId": "",
"productCode": "51051000100000000001",
"serviceInfo": {
"serviceType": "INVESTMENT",
"serviceScenario": "EMAS_PURCHASE",
"extendInfo": "{\"serviceId\":\"CV19A56370e8a00d54293aab8001e4794\", \"bizScenario\":\"BUY_GOLD\"}"
},
"order": {
"buyer": {
"externalUserType": "",
"nickname": "",
"externalUserId": "",
"userId": ""
},
"seller": {
"externalUserType": "",
"nickname": "mike",
"externalUserId": "",
"userId": "216610000000010034501"
},
"orderTitle": "Women Summer Dress New White Lace Sleeveless Cute Casual Summer Dresses Vestidos roupas femininas WQW1045",
"merchantTransType": "type",
"orderMemo": "Memo",
"createdTime": "2020-12-23T08:31:11+07:00",
"goods": [{
"unit": "Kg",
"category": "travelling/subway",
"price": {
"value": "10.00",
"currency": "IDR"
},
"merchantShippingId": "564314314574327545",
"merchantGoodsId": "24525635625623",
"description": "Women Summer Dress New White Lace Sleeveless Cute Casual Summer Dresses Vestidos roupas femininas WQW1045",
"snapshotUrl": "[http://snap.url.com]",
"quantity": "",
"extendInfo": ""
}],
"shippingInfo": [{
"chargeAmount": {
"value": "20.00",
"currency": "IDR"
},
"lastName": "Li",
"trackingNo": "646431431322332133",
"countryName": "JP",
"merchantShippingId": "564314314574327545",
"cityName": "Atlanta",
"address1": "137 W San Bernardino",
"address2": "4114 Sepulveda",
"phoneNo": "2423-2322342",
"areaName": "Rd",
"email": "abc@gmail.com",
"zipCode": "310001",
"stateName": "GA",
"faxNo": "2123-11113",
"carrier": "Federal Express",
"firstName": "Jim",
"mobileNo": "13765443223"
}],
"extendInfo": ""
},
"mcc": "5732",
"envInfo": {
"sessionId": "8EU6mLl5mUpUBgyRFT4v7DjfQ3fcauthcenter",
"tokenId": "a8d359d6-ca3d-4048-9295-bbea5f6715a6",
"websiteLanguage": "en_US",
"clientIp": "10.15.8.189",
"osType": "Windows.PC",
"appVersion": "1.0",
"sdkVersion": "1.0",
"sourcePlatform": "IPG",
"orderOsType": "IOS",
"merchantAppVersion": "1.0",
"terminalType": "SYSTEM",
"orderTerminalType": "WEB",
"extendInfo": "{\"deviceId\":\"CV19A56370e8a00d54293aab8001e4794\"}"
},
"extendInfo": ""
}
}
Content-Type
string
1 - 127 charactersRequiredContent type, value always
application/json
X-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:= Successfully processed
partnerReferenceNo
string
1 - 64 charactersRequiredUnique 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
webRedirectUrl
string
1 - 2048 charactersConditionalDANA checkout URL
Conditional Info
Y:= Successfully processed
additionalInfo
json object
Additional information
Content-Type: application/json
X-TIMESTAMP: 2020-12-23T08:31:11+07:00
{
"responseCode": "2005400",
"responseMessage": "Successful",
"referenceNo": "2020102977770000000009",
"partnerReferenceNo": "2020102900000000000001",
"webRedirectUrl": "https://pjsp.com/universal?bizNo=REF993883&...",
"additionalInfo":{}
}
Response | Cause | Solution |
---|---|---|
2005400Successful | Success to be processed | Mark Direct Debit Payment process as Success |
4005400Bad Request | General request failed error | Mark Direct Debit Payment process as Failed. Retry request with proper parameter |
4005401Invalid Field Format | Invalid format for certain field | Mark Direct Debit Payment process as Failed. Retry request with proper parameter |
4005402Invalid Mandatory Field | Missing or invalid format on mandatory field | Mark Direct Debit Payment process as Failed. Retry request with proper parameter |
4015400Unauthorized. [reason] | General unauthorized error | Mark Direct Debit Payment process as Failed. Retry request with proper parameter |
4035402Exceeds Transaction Amount Limit | Exceeds transaction amount limit | Mark Direct Debit Payment process as Failed. Try to adjust the order amount |
4035405Do Not Honor | Account or user status is abnormal | Mark Direct Debit Payment process as Failed. Retry request with proper parameter or can contact DANA to check the user/account status |
4035415Transaction Not Permitted.[reason] | Transaction not permitted | Mark Direct Debit Payment process as Failed. Retry request periodically or consult to DANA |
4045408Invalid Merchant | Merchant does not exist or status abnormal | Mark Direct Debit Payment process as Failed. Retry request with proper parameter |
4045418Inconsistent Request | Inconsistent request parameter found for the same partner reference number/transaction identifier | Mark Direct Debit Payment process as Failed. Retry with proper parameter |
4295400Too Many Requests | Maximum transaction limit exceeded | Mark Direct Debit Payment process as Pending. Retry request periodically by sending same request payload |
5005400General Error | General error non retry-able | Mark Direct Debit Payment process as Failed. Retry request periodically |
5005401Internal Server Error | Unknown internal server failure, please retry the process again | Mark Direct Debit Payment process as Pending. Retry request periodically by sending same request payload |
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 by sending same request payload, if still fails mark Direct Debit Payment process as Pending |
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) | • If the response code prefix are 202 and 5XX, mark Direct Debit Payment process as Pending
• If empty field/field does not exist, mark Direct Debit Payment process as Pending |