Finish Notify
POST/v1.0/debit/notify
This API is used to notify payment status and information from DANA to merchant's platform
API Type
SNAP API
Expected Timeout
8 second
SNAP Service Code
56
Accept
application/json
Content Type
applciation/json
This API is used for the following solution:
This solution provides the APIs of the Payment Gateway core system. It is specifically designed for merchants who wants to use their own checkout pages to display payment methods, such as virtual account or QRIS.
This solution offers a DANA-hosted checkout page designed for easy merchant integration. DANA handles the order creation and processing on behalf of merchants. This solution is ideal for merchants seeking faster integration since they don't need to develop their own checkout page.
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)
originalPartnerReferenceNo
string
1 - 64 charactersRequiredOriginal transaction identifier on DANA system
originalReferenceNo
string
1 - 64 charactersRequiredOriginal transaction identifier on partner system
originalExternalId
string
1 - 36 charactersOriginal external identifier on header message
merchantId
string
1 - 64 charactersRequiredMerchant identifier that is unique per each merchant
subMerchantId
string
1 - 32 charactersInformation of sub 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
latestTransactionStatus
string
2 charactersRequiredCategory code for the status of the transaction. The values include:
•
•
•
00
= Success, the order has been paid •
05
= Cancelled, the order has been closed because it is expiredtransactionStatusDesc
string
1 - 50 charactersDescription of transaction status
createdTime
string
25 charactersRequiredTransaction created time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
finishedTime
string
25 charactersRequiredTransaction finished time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
externalStoreId
string
1 - 64 charactersStore identifier to indicate to which store this payment belongs to
additionalInfo
json object
Additional information
additionalInfo.paymentInfo
json object
Additional information of payment
cashierRequestId
string
1 - 64 charactersRequiredCashier request identifier
paidTime
string
25 charactersRequiredInformation of paid time, in format YYYY-MM-DDTHH:mm:ss+07:00. Time must be in GMT+7 (Jakarta time)
payOptionInfos
array of json object
RequiredInformation of pay option. Refer to payOptionInfos for the detailed
payMethod
string
1 - 64 charactersRequiredPayment method name, refer to PayMethodEnum
BALANCE
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 charactersPayment option which shows the provider of this payment, refer to PayOptionEnum
NETWORK_PAY_PG_SPAY
string
Payment method with ShopeePay e-wallet
NETWORK_PAY_PG_OVO
string
Payment method with OVO e-wallet
NETWORK_PAY_PG_GOPAY
string
Payment method with Gopay e-wallet
NETWORK_PAY_PG_LINKAJA
string
Payment method with LinkAja e-wallet
NETWORK_PAY_PG_CARD
string
Payment method with Card
VIRTUAL_ACCOUNT_BCA
string
Payment method with BCA virtual account
VIRTUAL_ACCOUNT_BNI
string
Payment method with BNI virtual account
VIRTUAL_ACCOUNT_MANDIRI
string
Payment method with Mandiri virtual account
VIRTUAL_ACCOUNT_BRI
string
Payment method with BRI virtual account
VIRTUAL_ACCOUNT_BTPN
string
Payment method with BTPN virtual account
VIRTUAL_ACCOUNT_CIMB
string
Payment method with CIMB virtual account
VIRTUAL_ACCOUNT_PERMATA
string
Payment method with Permata virtual account
payAmount
money
RequiredPay amount. Contains two sub-fields:
1. Value: Amount, including the cents
2. Currency: Currency code based on ISO
1. Value: 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
transAmount
money
Trans amount. Contains two sub-fields: 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
chargeAmount
money
Charge amount. Contains two sub-fields:
1. Value: Amount, including the cents
2. Currency: Currency code based on ISO
1. Value: 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
payOptionBillExtendInfo
string
1 - 4096 charactersExtend information of pay option bill
extendInfo
string
1 - 4096 charactersExtend information
payRequestExtendInfo
string
1 - 4096 charactersExtend information of pay request
extendInfo
string
1 - 4096 charactersExtend information
additionalInfo.shopInfo
json object
Additional information of shop
shopId
string
1 - 64 charactersConditionalInformation of shop identifier
Conditional Info
Y:= externalShopId is blank
externalShopId
string
1 - 64 charactersConditionalInformation of external shop identifier
Conditional Info
Y:= shopId is blank
operatorId
string
1 - 32 charactersInformation of operator identifier
shopAddress
string
1 - 256 charactersInformation of shop address
divisionId
string
1 - 64 charactersInformation of division identifier
externalDivisionId
string
1 - 64 charactersInformation of external division identifier
divisionType
string
1 - 32 charactersInformation of division type
shopName
string
1 - 128 charactersInformation of shop name
additionalInfo.extendInfo
string
1 - 4096 charactersAdditional information of extend
additionalInfo.extendInfo.closedReason
string
1 - 64 charactersConditionalAdditional information of closed reason
Conditional Info
Y:= Order is closed
POST .../v1.0/debit/notify HTTP/1.2
Content-type: application/json
X-TIMESTAMP: 2020-12-23T07:44:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
CHANNEL-ID: 95221
{
"originalPartnerReferenceNo": "2020102900000000000001",
"originalReferenceNo": "2020102977770000000009",
"originalExternalId": "30443786930722726463280097920912",
"merchantId": "23489182303312",
"subMerchantId": "23489182303312",
"amount": {
"value": "10000.00",
"currency": "IDR"
},
"latestTransactionStatus": "00",
"transactionStatusDesc": "success",
"createdTime": "2020-12-21T17:07:18+07:00",
"finishedTime": "2020-12-21T17:07:20+07:00",
"externalStoreId": "91863213913112",
"additionalInfo": {
"paymentInfo": {
"paidTime": "2022-01-04T19:13:54+07:00",
"payRequestExtendInfo": "{\"key\":\"value\"}",
"extendInfo": "{\"topupAndPay\":\"false\",\"paymentStatus\":\"SUCCESS\"}",
"payOptionInfos": [
{
"payMethod": "NETWORK_PAY",
"payOption": "NETWORK_PAY_PG_OVO",
"payAmount": {
"value": "51312.00",
"currency": "IDR"
},
"transAmount": {
"value": "51312.00",
"currency": "IDR"
},
"chargeAmount": {
"value": "0.00",
"currency": "IDR"
},
"payOptionBillExtendInfo": "{}",
"extendInfo": "{\"key\":\"value\"}"
}
],
"cashierRequestId": "64c4fdc544a7edff9c1e51aebc80f2eb"
},
"shopInfo": {
"divisionId": "21665000011111119920",
"externalDivisionId": "Test",
"externalShopId": "TEST0000001",
"shopAddress": "{\"key\":\"value\"}",
"shopId": "216660000274111177110",
"shopName": "Test",
"operatorId": "",
"divisionType": ""
},
"extendInfo": "{\"closedReason\":\"some reason\"}"
}
}
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
Content-type: application/json
X-TIMESTAMP: 2020-12-23T07:44:16+07:00
{
"responseCode": "2005600",
"responseMessage": "Successful"
}
Response | Cause | Solution |
---|---|---|
2005600Successful | Success to be processed | Mark Finish Notify process as Success |
5005601Internal Server Error | Unknown internal server failure, please retry the process again | Mark Finish Notify process as Pending. Retry periodically within 7 days |
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 Finish Notify 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) |
|