Payout

When performing a payout, the customer initiates a payout and then just waits for the funds to be credited to their account. The customer themself doesn't participate in the payout processing procedure.

Countries and regions Indonesia
Payment currencies IDR
Payment amount limits Contact your key account manager at Monetix for details. Also you can check the payment amount limits in your project by using Dashboard.
Payment processing time Contact your key account manager at Monetix for details.
Currency conversion On the Monetix side
Refund
Onboarding and access fee Contact your key account manager at Monetix for details.
Special considerations
  • The payment amount in IDR must be strictly integer, otherwise the payment platform will remove the fractional part when processing the request. For example, if you specify a 95.50 IDR amount in the request, the payment platform will perform a 95.00 IDR payment.

    In requests, the payment amount must be specified only in minor currency units! For example, a 95.00 IDR payment amount must be submitted as 9500 in the request. You can check the number of digits for minor currency units for any currency in Currency codes.

  • If you specify a different payment currency in your request, the Monetix payment platform will convert the payment amount into IDR and round it down to 1000.00 IDR.

Operations support

Interfaces
Payment Page Gate Dashboard
Payout

You can check the payment amount limits in your project by using Dashboard. To check your payment amount limits, go to Dashboard, select the Projects section, and then click the Payment methods tab.

The following sections provide more information about the payment processing flow and the analysis of completed payments.

Payout by using Gate

General information

To perform a payout by using Gate with the Banks of Indonesia payment method:

  1. Send a request with all the required parameters and signature to the Monetix URL.
  2. Accept the callback with the payout result from the payment platform.

The following picture provides the details of the payout processing flow in the Banks of Indonesia payment method.

Figure 1. Payout processing flow when performing a payout by using Gate
  1. The customer initiates a payout in your system.
  2. Your system sends the payout request to the Monetix payment platform.
  3. The payment platform sends you a response in which it acknowledges your request and provides the request validation result. (For more information about the response format, see Response structure.)
  4. The payment platform processes the request and forwards it to the bank service.
  5. The bank service informs the payment platform about the payout result.
  6. The payment platform sends a callback with the payout result to your system.
  7. Your system sends the payout result to the customer.

Request

This section provides the instructions on how to build the request for payout with the Banks of Indonesia payment method.

HTTP request method POST
Request body format JSON
API endpoint/v2/payment/banks/indonesia/payout
Full API endpoint specification /v2/payment/banks/{payment_method}/payout
Table 1. Basic parameters of a payout request

strictly required—the parameter must be in the initial request.

✱—the parameter may not be required in some cases. Contact your account manager at Monetix for details.

ObjectParameterDescription

general
object
strictly required

project_id
integer
strictly required

Project ID you obtained from Monetix when integrating.

Example: 1234

payment_id
string
strictly required

Payment ID unique within your project.

Example: payment_47

signature
string
strictly required

Signature created after you've specified all the request parameters. For more information about signature generation, see Signature generation and verification.

customer
object
strictly required

id
string
strictly required

Unique ID of the customer within your project.

Example: customer_123

ip_address
string
strictly required

IP address of the customer's device.

Example: 198.51.100.47

email
string
strictly required

Customer's email.

Example: johndoe@example.com

phone
string
strictly required

Customer's phone number without a plus sign (+), spaces and punctuation.

Example: 1234567

account
object
strictly required

number
string
strictly required

Customer's account number.

Example: 123456

bank_id
integer
strictly required

Customer's bank ID. For information on how to get the list of the supported banks IDs, see Banks available for payout.

Example: 61021

customer_name
string
strictly required

Customer's full name.

Example: John Doe

payment
object
strictly required

currency
string
strictly required

Code of the payment currency in the ISO-4217 alpha-3 format.

Example: IDR

amount
integer
strictly required

Payment amount in minor currency units without any decimal point or comma except for the cases when the currency doesn't have any minor currency units.

If the currency doesn't have any minor units (i.e. the number of digits for minor currency units is zero), set this parameter to the amount in the major currency units. To check whether the currency has any minor units, see Currency codes.

Example: 100.00 IDR must be sent as 10000

You can also add any other optional parameters to the payout request, if necessary. For the list of all the parameters available in Gate, see API Reference.

