Dana Subscription

Dana Subscription Payment Notification

Asynchronous payment notification for DANA subscriptions.

Request URL

URL: notifyUrl (value sent when creating the subscription)

HTTPMethod: POST

EndpointUrl: path based on the URL, e.g. URL=https://merchant-domain.com/v2.2/dana/notify, Path=/v2.2/dana/notify

Subscription Payment Notification Request (Paylabs -> Merchant)

Data Signing Rules

Field NameTypeValueRequired
Content-TypeString(30)Fixed value "application/json;charset=utf-8"Yes
X-TIMESTAMPString(29)Current time, format 2022-09-16T16:58:47.964+07:00Yes
X-SIGNATUREString(64)Signature. For details see Data Signing RulesYes
X-PARTNER-IDString(20)Merchant IDYes
X-REQUEST-IDString(64)Unique ID for each requestYes

Body

ParameterTypeRequiredRemarks
requestIdString(64)YesUnique identifier on every request
serviceCodeString(64)NoService Code, fixed value: sub.payment
merchantIdString(20)YesMerchant ID
storeIdString(30)NoIf using branch ID
paymentTypeString(20)YesPayment Type
amountDecimal(12,2)YesAmount in IDR with 2 decimals
merchantTradeNoString(32)YesMerchant transaction number (subscription ID)
platformTradeNoString(32)NoPaylabs platform order number
createTimeString(16)NoyyyyMMddHHmmss
successTimeString(16)NoyyyyMMddHHmmss
statusString(32)No01 PENDING 09 FAILED 02 SUCCEEDED
productNameString(100)NoProduct name
transFeeRateDecimal(6,6)NoTransaction fee rate
transFeeAmountDecimal(12,2)NoSingle transaction fee
totalTransFeeDecimal(12,2)NoTotal transaction fees (excluding VAT)
vatFeeDecimal(12,2)NoVAT fee

Subscription Payment Notification Response (Merchant -> Paylabs)

Header

Data Signing Rules

Field NameTypeValueRequired
Content-TypeString(30)Fixed value "application/json;charset=utf-8"Yes
X-TIMESTAMPString(29)Current time, format 2022-09-16T16:58:47.964+07:00Yes
X-SIGNATUREString(64)Signature. For details see Data Signing RulesYes
X-PARTNER-IDString(20)Merchant IDYes
X-REQUEST-IDString(64)Unique ID for each requestYes

Body

Error Code

ParameterTypeRequiredRemarks
requestIdString(64)YesUnique identifier on every request
errCodeString(32)Yes0 means success, otherwise see Error Code
errCodeDesString(128)NoError description
merchantIdString(20)YesMerchant ID
storeIdString(30)NoIf using branch ID

Example

Request

POST URL provided by Merchant
# HTTP Header
Content-Type: application/json;charset=utf-8
X-TIMESTAMP: 2022-09-16T16:58:47.964+07:00
X-SIGNATURE: xxxxxxxxx
X-PARTNER-ID: 010001
X-REQUEST-ID: xxxxxxxxxxxxxxxxxxxxxxxx

# HTTP Body
{
  "merchantId": "010001",
  "requestId": "N01000120251022001000000641761133472132",
  "serviceCode": "sub.payment",
  "paymentType": "StaticDanaSub",
  "amount": 15000.0,
  "merchantSubId": "PY-1761114620.5313134",
  "platformTradeNo": "2025102200100000064",
  "createTime": "20251022175231",
  "successTime": "20251022175230",
  "status": "02",
  "productName": "test subTitle",
  "transFeeRate": 0.0,
  "transFeeAmount": 2500.0,
  "totalTransFee": 2500.0,
  "vatFee": 275.0
}

Response

POST URL provided by Merchant
# HTTP Header
Content-Type: application/json;charset=utf-8
X-TIMESTAMP: 2022-09-16T16:58:47.964+07:00
X-SIGNATURE: xxxxxxxxx
X-PARTNER-ID: 010001
X-REQUEST-ID: xxxxxxxxxxxxxxxxxxxxxxxx

# HTTP Body
{
  "merchantId": "010001",
  "requestId": "N01029020230619290000003911687350380290",
  "errCode": "0"
}