Banks of Indonesia

Overview

Banks of Indonesia is a payment method that uses the online banking mechanism for payments through Indonesian banks. You can perform purchases through this method by using Payment Page and Gate, and payouts by using Gate and Dashboard.

Download the logo in vector format here.

Payment method type Online banking
Countries and regions Indonesia
Payment currencies IDR
Currency conversion On the Monetix side
Purchases
Payouts
COF payments
Full refunds
Partial refunds
Chargebacks
Notes
  • Cascade payment processing is supported for working with this method by using Payment Page. For more information, see Cascade payment processing or contact your Monetix key account manager
  • In this method all purchase amounts in IDR are integer. If the currency IDR is specified in the purchase request, it is necessary to round the purchase amount to an integer. Otherwise, depending on the payment processing provider, the fractional part is severed during processing on the payment platform side. If another currency is specified in the request, the purchase amount is converted to an equivalent amount in the IDR currency on the Monetix side and rounded to 1,000.00 IDR
Onboarding and access fee Refer to your Monetix key account manager

Interaction diagram

Payment processing by using the Banks of Indonesia payment method requires merchant's web service, one of the interfaces and the payment platform of Monetix, as well as one of the bank services which supports this payment method.

Operations support

Interfaces Amounts, IDR Times
Payment Page Gate Dashboard minimum maximum basic threshold
Purchases * * up to 5 minutes 48 hours
Payouts * * up to 10 minutes 48 hours

* For the most recent amount limits, contact your Monetix Key Account Manager.

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 click the Payment methods tab.

Processing scenarios

In the Banks of Indonesia method, to perform a purchase operation, you need to redirect a customer to the bank service, while a payout performs with the notification of a customer via web service.

Supported banks

Payments through the Banks of Indonesia method are carried out through banks that support the work with this method. Banks have their own identifiers, which are used to initiate payouts and purchases by using Gate, and to display banks on Payment Page when choosing a payment method.

The table below provides information on these banks for informational purposes, it may change without additional notice. For the most recent list of supported banks, contact your Monetix Key Account Manager or POST the /v2/info/banks/{payment_method}/{operationType}/list request using Gate API: /v2/info/banks/indonesia/sale/list—to get the list of banks that support purchase or /v2/info/banks/indonesia/payout/list—to get the banks that support payout.

Here is an example of the data from a request for the supported banks list. It is important to specify real payment data, but if your payment is not ready, you can use a random value as the payment ID in your request.

