Dana Subscription
Create Dana Subscription
Panduan membuat langganan (subscription) DANA via API Paylabs.
Request URL
URL: ${ROOT_URL}/dana/v1/sub/createsub
HTTPMethod: POST
EndpointUrl: /dana/v1/sub/createsub
Create Subscription Request Parameters
Header
| Field Name | Type | Value | Required |
|---|---|---|---|
| Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
| X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
| X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek | Yes |
| X-PARTNER-ID | String(20) | Merchant ID | Yes |
| X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
| Parameter | Type | Required | Remarks |
|---|---|---|---|
| requestId | String(64) | Yes | ID unik untuk setiap request |
| merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
| storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
| paymentType | String(20) | Yes | Tipe Pembayaran, silahkan lihat Tipe Pembayaran |
| requestAmount | decimal(12,2) | Yes | Nominal pada saat permintaan |
| feeType | String(3) | No | Jenis pengurangan biaya layanan:BEN�OUR. Standarnya BEN. Ketika OUR dipilih, biaya layanan akan ditambahkan ke nominal order secara otomatis. |
| merchantTradeNo | String(32) | Yes | Kode unik yang dibuat oleh Merchant untuk setiap transaksi |
| notifyUrl | String(200) | No | URL untuk menerima pengingat pembayaran, pembatalan, atau pemberitahuan penyelesaian. |
| returnUrl | String(200) | No | URL pengembalian frontend untuk langganan awal. |
| subTitle | String(128) | Yes | Judul langganan, ditampilkan kepada pengguna. |
| subMessage | String(256) | No | Deskripsi langganan, ditampilkan kepada pengguna. |
| +subInterval | Object | Yes | DAILY: Harian, WEEKLY: Mingguan, MONTHLY: Bulanan. |
| a?Otype | String(10) | Yes | DAILY: Day, WEEKLY: Week, MONTHLY: Month |
| a?Ovalue | Number(2) | Yes | Interval value, from 1 to 99 |
| +productInfo | Object | Yes | Rincian produk/layanan untuk pembayaran berulang. |
| a?Oid | String(10) | Yes | Product ID |
| a?Oname | String(32) | Yes | Product Name |
| a?Oprice | decimal(12,2) | Yes | Nilai dalam Rupiah, mendukung dua angka belakang koma |
| a?Otype | String(20) | Yes | Product Type |
| a?Ourl | String(200) | No | Product URL |
| a?Oquantity | Number(4) | Yes | Product Quantity |
paymentType
| Payment Type | Code |
|---|---|
| DANA E-Wallet (supports refund) | StaticDanaSub,DynamicDanaSub |
Create Subscription Response Parameters
Header
| Field Name | Type | Value | Required |
|---|---|---|---|
| Content-Type | String(30) | Isi dengan nilai "application/json;charset=utf-8" | Yes |
| X-TIMESTAMP | String(29) | Waktu saat ini, dengan format 2022-09-16T16:58:47.964+07:00 | Yes |
| X-SIGNATURE | String(64) | Signature. Untuk selengkapnya cek | Yes |
| X-PARTNER-ID | String(20) | Merchant ID | Yes |
| X-REQUEST-ID | String(64) | ID unik merepresentasikan setiap request yang dikirim | Yes |
Body
| Parameter | Type | Required | Remarks |
|---|---|---|---|
| requestId | String(64) | Yes | ID unik untuk setiap request |
| errCode | String(32) | Yes | 0 adalah sukses, untuk lainnya bisa lihat tabel |
| errCodeDes | String(128) | No | Deskripsi terkait error |
| merchantId | String(20) | Yes | ID unik yang disediakan oleh payment gateway ke merchant |
| storeId | String(30) | No | Jika Merchant memiliki cabang dan ingin membuat order dengan ID cabang |
| paymentType | String(20) | Yes | Tipe Pembayaran, silahkan lihat Tipe Pembayaran |
| requestAmount | Decimal(12,2) | No | Jumlah pembayaran |
| amount | decimal(12,2) | Yes | Jumlah dalam Rupiah Indonesia, dengan 2 angka desimal |
| merchantTradeNo | String(32) | Yes | Nomor Transaksi Merchant, unique subscription ID |
| createTime | String(16) | No | yyyyMMddHHmmss |
| status | String(32) | No | 01: Subscription created 02: Payment successful 06: Subscription canceled 09: Subscription creation failed |
| checkoutUrl | String(variable) | No | URL bagi pengguna untuk menyelesaikan langganan |
| expiredTime | String(v) | No | yyyyMMddHHmmss (setelah kedaluwarsa, checkoutUrl tidak dapat digunakan lagi) |
Example
Request
POST /dana/v1/sub/createsub
# 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
{
"requestId": "PYeb8699ac-f46b-491f-a415-c894e9a5bca7",
"merchantId": "010001",
"paymentType": "StaticDanaSub",
"requestAmount": 15000,
"feeType": "BEN",
"merchantSubId": "PY-1763012574.0645576",
"notifyUrl": "https://merchant-domain.com/xxx",
"redirectUrl": "https://paylabs.co.id/home.html",
"subTitle": "test subTitle",
"subMessage": "test subMessage",
"subInterval": {
"type": "WEEKLY",
"value": "1"
},
"productInfo": {
"id": "1",
"name": "test",
"price": 15000,
"type": "1",
"quantity": 1
}
}Response
POST /dana/v1/sub/createsub
# 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": "PYeb8699ac-f46b-491f-a415-c894e9a5bca7",
"errCode": "0",
"paymentType": "StaticDanaSub",
"requestAmount": 15000,
"amount": 15000,
"merchantSubId": "PY-1763012574.0645576",
"createTime": "20251113124254",
"status": "01",
"checkoutUrl": "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"expiredTime": "20251113125254"
}