Indonesia

Learn about the dLocal supported payment methods in Indonesia.

Market specifications

Take a look of all the payment methods available.

Country reference Cards supported Alternative Payment Method supported

Cards

Find all the information about the card supported capabilities.

Capabilities Process Card Payments

Alternative Payments

Learn how to integrate cash, bank transfer or wallet payment.

Virtual Accounts Cash OVO (Redirect) OVO Dana LinkAja ShopeePay QRIS Flip Recurring Payments


Market specifications

Do you want to know more information about Indonesia's market? Go to the Indonesia’s economy and eCommerce market article.

Country reference

country codecurrency codedocument namedocument formatdocument required?
IDIDRNIK16 digitsYes

Cards supported

payment_method_idBrand IDNamepayment_method_typeDetailsAllowed FlowsLogo
CARDVIVisaCARDCredit Card ​DIRECT REDIRECT
CARDVDVisa Debit ​CARDDebit Card ​DIRECT REDIRECT
CARDMCMastercardCARDCredit Card ​DIRECT REDIRECT
CARDMDMastercard Debit ​CARDDebit Card ​DIRECT REDIRECT
CARDJCJCBCARDCredit Card ​DIRECT REDIRECT
CARDAEAmerican ExpressCARDCredit Card ​DIRECT REDIRECT

Alternative Payment Method supported

payment_method_idNamepayment_method_typeDetailsAllowed FlowsLogo
VSVirtual AccountsWALLETWalletDIRECT REDIRECT
ROCashTICKETCash PaymentsREDIRECT
XWOVO (Redirect)WALLETWalletREDIRECT
OVOVOWALLETWalletDIRECT
DNDanaWALLETWalletDIRECT REDIRECT
LKLinkAjaWALLETWalletREDIRECT
SOShopeePayWALLETWalletREDIRECT
QRQRISWALLETWalletDIRECT REDIRECT
IOFlipBANK_TRANSFERBank TransferREDIRECT
XURecurring PaymentsWALLETWalletREDIRECT

Cards

Capabilities

Visa CreditVisa DebitMastercard CreditMastercard DebitJBCAmerican Express
Minimum amount11000 IDR11000 IDR11000 IDR11000 IDR11000 IDR11000 IDR
RefundsYesYesYesYesYesYes
RecurringYesYesYesYesYesYes
Chargeback optionYesYesYesYesYesYes
Chargeback Dispute optionYesYesYesYesYesYes
DescriptorCan be personalized, depending on provider.Can be personalized, depending on provider.Can be personalized, depending on provider.Can be personalized, depending on provider.Can be personalized, depending on provider.Can be personalized, depending on provider.

How to process Card Payments?

Learn how to process payments with credit and debit cards with dLocal in our Card Payments section.



Alternative Payment Method

Wallets are the most popular form of fintech service in Indonesia. They allow the user to pay for almost anything: bill payments, barcode scan transactions for offline payments, and online purchases.

Virtual Accounts

A Virtual Account is a digital payment method through an account that is created virtually for each customer. To make payments, customers will be referred to their Virtual Accounts.

A Virtual Account consists of a unique customer ID number. It requires the customer to transfer funds to a virtual bank account via a banking mobile application, internet banking, or physically via ATM.

Capabilities

Virtual Accounts
Min. amount11000 IDR
Max. expiration time supported30 days (Can be extended by provider)
Notification delayImmediate
RefundsYes
FlowDIRECT
REDIRECT

UX Flow

Payers select their bank, and payment instructions will be displayed.

Payers select their bank, and payment instructions will be displayed.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumber.Amount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringVS

ID of the selected payment method.
Yes
payment_method_flowStringDIRECT or REDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "VS",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545sdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.comm/success_page"
}
{
    "id": "D-4-89fb9d50-f025-dg43-b4d2-047114b2bac2",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "VS",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "DIRECT",
    "country": "ID",
    "bank_transfer": {},
    "ticket": {},
    "created_date": "2023-01-27T18:30:24.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "notification_url": "http://merchant.com/notification/new"
}

Cash

Reach the unbanked by enabling your customers to complete cash payments. With dLocal’s solution, you can show your customers a payment code for them to complete the payment in any of the supported payment points.