Figure 4. Example of requesting a list of banks
{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1000,
    "currency": "IDR"
  }
}
Figure 5. 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
            }
        ]
    }
]
Table 1. List of banks
Bank ID Purchase Payout
ABN Amro 63531
Andara 63361
Anglomas International 63331
Arta Niaga Kencana 63471
Bangkok 63341
Bank Aceh Syariah 60101
Bank ANZ Indonesia 60121
Bank Artha Graha 512
BANK ARTOS/BANK JAGO 69181
Bank BCA Syariah 555
Bank Bengkulu 4241
Bank Bisnis International 60151
Bank BRI Agroniaga 60441
Bank Buana IND 77546
Bank BPD Banten 60551
Bank BPD Daerah Istimewa Yogyakarta 69411
Bank BPD NTB 60671
Bank Bukopin 549
Bank Bukopin Syariah 4381
Bank Bumi Arta 4181
Bank Capital Indonesia 60171
Bank Central Asia 140
Bank Centratama Nasional 557
Bank China Construction Indonesia 60191
Bank Chinatrust Indonesia 566
Bank CIMB Niaga 507
Bank CIMB Niaga Syariah 60801
Bank Commonwealth 567
BANK CTBC INDONESIA 60201
Bank Danamon Indonesia 398
Bank DBS Indonesia 514
Bank DKI 4191
Bank EKA 69161
Bank Ekonomi 77566
Bank Ganesha 4301
Bank Hana 551
Bank Harda 2731
Bank Harmoni International 60251
Bank HSBC 513
Bank ICBC 4311
Bank IFI 77586
Bank International Indonesia (BII MayBank) 505
Bank Ina Perdana 4371
Bank Index Selindo 4401
Bank Jabar Banten Syariah 546
Bank Jasa Jakarta 4331
Bank Jenius BTPN 77526
Bank Maliku 4221
Bank Mandiri 143
BANK MANDIRI TASPEN 60851
Bank Mantap 69221
Bank Maspion 2891
Bank Mayapada International 519
Bank MayBank Indonesia 565
Bank MayBank Indonesia Syariah 559
Bank Mayora 556
Bank Mega 547
Bank Mestika 4281
Bank Muamalat Indonesia 539
Bank Multi Arta Sentosa 60351
Bank MULTICOR 69231
Bank Nagari (BPD Sumbar) 526
Bank National Nobu 553
Bank Negara Indonesia 141
Bank Negara Indonesia Syariah 548
Bank NTP 77646
Bank NTT 537
Bank Nusantara Parahyangan 538
Bank OCBC NISP 509
Bank of China Limited 4171
Bank of India Indonesia 60401
Bank Panin 506
Bank Permata 396
Bank Permata Syariah 560
Bank Prima Master 60421
Bank Rakyat Indonesia 142
Bank Rakyat Indonesia Syariah 545
Bank Resona Perdania 60841
Bank Saudara 543
Bank Shinhan Indonesia 60311
Bank Sinamars Syariah 562
Bank Sinarmas 540
Bank Standard Chartered 515
Bank Sulteng 69351
Bank Sultra 4261
Bank Sumut 525
Bank Syariah Mandiri 550
Bank Syariah Mega 554
Bank Tabungan Negara (BTN) 399
Bank Tabungan Negara Syariah (BTN) 561
Bank Tabungan Pensiunan Nasional /BTPN 544
Bank UOB Buana Indonesia 508
Bank Windu Kencana 511
Bank SBI 4351
Bank Sahabat Sampoerna 60461
Bank Sulselbar 60831
Bank Syariah Indonesia (BSI) 69041
Bank Victoria Syariah 4321
Bank Victoria International 60481
Bank Woori Saudara Indonesia 1906 60501
Bank Yudha Bhakti 60511
BJB Syariah 63481
Blu/BCA Digital 69321
BNP Paribas 2711
BPD Aceh 524
BPD BALI 536
BPD DIY 69111
BPD JAMBI 4201
BPD Jawa Barat (Bank BJB) 520
BPD Jawa Tengah 522
BPD Jawa Timur (Bank JATIM) 523
BPD Kalimantan Barat 531
BPD Kalimantan Selatan 530
BPD Kalimantan Tengah 63421
BPD Kalimantan Timur 532
BPD Lampung 529
BPD Nusa Tenggara Barat 535
BPD Riau 527
BPD Papua 4231
BPD Sulawesi Selatan dan Barat 533
BPD Sulawesi Tengah (Bank Sulteng) 4251
BPD Sulawesi Utara 534
BPD Sumatera Selatan 528
BPD Sumsel Dan Babel 63441
BPD Yogyakarta 521
BPR Karyajatnika Sadaya 63491
CIMB Clicks Indonesia 397
CITIBank 510
Deutsche Bank AG 516
Dinar 63371
DOKU 564
Ekspor Indonesia 63461
Haga 77576
Hagakita 77606
IBK 63351
ICB Bumiputera 552
J Trust 63381
Korea Exchange Bank Danamon 63541
Metro Express 63501
MNC Bank 21781
OCBC NISP Syariah 563
Panin Dubai Syariah 69281
Pembangunan Daerah 63411
QNB Kesawan 541
RaboBank 517
Seabank 69712
Sinar Harapan Bali 63511
Sri Partha 77626
Standard Charted 63451
Sulutgo 63431
Sumber Babel 77636
Sumitomo Mitsui 63401
Swadesi 77596
Swaguna 77616
The Bank of Tokyo Mitsubishi UFJ Ltd 4151
J Trust Bank (formerly Bank Mutiara) 518
Virtual Account Bank 400
Windu Kentjana Int 63521

The sections that follow provide detailed information about what you need to perform payments and how you can analyze the information on payments and operations.

