Credit Card Subscription

Credit Card Subscription Payment Notification

Payment notification for credit card subscriptions.

Request URL

URL: notifyUrl (value from create order)

HTTPMethod: POST

EndpointUrl: Path of the URL, e.g. URL=https://merchant-domain.com/v2.2/cc/notify, Path=/v2.2/cc/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
agreementIdString(32)YesAgreement ID, obtained via subscription order query
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)NoFee, two decimals
totalTransFeeDecimal(12,2)NoTotal fee rate (excl. VAT), two decimals
vatFeeDecimal(12,2)NoVAT fee, two decimals

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": "N01000120251031001000000101761881477153",
  "serviceCode": "sub.payment",
  "paymentType": "StaticCcSub",
  "amount": 200000.0,
  "agreementId": "PY-1762845307.595957",
  "platformTradeNo": "2025103100100000010",
  "createTime": "20251031100919",
  "successTime": "20251031100919",
  "status": "02",
  "transFeeRate": 0.02,
  "transFeeAmount": 0.0,
  "totalTransFee": 4000.0,
  "vatFee": 440.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"
}