Capabilities

Cash
Min. amount11000 IDR
Max. expiration time supported48 hours
Notification delayImmediate
RefundsYes
FlowDIRECT
REDIRECT

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringRO

ID of the selected payment method.
Yes
payment_method_flowStringDIRECT or REDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

UX Flow

Example Cash UI built with the information in the example above.

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "RO",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545sk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "D-4-59104f48-fd43-432b-80a7-795d01ae295c",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "RO",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "DIRECT",
    "country": "ID",
    "bank_transfer": {},
    "ticket": {},
    "created_date": "2023-01-27T18:23:38.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545sdk3483kqw0",
    "notification_url": "http://merchant.com/notification/new"
}

OVO (Redirect)

The most popular form of fintech service in Indonesia.

They allow the user to pay for almost anything: bill payments, barcode scan transactions for offline payments, and online purchases. If a merchant is unable to collect the payer's data, dLocal can do it with the OVO Redirect option.

Capabilities

OVO (Redirect)
Min. amount11000 IDR
Max. expiration time supported55 seconds
Notification delayImmediate
RefundsYes
FlowREDIRECT

UX Flow

The screenshots illustrate a generic OVO redirect flow.

The screenshots illustrate a generic OVO redirect flow.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringXW

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "XW",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "R-4-1203e06f-b9e6-47fb-h6yt-76d657c95ba2",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "XW",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "REDIRECT",
    "country": "ID",
    "created_date": "2023-01-27T18:32:42.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchant.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-202e8b95-6964-4de6-a431-0b64b3bf0b66"
}

OVO

The most popular form of fintech service in Indonesia.

They allow the user to pay for almost anything: bill payments, barcode scan transactions for offline payments, and online purchases. Using the Direct option allows merchants to collect payer's data on their checkout and send them in the payment request to dLocal.

Capabilities

OVO
Min. amount11000 IDR
Max. expiration time supported55 seconds
Notification delayImmediate
RefundsYes
FlowDIRECT

UX Flow

The screenshots illustrate a generic OVO direct flow.

The screenshots illustrate a generic OVO direct flow.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringOV

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
payer.phoneNumberUser's phone number.Yes
wallet.nameStringName of the payer's walletNo
wallet.saveBooleanDetermines if you want to receive a wallet token for future payments or not.No
wallet.captureBooleanDetermines if you want to capture the payment funds or not.No
wallet.usernameStringUsername of the payer's wallet account.Yes
wallet.emailStringEmail of the payer's wallet account.Yes
wallet.tokenStringToken of a previous payment from the same wallet,For recurring payments, yes.
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "OV",
    "payment_method_flow": "DIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "phone": "+628432003239",
        "address": {
             "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        },
        "document": 1234567890123456
    },
    "wallet": {
        "name": "Jane Doe",
        "save": true,
        "capture": true,
        "verify": false,
        "username": "Jane123",
        "email": "[email protected]",
        "expiration": 60,
        "label": "label",
        "state": "state",
        "token": ""
    },
    "order_id": "34545hgdsdk3483kqw0"
}
{
    "id": "D-4-db437e3c-8ead-gf45-bec4-aaed792ed96a",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "OV",
    "payment_method_type": "TICKET",
    "payment_method_flow": "DIRECT",
    "country": "ID",
    "bank_transfer": {},
    "ticket": {},
    "created_date": "2023-01-27T20:19:20.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0"
}

Dana

Dana is a digital wallet that provides cashless and cardless payments. It brings a faster, easier, and more secure way of paying for all online and offline transactions.

DANA is Indonesia's one-stop solution for Indonesian daily activities; from transferring money, and purchasing in DANA merchants, to topping up mobile credit and paying your bills.

Capabilities

Dana
Min. amount11000 IDR
Max. expiration time supported30 minutes
Notification delayImmediate
RefundsYes
FlowDIRECT
REDIRECT

UX Flow

The screenshots illustrate a generic Dana redirect flow.

The screenshots illustrate a generic Dana redirect flow.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringDN

ID of the selected payment method.
Yes
payment_method_flowStringDIRECT or REDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "DN",
    "payment_method_flow": "DIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "D-4-58463cf7-7de6-dsf2-be7f-eedf8ced2141",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "DN",
    "payment_method_type": "TICKET",
    "payment_method_flow": "DIRECT",
    "country": "ID",
    "bank_transfer": {},
    "ticket": {},
    "created_date": "2023-01-27T18:50:03.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "notification_url": "http://merchant.com/notification/new"
}

LinkAja

LinkAja is an integrated e-wallet service.

It allows users to top up credit, buy packages, pay online, pay merchants, pay bills, buy game vouchers, donate, send money, and many more from the smartphone.

Capabilities

LinkAja
Min. amount11000 IDR
Max. expiration time supported30 minutes
Notification delayImmediate
RefundsYes
FlowREDIRECT

UX Flow

The screenshots illustrate a generic LinkAja redirect flow.

The screenshots illustrate a generic LinkAja redirect flow.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringLK

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

"{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "LK",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}"
{
    "id": "R-4-0c601b8a-fr43-4765-920e-300daf285388",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "LK",
    "payment_method_type": "TICKET",
    "payment_method_flow": "REDIRECT",
    "country": "ID",
    "created_date": "2023-01-27T18:58:45.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchant.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-353e669b-70b1-4223-a8eb-962c1fcd0511"
}

ShopeePay

ShopeePay is Shopee’s digital wallet where users can make safe and cashless payments.

Through dLocal it can be used for any online transactions within Shopee - such as buying mobile load and bills payment.

Capabilities

ShopeePay
Min. amount11000 IDR
Max. expiration time supported30 minutes
Notification delayImmediate
RefundsYes
FlowREDIRECT

UX Flow

The screenshots illustrate a generic ShopeePay redirect flow.

The screenshots illustrate a generic ShopeePay redirect flow.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringSO

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 39900,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "SO",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Test dLocal",
        "email": "[email protected]",
        "phone": "81331452156",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
     "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "R-55078-23e5449a-8i76-4b5e-b4f3-c19aedd33180",
    "amount": 39900,
    "currency": "IDR",
    "payment_method_id": "SO",
    "payment_method_type": "TICKET",
    "payment_method_flow": "REDIRECT",
    "country": "ID",
    "created_date": "2023-02-16T20:09:53.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchant.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-1a8d233e-87y6-4938-b043-ae7d0e3b3975"
}

QRIS

Customers can pay by scanning the QR code using any payment method. Quick Response Indonesian Standard is a standardized QR code regulated by Bank Indonesia (BI) to facilitate cashless payment in Indonesia.

Capabilities

QRIS
Min. amount11000 IDR
Max. expiration time supported2 days
Notification delayImmediate
RefundsYes
FlowDIRECT
REDIRECT

UX Flow

The screenshots illustrate a generic Internet banking redirect flow.
The specifics of the flow can change depending on the payment method selected to complete the transaction.

The screenshots illustrate a generic QRIS redirect flow.
The specifics of the flow can change depending on the payment method selected to complete the transaction.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringQR

ID of the selected payment method.
Yes
payment_method_flowStringDIRECT or REDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "QR",
    "payment_method_flow": "DIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "D-4-528db4f4-gg55-478b-9d85-44bb32495523",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "QR",
    "payment_method_type": "TICKET",
    "payment_method_flow": "DIRECT",
    "country": "ID",
    "bank_transfer": {},
    "ticket": {},
    "created_date": "2023-01-27T19:12:50.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "34545hgdsdk3483kqw0",
    "notification_url": "http://merchant.com/notification/new"
}

Flip

A leading interbank money transfer fintech company in Indonesia.

With Flip, the platform opens bank accounts in most of the largest Indonesian banks and receives money from end-users who have accounts with these banks.

Capabilities

Flip
Min. amount11000 IDR
Max. expiration time supported3 days
Notification delayImmediate
RefundsYes
FlowREDIRECT

UX Flow

The screenshots illustrate a generic Flip redirect flow.
 The specifics of the flow can change depending on the payment method selected to complete the transaction.