Purchase by using Payment Page

General information

In the Banks of Indonesia method, when processing a purchase by using Payment Page, the merchant web service sends a request with all the required parameters and signature to the Monetix URL and accepts the callback with the payment result from the payment platform. When opening Payment Page, you can have Payment Page opened with the Banks of Indonesia method pre-selected. (For more information about pre-selecting payment methods, see Preselecting payment methods.)

The full sequence of the purchase workflow is provided below.

Figure 6. Purchase workflow when using Payment Page
  1. A customer initiates a purchase on the merchant's web service.
  2. The web service sends a request for Payment Page opening to the Monetix URL.
  3. The request for opening Payment Page is redirected to the payment platform.
  4. The payment platform performs the initial request processing that involves validation of the required parameters and signature.
  5. The requested Payment Page is generated by the Monetix payment platform as specified in the project settings and request parameters.
  6. Payment Page is displayed to the customer.
  7. The customer selects one of the banks from Banks of Indonesia group and agrees to use the method (or accepts the method already selected on Payment Page and agrees).
  8. The payment platform receives the purchase request for payment processing.
  9. The payment platform performs the internal purchase request processing and sends it to the bank service.
  10. The purchase request is processed on the bank service side.
  11. The bank service generates the data for redirecting the customer to its website form and sends it to the payment platform.
  12. The payment platform sends the customer redirection data to Payment Page.
  13. The customer is redirected to the bank website.
  14. The customer completes all the payment steps required.
  15. The payment is processed on the bank side.
  16. The result is displayed to the customer on the bank website.
  17. The customer is redirected to Payment Page.
  18. The bank service sends the result notification to the payment platform.
  19. The payment platform sends a callback with the payment result to the web service.
  20. The payment platform sends the result to Payment Page.
  21. A page with the payment result information is displayed to the customer on Payment Page.

The sections that follow provide details the request format and the Payment Page parameters to use in the Banks of Indonesia payment method and provide the information on the format of callbacks with payment results. For the general information on how to use the API, see Payment Page API Description.

Request format

There are several things you must consider when performing a purchase through the Banks of Indonesia method:

  1. You must provide values for the basic minimum of parameters. Listed below are the parameters that are mandatory for any payment method:
    • customer_id—unique ID of the customer within your project
    • customer_email—customer email
    • customer_first_name—customer first name
    • customer_last_name—customer last name
    • project_id—the project ID obtained from Monetix
    • payment_id—payment ID unique within the project
    • payment_currency—payment currency in ISO-4217 alpha-3 format
    • payment_amount—rounded integer purchase amount in minor currency units without any decimal point or comma except for cases where the currency does not have any minor currency units. If the currency has no minor units (that is, the number of digits for minor currency units is zero), then you must set this parameter to the amount in the major currency units. For the information on whether the currency has any minor units, see Currency codes.
  2. By default Payment Page is opened in the English language. To change the language of Payment Page and payment page of the Banks of Indonesia service pass a language code in the language_code parameter in the request for the opening. The list of supported languages for the Banks of Indonesia payment method is recommended to check with the Monetix key account manager. For the informational purposes the list of supported languages and their codes are provided below.
    • en—English
    • id—Indonesian
    • ms—Malay
    • my—Burmese
    • th—Thai
    • vi—Vietnamese
    • zh—Chinese
  3. There are several options to customize the payment method selection page on Payment Page.
    • Bank selection in two steps This option is used by default. The banks that support Banks of Indonesia payment method are grouped in one button on Payment Page, therefore bank selection is carried out in two steps. On the first step, the Banks of Indonesia method is chosen among others, and then, on the second step, particular bank is selected on the next page with the list of the group banks.
    • Display each bank as a separate button along with other payment methods To show each bank of the Banks of Indonesia group as a separate button, set the split_banks parameter in the payment_methods_options object to true.
      payment_methods_options={"online_indonesian_banks": {"split_banks": true}}
    • Show the banks of only one payment method To show only the banks available in the Banks of Indonesia payment method on Payment Page for customers, pass the code online-indonesian-banks in the force_payment_method parameter. The customer will see only the banks available in the Banks of Indonesia method.
    • Show only selected banks To display a button of specific banks (one or several) from Banks of Indonesia group on Payment Page in the list of payment methods, set force_payment_method to online-indonesian-banks and add an array with IDs of the banks to show on Payment Page in the banks_id parameter. Here an example:
      payment_methods_options={"online_indonesian_banks": {"split_banks": true, "banks_id": [57001, 57011]}}

      Here is an example of a request to open Payment Page with specific pre-selected bank:

      Figure 7. Example of a request to show only selected bank on Payment Page
      EPayWidget.run(
          {
              project_id: 1234,
              payment_id: 'payment_47',
              customer_id: 'customer_123',
              customer_first_name: 'John',
              customer_last_name: 'Doe',
              customer_email: 'johndoe@email.com',
              payment_currency: 'IDR',
              payment_amount: 25000,
              force_payment_method: 'online-indonesian-banks',
              payment_methods_options: {"online_indonesian_banks": {"banks_id": [133]}},
              signature: "kUi2x9dKHAVNU0FY...vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
          }
      )
  4. If required, you can also add any other additional parameters Payment Page supports. For information about all parameters available in the Banks of Indonesia method, see Payment Page invocation parameters.
  5. After you specify all the parameters you need, you must create the signature for the request. For instructions on how to sign a payment request, see Signature generation and verification.