Here is an example of the data from a request to initiate a payout with the Banks of Indonesia payment method:

Figure 2. Example of the payout request body
{
    "general": {
        "project_id": 1234,
        "payment_id": "payment_47",
        "signature": "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO/RLUkDJrOcZzUCwX6R/ekpZhkIQg=="
    },
    "customer": {
        "id": "customer_123",
        "ip_address": "198.51.100.47",
        "email": "johndoe@example.com",
        "phone": "1234567"
    },
    "account": {
        "number": "123456",
        "bank_id": 61021,
        "customer_name": "John Doe"
    },
    "payment": {
        "currency": "IDR",
        "amount": 10000
    }
}

Callback

In the Banks of Indonesia payment method, the payment platform returns the payout result in a callback. For the information about the callback structure, see Callbacks in Gate.

The operation.sum_converted.amount parameter indicates the amount in major currency units converted and/or rounded up.

The following is an example of a callback body with the information about a successfully completed payout.

Figure 3. Example of the data from a successful payout callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "payout",
        "status": "success",
        "date": "2024-12-07T19:08:45+0000",
        "method": "Indonesian banks",
        "sum": {
            "amount": 10000,
            "currency": "IDR"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 47,
        "type": "payout",
        "status": "success",
        "date": "2024-12-07T19:08:45+0000",
        "created_date": "2024-12-07T19:08:05+0000",
        "request_id": "1a23456bc7890de",
        "sum_initial": {
            "amount": 10000,
            "currency": "IDR"
        },
        "sum_converted": {
            "amount": 100,
            "currency": "IDR"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-123",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

The following is an example of a callback for a declined payout.

Figure 4. Example of the data from a declined payout callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "payout",
        "status": "decline",
        "date": "2024-12-07T19:08:45+0000",
        "method": "Indonesian banks",
        "sum": {
            "amount": 10000,
            "currency": "IDR"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 47,
        "type": "payout",
        "status": "decline",
        "date": "2024-12-07T19:08:45+0000",
        "created_date": "2024-12-07T19:08:05+0000",
        "request_id": "1a23456bc7890de",
        "sum_initial": {
            "amount": 10000,
            "currency": "IDR"
        },
        "sum_converted": {
            "amount": 100,
            "currency": "IDR"
        },
        "code": "20000",
        "message": "General decline",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-123",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4XrUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

Testing

You can test payouts with the Banks of Indonesia payment method by using Gate.

To start performing test payouts, reach out to the Monetix (support@monetix.pro) support team to get the test project ID and a secret key to it and then contact your key account manager at Monetix to set up the test environment for the payouts to be performed with the Banks of Indonesia payment method.

When performing test payouts, keep in mind that:

  • for the project ID you have to submit the ID of the test project
  • for the ID of your customer's bank you should submit 396
  • for the payment ID and customer's data you can submit any random values

Statuses of test payouts

To receive a certain final status when performing test payouts with the Banks of Indonesia payment method, your request has to contain a respective payment amount in it. The table below lists the payout amounts you can send in requests in order to get a certain status of a test payout.

Payout amount Final status
40000 or 40400 decline—the payout is declined
Any other amount success—the payout is successful

Testing payout by using Gate

To perform a test payout by using Gate:

  1. Send a correct test request for payout to the payment platform.
  2. Accept a callback containing the data about the result of performing a test payout.

To learn more about performing payouts with the Banks of Indonesia payment method by using Gate, see the Payout by using Gate section.

Payout by using Dashboard

To make a payout through Dashboard, the merchant sends a request and receives a notification with the request processing result. There are two ways to initiate payouts through Dashboard:
  • single payout—you specify the currency and amount for a payout available for this method and fill in all the fields required for the selected payment method on the Dashboard pages.
  • as a part of a mass payment—all the parameters are specified in a CSV file. Refer to the Payouts by using Gate section for the parameters required by your payment method.

Information about completed payouts is available for viewing in the Payments and Manual Payments sections of Dashboard.

For more information about payout processing by using Dashboard, see Performing payouts.

Banks available for payout

Supported banks

In the Banks of Indonesia payment method, payments are performed through the banks the payment method supports. For the payout to be performed, your request must contain the ID of the customer's bank in the account.bank_id parameter.

The table below lists the banks available for payout in the Banks of Indonesia payment method.

Table 2. Banks available for payout
BankID
ABN Amro63531
Andara63361
Anglomas International63331
Arta Niaga Kencana63471
Bangkok63341
Bank Aceh Syariah60101
Bank ANZ Indonesia60121
Bank Artha Graha512
Bank Artos Indonesia60131
Bank BCA Syariah555
Bank Bengkulu4241
Bank Bisnis International60151
Bank BPD Banten60551
Bank BPD Daerah Istimewa Yogyakarta69411
Bank BPD NTB60671
Bank BRI Agroniaga60441
Bank Buana IND77546
Bank Bukopin549
Bank Bukopin Syariah4381
Bank Bumi Arta4181
Bank Capital Indonesia60171
Bank Central Asia140
Bank Centratama Nasional557
Bank China Construction Indonesia60191
Bank Chinatrust Indonesia566
Bank CIMB Niaga507
Bank CIMB Niaga Syariah60801
Bank Commonwealth567
Bank Danamon Indonesia398
Bank Danamon Syariah558
Bank DBS Indonesia514
Bank DKI4191
Bank EKA69161
Bank Ekonomi77566
Bank Ganesha4301
Bank Hana551
Bank Harda2731
Bank Harmoni International60251
Bank HSBC513
Bank ICBC4311
Bank IFI77586
Bank Ina Perdana4371
Bank Index Selindo4401
Bank International Indonesia (BII MayBank)505
Bank Jabar Banten Syariah546
Bank Jasa Jakarta4331
Bank Jenius BTPN77526
Bank Maliku4221
Bank Mandiri143
Bank Mantap69221
Bank Maspion2891
Bank Mayapada International519
Bank MayBank Indonesia565
Bank MayBank Indonesia Syariah559
Bank Mayora556
Bank Mega547
Bank Mestika4281
Bank Muamalat Indonesia539
Bank Multi Arta Sentosa60351
Bank MULTICOR69231
Bank Mutiara518
Bank Nagari (BPD Sumbar)526
Bank National Nobu553
Bank Negara Indonesia141
Bank Negara Indonesia Syariah548
Bank NTP77646
Bank NTT537
Bank Nusantara Parahyangan538
Bank OCBC NISP509
Bank of China Limited4171
Bank of India Indonesia60401
Bank Panin506
Bank Permata396
Bank Permata Syariah560
Bank Prima Master60421
Bank Rakyat Indonesia142
Bank Rakyat Indonesia Syariah545
Bank Resona Perdania60841
Bank Sahabat Sampoerna60461
Bank Saudara543
Bank SBI4351
Bank Shinhan Indonesia60311
Bank Sinamars Syariah562
Bank Sinarmas540
Bank Standard Chartered515
Bank Sulselbar60831
Bank Sulteng69351
Bank Sultra4261
Bank Sumut525
Bank Syariah Indonesia (BSI)69041
Bank Syariah Mandiri550
Bank Syariah Mega554
Bank Tabungan Negara (BTN)399
Bank Tabungan Negara Syariah (BTN)561
Bank Tabungan Pensiunan Nasional /BTPN544
Bank UOB Buana Indonesia508
Bank Victoria International60481
Bank Victoria Syariah4321
Bank Windu Kencana511
Bank Woori Saudara Indonesia 190660501
Bank Yudha Bhakti60511
BJB Syariah63481
Blu/BCA Digital69321
BNP Paribas2711
BPD Aceh524
BPD BALI536
BPD DIY69111
BPD JAMBI4201
BPD Jawa Barat (Bank BJB)520
BPD Jawa Tengah522
BPD Jawa Timur (Bank JATIM)523
BPD Kalimantan Barat531
BPD Kalimantan Selatan530
BPD Kalimantan Tengah63421
BPD Kalimantan Timur532
BPD Lampung529
BPD Nusa Tenggara Barat535
BPD Papua4231
BPD Riau527
BPD Sulawesi Selatan dan Barat533
BPD Sulawesi Tengah (Bank Sulteng)4251
BPD Sulawesi Utara534
BPD Sumatera Selatan528
BPD Sumsel Dan Babel63441
BPD Yogyakarta521
BPR Karyajatnika Sadaya63491
CIMB Clicks Indonesia397
CITIBank510
Deutsche Bank AG516
Dinar63371
DOKU564
Ekspor Indonesia63461
Haga77576
Hagakita77606
IBK63351
ICB Bumiputera552
J Trust63381
Korea Exchange Bank Danamon63541
Metro Express63501
MNC Bank21781
OCBC NISP Syariah563
Panin Dubai Syariah69281
Pembangunan Daerah63411
QNB Kesawan541
RaboBank517
Seabank69712
Sinar Harapan Bali63511
Sri Partha77626
Standard Charted63451
Sulutgo63431
Sumber Babel77636
Sumitomo Mitsui63401
Swadesi77596
Swaguna77616
The Bank of Tokyo Mitsubishi UFJ Ltd4151
J Trust Bank (formerly Bank Mutiara)518
Windu Kentjana Int63521

The table with the list of banks is provided for informational purposes only. It may change without notice. To get the current list of banks the Banks of Indonesia payment method supports, send a request to the payment platform.

Request for the list of available banks

The list of banks may change that's why we recommend that you send the payment platform a request for the list of banks currently available in the Banks of Indonesia payment method. The request format and structure should be the following:

HTTP request method POST
Request body format JSON
API endpoint /v2/info/banks/indonesia/payout/list
Full API endpoint specification /v2/info/banks/{payment_method}/{operationType}/list
Table 3. Parameters required in the request to get the list of banks available in the payment method

strictly required—parameter is required in the initial request.

Object Parameter Description

general
object
strictly required

project_id
integer
strictly required

Project ID you obtained when integrating with Monetix.

Example: 123

payment_id
string
strictly required

Payment ID unique within the project.

If the payment is not yet created, set this parameter to a unique value.

Example: payment_47

signature
string
strictly required

Signature created after you specify all the required parameters. For more information about, signature generation, see Signature generation and verification.

payment
object
strictly required

amount
integer
strictly required

Payment amount in minor currency units without any decimal point or comma except for the cases when the currency doesn't have any minor currency units.

If the currency doesn't have any minor units (i.e. the number of digits for minor currency units is zero), set this parameter to the amount in the major currency units. To check whether the currency has any minor units, see Currency codes.

Example: 100.00 IDR must be sent as 10000

currency
string
strictly required

Code of the payout currency in the ISO-4217 alpha-3 format.

Example: IDR

You can also add any other optional parameters to the request, if necessary. For the list of all the parameters available in Gate, see API Reference.

Here is an example of the data from the request for the list of banks available in the Banks of Indonesia payment method.

Figure 5. Example of the data from the request for the list of available banks
{
    "general": {
        "project_id": 200,
        "payment_id": "ORDER_155860015",
        "signature": "K6jll2ym+PtOb3ocZtr345st...=="
    },
    "payment": {
        "amount": 10000,
        "currency": "IDR"
    }
}
Figure 6. Example of the response with the list of banks available in the payment method
[
    {
        "minAmount": 100, // Minimum payment amount allowed for the payment (in minor currency units)
        "maxAmount": 1000, // Maximum payment amount allowed for the payment (in minor currency units)
        "limitCurrency": "IDR", // Code of the currency used for the payment limits (minAmount and maxAmount) in the ISO-4217 alpha-3 format
        "id": 123, // Bank ID
        "abbr": "EXB", // Bank shortcut name (for internal use)
        "name": "Example Bank", // General bank name
        "nativeName": "Example Bank", // Native bank name
        "currencies": [ // Array with currencies supported by the bank
            {
                "id": 123, // Currency ID in the payment platform
                "alpha_3_4217": "IDR", // Alphabetic code of the payment currency in the ISO-4217 alpha-3 format
                "number_3_4217": "123", // Numeric code of the payment currency in the ISO-4217 alpha-3 format
                "currency_type": "fiat", // Type of the currency
                "exponent": 2 // Number of decimal places after decimal point
            }
        ]
    }
]