The screenshots illustrate a generic Flip redirect flow.
 The specifics of the flow can change depending on the payment method selected to complete the transaction.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringIO

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 15000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "IO",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "34545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
{
    "id": "R-4-382eddf7-21da-rfe3-b07b-d99637d16930",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "IO",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "REDIRECT",
    "country": "ID",
    "created_date": "2023-01-27T19:26:33.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "1134545hgdsdk3483kqw0",
    "description": "Tshirt",
    "notification_url": "http://merchant.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-d793dd29-1a7b-4re3-b955-e67adbbae840"
}

Recurring Payments

Recurring Payments allow Indonesian customers to pay for subscriptions and choose their preferred payment method: Dana or BRI.

Dana is a digital wallet that takes cashless and cardless spending to the next level. It brings a faster, easier, and more secure way of paying for all online and offline transactions. With Dana subscription, an automatic payment system for subscription products, after purchasing, the next month's payment will be deducted directly from the customer's DANA Balance.

BRI Direct Debit is an e-Commerce payment feature that connects e-Commerce accounts with BRI debit cards as a Source of Funds (SoF) so that the transaction payment process takes place quickly with a single registration process. By using the Direct Debit feature, digital business customers only need to register their debit card once, then for the next transaction the customer only needs to enter the one-time password (OTP) code received.

Capabilities

Recurring Payments
Min. amount11000 IDR
Max. expiration time supported30 minutes
Notification delayImmediate
RefundsYes
FlowREDIRECT
Supported walletsDana (Recurring), BRI (Direct Debit Recurring).

UX Flow

The screenshots illustrate a generic Recurring payment redirect flow using Dana wallet.
The specifics of the flow can change depending on the payment method selected to complete the transaction.

The screenshots illustrate a generic Recurring payment redirect flow using Dana wallet.
The specifics of the flow can change depending on the payment method selected to complete the transaction.

Request parameters

PropertyTypeDescriptionMandatory?
amountNumberAmount to be charged.Yes
currencyStringIDR

Transaction currency in ISO 4217.
Yes
countryStringID

Transaction country in ISO 3166.
Yes
payment_method_idStringXU

ID of the selected payment method.
Yes
payment_method_flowStringREDIRECTYes
payer.nameStringName of the payer.Yes
payer.emailStringEmail of the payer.Yes
payer.documentNumberDocument of the payer.Yes
payer.phoneNumberUser's phone number.Yes
wallet.nameStringName of the payer's wallet.No
wallet.saveBooleanDetermines if you want to receive a wallet token for future payments or not.No
wallet.captureBooleanDetermines if you want to capture the payment funds or not.No
wallet.usernameStringUsername of the payer's wallet account.Yes
wallet.emailStringEmail of the payer's wallet account.Yes
wallet.tokenStringToken of a previous payment from the same wallet.For recurring payments, yes.
order_idNumberID of the capture given by the merchant in their system. Think of it as an external id of the capture.No
notification_urlStringNotifications will be sent in every change of status of a payment to the notification_url specified by the merchant.No

Examples

{
    "amount": 10000,
    "currency": "IDR",
    "country": "ID",
    "payment_method_id": "XU",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "phone": "+628050976593",
        "document": "1234567890123456",
        "address": {
            "country": "ID",
            "state": "Jakarta",
            "city": "Jakarta",
            "zip_code": "88058",
            "street": "Main St.",
            "number": "5940"
        }
    },
    "wallet": {
        "name": "Jane Doe",
        "save": true,
        "capture": true,
        "username": "Jane2002",
        "email": "[email protected]",
        "expiration": 60,
        "label": "label",
        "state": "state",
        "recurring_info": {
            "subscription_frequency_unit": "MONTH",
            "subscription_frequency": 1,
            "subscription_start_at": "20230330",
            "subscription_end_at": "20240330"
        }
    },
    "order_id": "Rully Test",
    "description": "Rully Test",
    "callback_url": "http://merchantsite.com/notification/new",
    "notification_url": "http://merchantsite.com/success_page"
}
{
    "id": "F-4-011d13f9-829d-4re3-8b2b-3b20c39d942f",
    "amount": 15000,
    "currency": "IDR",
    "payment_method_id": "XU",
    "payment_method_type": "WALLET",
    "payment_method_flow": "REDIRECT",
    "country": "ID",
    "created_date": "2023-02-15T21:45:29.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchant.com/success_page",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-continue/M-c6f3f62c-fgt5-4be8-9108-794f9235abdf"
}