Here is an example of data from a request for Payment Page opening:

EPayWidget.run(
    {
        project_id: 1234, 
        payment_id: 'payment_47',
        customer_id: 'customer_123', 
        payment_currency: 'IDR',
        payment_amount: 20000000, 
        customer_first_name: 'John',
        customer_last_name: 'Doe',
        customer_email: 'johndoe@email.com',
        signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y19vySO\/RLUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

Callback format

The standard format for callbacks is used to deliver purchase results from Banks of Indonesia. For more information, see Callbacks in Payment Page.

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

Here is the example of a callback with an information about successful 200 000,00 IDR purchase made by the 1 customer in the 200 project.

Figure 8. Example of data from a successful purchase callback
 {
        "project_id": 200,
        "payment": {
            "id": "TEST_154383173598055",
            "type": "purchase",
            "status": "success",
            "date": "2018-12-03T10:50:29+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "description": "TEST_1543831735980"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 15788000002076,
            "type": "sale",
            "status": "success",
            "date": "2018-12-03T10:50:29+0000",
            "created_date": "2018-12-03T10:40:20+0000",
            "request_id": "72cb91e7586004",
            "sum_initial": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 200000,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": "",
                "date": "2018-12-03T10:44:27+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "Cug4rIB6OimEkwmMBi1OfYpapSpZrz00eNLNIwE/eugWYrFyBErmi0OVw34WpHt5CzEA=="
    }

Here is the example of a callback for a purchase rejected due to minimum amount limit exceeding.

Figure 9. Example of data from a declined purchase callback
{
        "project_id": 200,
        "payment": {
            "id": "TEST_154356886034811111",
            "type": "purchase",
            "status": "decline",
            "date": "2018-11-30T14:11:13+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 1000,
                "currency": "IDR"
            },
            "description": "TEST_154356886034811111"
        },
        "operation": {
            "id": 9830000002095,
            "type": "sale",
            "status": "decline",
            "date": "2018-11-30T14:11:13+0000",
            "created_date": "2018-11-30T14:11:06+0000",
            "request_id": "3b14e5b0fd1",
            "sum_initial": {
                "amount": 1000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": "",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "cQbMiD0pON9eJc5ZugNK0iT5SwH8wQubo0+7RCZWuxc0feItZRcABrPdFA4EKQiyWj7NWQRmVyHzNTmOX6Zg5w=="
    }

Related topics

The following topics might be useful when implementing payments through Payment Page:

Purchase by using Gate

General information

In the Banks of Indonesia method, the merchant web service is required to do the following when processing a purchase by using Gate:

  1. Send request with all the required parameters and signature to the Monetix URL.
  2. Redirect the customer to the bank service.
  3. Accept the callback with the payment result from the payment platform.

The following diagram provides the detailed picture of the payment processing procedure.

Figure 10. Purchase by using Gate
  1. A customer initiates a purchase through one of the Banks of Indonesia group banks on the merchant's web service side.
  2. The web service sends the request for processing the purchase by using Gate to the specified Monetix URL.
  3. The payment platform receives the request for processing the purchase from Gate.
  4. The payment platform performs the initial request processing that includes validation of the required parameters and signature.
  5. The payment platform sends the response with request receipt confirmation and correctness check result to the web service. For more information, see Response structure.
  6. The payment platform performs the internal payment request processing and redirects the request to the bank service.
  7. The request is processed on the bank side.
  8. The bank service sends the data for redirecting the customer to the selected bank website to the payment platform.
  9. The payment platform sends the callback with the redirection data to the web service.

  10. The customer is redirected from the web service to the selected bank website.
  11. The customer completes all the payment steps required on the bank website.
  12. The payment is processed on the bank side.
  13. The result is displayed to the customer on the bank website.
  14. The customer is redirected to the merchant's web service.
  15. The bank service sends the payment result notification to the payment platform.
  16. The Monetix payment platform sends a callback to the web service.
  17. The customer receives the payment result on the web service.

The sections that follow discuss in more details the request format and the Gate parameters to use in the Banks of Indonesia payment method and provide the information about formats of the data for redirecting customers and the information about the format of callbacks with payment results. The general information about working with API see in the API Description section.

Request format

There are several things you must consider when using purchase requests in the Banks of Indonesia method:
  1. You initiate purchase by submitting a purchase request to the /v2/payment/banks/indonesia/sale endpoint by using the HTTP method POST. This endpoint belongs to the following group of endpoints for the online banking payments: /v2/payment/banks/{payment_method}/sale.
  2. The following objects and parameters must be specified in the request:
    • general—object with general request identification information:
      • project_id—the project ID you obtained from Monetix
      • payment_id—payment ID unique within the project
      • signature—signature created after you specify all the required parameters. For more information about signature generation, see Signature generation and verification.
    • customer—object with customer information:
      • id—the unique ID of the customer within your project
      • ip_address—customer device IP
      • email—customer email
      • first_name—customer first name
      • last_name—customer last name
    • account—object with customer account information:
      • bank_id—bank identifier
    • payment—object with purchase information:
      • amount—rounded integer purchase amount in minor currency units without any decimal point or comma except for cases where the currency does not have any minor currency units. If the currency has no minor units (that is, the number of digits for minor currency units is zero), then you must set this parameter to the amount in the major currency units. For the information on whether the currency has any minor units, see Currency codes.
      • currency—code of purchase currency in the ISO-4217 alpha-3 format
    • return_url—object with the information where to redirect the customer to when the payment is completed or prematurely terminated by the customer:
      • success—the URL to redirect the customer to after the payment is successfully completed
      • decline —the URL to redirect the customer to after the payment is declined
  3. The following parameters with the return URLs are optional, but we strongly advise you to specify them in the request to provide your customer a better user experience. If you don't specify any parameters of the return_url object in the request, by default Gate will redirect the customer to the URL specified in your project in Monetix.
    • return_url—object with the information where to redirect the customer to when the payment is completed or prematurely terminated by the customer:
      • return—the URL to redirect the customer to when they prematurely terminate the payment. This URL is also used if the success and decline parameters are not specified in the request.
  4. By default the payment page of the Banks of Indonesia service is opened in English language. To change it pass language code in the customer.language parameter in the request. The list of supported languages for the Banks of Indonesia payment method is recommended to check with the Monetix key account manager. For the informational purposes the list of supported languages and their codes are provided below.
    • en—English
    • id—Indonesian
    • ms—Malay
    • my—Burmese
    • th—Thai
    • vi—Vietnamese
    • zh—Chinese
  5. If required, you can also add any other additional parameters Gate supports.

Here is an example of data from a purchase request in the Banks of Indonesia method.

Figure 11. Example of data from a purchase request
{
    "general": {
        "project_id": 1234,
        "payment_id": "payment_47",
        "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "customer": {
        "id": "customer_123",
        "ip_address": "198.51.100.47",
        "first_name": "John",
        "last_name": "Doe",
        "email": "johndoe@example.com"
    },
    "account":{
        "bank_id": 140
    },
    "payment": {
        "amount": 35000000,
        "currency": "IDR"
    },
    "return_url": {
        "success": "https://example.com/success/",
        "decline": "https://example.com/decline/",
        "return": "https://example.com/return/"
    } 
}

Formats of the customer redirection data

After receiving and processing your purchase request, the payment platform sends a callback to your web service containing the data to redirect the customer to the bank service.

To redirect the customer, use the values of the following parameters in the redirect_data object:

  • url—the URL to redirect the customer to
  • body—the data to be sent in the request body
  • method—the HTTP method to get an HTML page of the website (for example, POST or GET)
  • encrypted—this is the service parameter. Ignore the data it contains.

Here is an example of a piece of callback containing the data to redirect the customer.

"redirect_data": {
    "method": "POST",
    "body": {
        "example_parameter_1": "value_1",
        "example_parameter_2": "value_2"
    },
    "encrypted": [],
    "url": "https://example.com/redirect"
}

Callback format

In the Banks of Indonesia method, the callbacks that deliver purchase results use the standard format described in Callbacks in Gate.

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

The following is the example of a callback with the information about successful 200,000.00 IDR purchase made by the 1 customer in the 200 project.

Figure 12. Example of the data from a successful purchase callback
 {
        "project_id": 200,
        "payment": {
            "id": "TEST_154383173598055",
            "type": "purchase",
            "status": "success",
            "date": "2018-12-03T10:50:29+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "description": "TEST_1543831735980"
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 15788000002076,
            "type": "sale",
            "status": "success",
            "date": "2018-12-03T10:50:29+0000",
            "created_date": "2018-12-03T10:40:20+0000",
            "request_id": "72cb91e7586004",
            "sum_initial": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 200000,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": "",
                "date": "2018-12-03T10:44:27+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "Cug4rIB6OimEkwmMBi1OfYpapSpZrz00eNLNIwE/eugWYrFyBErmi0OVw34WpHt5CzEA=="
    }

The following is the example of a callback for a purchase rejected due to the exceeded amount limit.

Figure 13. Example of the data from a declined purchase callback
{
        "project_id": 200,
        "payment": {
            "id": "TEST_154356886034811111",
            "type": "purchase",
            "status": "decline",
            "date": "2018-11-30T14:11:13+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 1000,
                "currency": "IDR"
            },
            "description": "TEST_154356886034811111"
        },
        "operation": {
            "id": 9830000002095,
            "type": "sale",
            "status": "decline",
            "date": "2018-11-30T14:11:13+0000",
            "created_date": "2018-11-30T14:11:06+0000",
            "request_id": "3b14e5b0fd1",
            "sum_initial": {
                "amount": 1000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": "",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "cQbMiD0pON9eJc5ZugNK0iT5SwH8wQubo0+7RCZWuEKQiyWj7NWQRmVyHzNTmOX6Zg5w=="
    }

Related topics

The following topics might be useful when implementing payments through Gate:

Payout by using Gate

General information

To perform a payout through the Banks of Indonesia method, merchant's web service sends a request with all the required parameters and signature to Monetix URL, and receives a callback with the payment result. However, depending on the provider which processes the payment, you should contact the Monetix key account manager for confirmation before sending the request. The full sequence of the payout process is provided below.

Figure 14. Payout sequence by using Gate
  1. A customer orders a payout through one of the supported banks from Banks of Indonesia group.
  2. Merchant's web service sends the payout request for processing the payout by using Gate to the appropriate Monetix URL.
  3. Gate redirects the request to the Monetix payment platform.
  4. The payment platform performs all the necessary check and processes the request.
  5. The reply with the request processing results is sent to the merchant's web service. For more information, see Response structure.
  6. The payment platform redirects the payout request to the Banks of Indonesia service.
  7. The payout is processed on the bank side.
  8. Banks of Indonesia sends the result notification to the payment platform.
  9. The payment platform sends a callback with the payment result to the web service.
  10. The customer receives the payout result from the web service.

The sections that follow discuss in more details the request format and the Gate parameters to use in the Banks of Indonesia payment method and provide the information on the format of callbacks with payout results.

Request format

There are several things you must consider when using payout requests in the Banks of Indonesia method:
  1. You initiate a payout by sending a payout request to the /v2/payment/banks/indonesia/payout endpoint by using the HTTP method POST. This endpoint belongs to the following group of endpoints for the online banking payments: /v2/payment/banks/{payment_method}/payout.
  2. The following objects and parameters must be specified in any request:
    • general—object with general request identification information:
      • project_id—the project ID you obtained from Monetix
      • payment_id—payment ID unique within the project
      • signature—signature created after you specify all the required parameters. For more information about signature generation, see Signature generation and verification.
    • customer—object with customer information:
      • id—the unique ID of the customer within your project
      • ip_address—customer device IP
      • email—customer email
      • phone—customer phone number without a plus sign (+), spaces and punctuation. This parameter may not be mandatory. Refer to you Key Account Manager at Monetix for details.
    • account—object with customer account information:
      • number—customer account number
      • customer_name—customer full name
      • bank_id—bank ID
    • payment—object with payout information:
      • amount—rounded integer payout amount in minor currency units without any decimal point or comma except for cases where the currency does not have any minor currency units. If the currency has no minor units (that is, the number of digits for minor currency units is zero), then you must set this parameter to the amount in the major currency units. For the information on whether the currency has any minor units, see Currency codes.
      • currency—code of payout currency in the ISO-4217 alpha-3 format
  3. If required, you can also add any other additional parameters that are supported by Gate .

Here is an example of data from a payout request in the Banks of Indonesia method.

Figure 15. Payout request example
{
    "general": {
        "project_id": 2990,
        "payment_id": "payment_47",
        "signature": "PJkV8ej\/UG0Di8hTng6JvC7vQsaC6tajQVVLhNN5e7aRfBaNIipTv+AWoXW\/9MTO8yJA=="
    },
    "payment": {
        "amount": 35000000,
        "currency": "IDR"
      },
    "customer": {
        "id":"2990",
        "ip_address": "248.121.176",
        "email": "johndoe@example.com",
        "phone": "081280101156"
    },
    "account":{
        "bank_id": 140,
        "customer_name": "Putra account",
        "number": "314159265358979"
    }
}

Callback format

In the Banks of Indonesia method, the callbacks that deliver payout results use the standard format described in Callbacks in Gate.

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

The following is the example of a callback with the information about successful 200,000.00 IDR payout made to account 035209875690435 of the 1 customer in the 200 project.

Figure 16. Example of the data from a successful payout callback
 {
        "project_id": 200,
        "payment": {
            "id": "TESTPAYOUT7891022555",
            "type": "payout",
            "status": "success",
            "date": "2018-12-12T13:28:58+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "description": "test payout"
        },
        "account": {
            "number": "6419422222",
            "bank_id": 140,
            "region_id": 236
        },
        "customer": {
            "id": "1"
        },
        "operation": {
            "id": 15112000002236,
            "type": "payout",
            "status": "success",
            "date": "2018-12-12T13:28:58+0000",
            "created_date": "2018-12-12T13:22:15+0000",
            "request_id": "b54610e94a76",
            "sum_initial": {
                "amount": 20000000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 200000,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": "E80NPPQ6Z1YSYPZTPH0NBON42",
                "date": "2018-12-12T13:28:34+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "qV2FRs/wxoOaywQS0GYQDi+6spZFbiRXxt8zG
                            10zy9TNiJLT0P/+EOrpMkoW80mynkaQfSAUJpfQ=="
    }

The following is the example of a callback for a payout rejected due to exceeding the limit of the payout amount.

Figure 17. Example of the data from a declined payout callback
{
        "project_id": 200,
        "payment": {
            "id": "TESTPAYOUT789",
            "type": "payout",
            "status": "decline",
            "date": "2018-12-07T09:44:43+0000",
            "method": "Indonesian banks",
            "sum": {
                "amount": 5000,
                "currency": "IDR"
            },
            "description": ""
        },
        "account": {
            "number": "6419422222",
            "bank_id": 140,
            "region_id": 236
        },
        "customer": {
            "id": "1"
        },
        "errors": [
            {
                "code": "3104",
                "message": "Payment Constraint Invalid Payout Amount",
                "description": "Gate. Operation was declined. Maximum payout limit is exceeded"
            }
        ],
        "operation": {
            "id": 533000002202,
            "type": "payout",
            "status": "decline",
            "date": "2018-12-07T09:44:43+0000",
            "created_date": "2018-12-07T09:44:43+0000",
            "request_id": "205d3536a91f4737d679ae44f5c707eaace0b
                                009-7b37cb0b1b4d62a602dd42fa7d248258224fe3f6",
            "sum_initial": {
                "amount": 5000,
                "currency": "IDR"
            },
            "sum_converted": {
                "amount": 50,
                "currency": "IDR"
            },
            "provider": {
                "id": 1153,
                "payment_id": ""
            },
            "code": "3104",
            "message": "Payment Constraint Invalid Payout Amount"
        },
        "signature": "j4cxKDvx0EaDe4zKLbLcb8isoHFxBB/eV5hPzvsN+iFpGJELstSJw0bHot6v83rzDMlinxE915lAWGHKVjurpQ=="
    }

Related topics

The following topics might be useful when implementing payments through Gate:

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.

Testing

General information

For the Banks of Indonesia method the testing of purchases by using Payment Page and Gate as well as payouts by using Gate.

Testing can be performed within a test project, to enable and disable the testing availability, contact Monetix technical support via support@monetix.pro.

When performing a test payment, take into account that you must specify the identifier of the test project in the requests, the interfaces of the payment forms emulator of Payment Page and Banks of Indonesia differ from the production environment.

Test payments statuses

When testing purchases, the final payment status is determined by the amount specified in the request:

  • decline status with 40000 or 40400 amount
  • success status with any other amount

When testing payouts, the final payment status is determined by the amount specified in the request:

  • decline status with 40000 or 40400 amount
  • success status with any other amount

Testing purchase by using Payment Page

To perform a test purchase by using Payment Page, do the following:

  1. Send a correct test request for Payment Page opening to the payment platform.
  2. If the online-indonesian-banks method was not specified in the request—select the method on the emulator page.
  3. If multiple banks are available for selection, select a bank; if only one bank is available, click the Pay button.
  4. Click the Success or Decline button (depending on the amount specified in the request).
  5. Accept a callback with information about the payment result.

The full information about purchase process by using Banks of Indonesia through Payment Page is provided in the section Purchase by using Payment Page.

Testing purchase by using Gate

To perform a test purchase by using Gate, do the following:

  1. Send a correct test request for purchase to the payment platform (the bank_id parameter must be used in the request, refer to Monetix technical support for the parameter value).
  2. Accept a callback with redirection data.
  3. Go to the received URL and click the Success or Decline button (depending on the amount specified in the request).
  4. Accept a callback with information about the payment result.

The full information about purchase process by using Banks of Indonesia through Gate is provided in the section Purchase by using Gate.

Testing payout by using Gate

To perform a test payout by using Gate, send a correct test request to the payment platform and accept a callback with information about the payment result. The full information about payout process by using Banks of Indonesia through Gate is provided in the section Payout by using Gate.

Analysis of payments results

As with other payment methods Monetix offers, when using this method, you have several options to analyze the information about payments and operations.

You can load and analyze all the necessary information in Dashboard (dash-light.trxhost.com), for instance you can use the analytic panels in the Analytics section for this purpose.

Also, you can export the information for further analysis by using third party analytical tools. The following options are available:

  • Dashboard allows you to download reports in CSV format by using the tools in the Reports section. You can perform export as a one-time or regular download of data to your local computer.
  • Data API allows you to have payment information exported in JSON format and delivered to a URL you specify. The payment information is exported by means of sending requests to the /operations/get endpoint.

If you have any further questions regarding payment data analysis, contact Monetix technical support.