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 |
|
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.
{ "general": { "project_id": 200, "payment_id": "ORDER_155860015", "signature": "K6jllym+PtObocZtr345st...==" }, "payment": { "amount": 1000, "currency": "IDR" } }
[ { "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 } ] } ]
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.
- A customer initiates a purchase on the merchant's web service.
- The web service sends a request for Payment Page opening to the Monetix URL.
- The request for opening Payment Page is redirected to the payment platform.
- The payment platform performs the initial request processing that involves validation of the required parameters and signature.
- The requested Payment Page is generated by the Monetix payment platform as specified in the project settings and request parameters.
- Payment Page is displayed to the customer.
- 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).
- The payment platform receives the purchase request for payment processing.
- The payment platform performs the internal purchase request processing and sends it to the bank service.
- The purchase request is processed on the bank service side.
- The bank service generates the data for redirecting the customer to its website form and sends it to the payment platform.
- The payment platform sends the customer redirection data to Payment Page.
- The customer is redirected to the bank website.
- The customer completes all the payment steps required.
- The payment is processed on the bank side.
- The result is displayed to the customer on the bank website.
- The customer is redirected to Payment Page.
- The bank service sends the result notification to the payment platform.
- The payment platform sends a callback with the payment result to the web service.
- The payment platform sends the result to Payment Page.
- 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:
- 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.
- 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
—Englishid
—Indonesianms
—Malaymy
—Burmeseth
—Thaivi
—Vietnamesezh
—Chinese
- 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==" } )
- 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.
- 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.
{ "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.
{ "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:
- Send request with all the required parameters and signature to the Monetix URL.
- Redirect the customer to the bank service.
- Accept the callback with the payment result from the payment platform.
The following diagram provides the detailed picture of the payment processing procedure.
- A customer initiates a purchase through one of the Banks of Indonesia group banks on the merchant's web service side.
- The web service sends the request for processing the purchase by using Gate to the specified Monetix URL.
- The payment platform receives the request for processing the purchase from Gate.
- The payment platform performs the initial request processing that includes validation of the required parameters and signature.
- The payment platform sends the response with request receipt confirmation and correctness check result to the web service. For more information, see Response structure.
- The payment platform performs the internal payment request processing and redirects the request to the bank service.
- The request is processed on the bank side.
- The bank service sends the data for redirecting the customer to the selected bank website to the payment platform.
-
The payment platform sends the callback with the redirection data to the web service.
- The customer is redirected from the web service to the selected bank website.
- The customer completes all the payment steps required on the bank website.
- The payment is processed on the bank side.
- The result is displayed to the customer on the bank website.
- The customer is redirected to the merchant's web service.
- The bank service sends the payment result notification to the payment platform.
- The Monetix payment platform sends a callback to the web service.
- 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:- 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. - 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
- general—object with general request identification information:
- 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.
- return_url—object with the information where to redirect the customer to when the payment is completed or prematurely terminated by the customer:
- 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
—Englishid
—Indonesianms
—Malaymy
—Burmeseth
—Thaivi
—Vietnamesezh
—Chinese
- 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.
{ "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.
{ "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.
{ "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.
- A customer orders a payout through one of the supported banks from Banks of Indonesia group.
- Merchant's web service sends the payout request for processing the payout by using Gate to the appropriate Monetix URL.
- Gate redirects the request to the Monetix payment platform.
- The payment platform performs all the necessary check and processes the request.
- The reply with the request processing results is sent to the merchant's web service. For more information, see Response structure.
- The payment platform redirects the payout request to the Banks of Indonesia service.
- The payout is processed on the bank side.
- Banks of Indonesia sends the result notification to the payment platform.
- The payment platform sends a callback with the payment result to the web service.
- 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:- 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. - 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
- general—object with general request identification information:
- 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.
{ "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.
{ "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.
{ "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
- 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 with40000
or40400
amountsuccess
status with any other amount
When testing payouts, the final payment status is determined by the amount specified in the request:
decline
status with40000
or40400
amountsuccess
status with any other amount
Testing purchase by using Payment Page
To perform a test purchase by using Payment Page, do the following:
- Send a correct test request for Payment Page opening to the payment platform.
- If the
online-indonesian-banks
method was not specified in the request—select the method on the emulator page. - If multiple banks are available for selection, select a bank; if only one bank is available, click the Pay button.
- Click the Success or Decline button (depending on the amount specified in the request).
- 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:
- 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).
- Accept a callback with redirection data.
- Go to the received URL and click the Success or Decline button (depending on the amount specified in the request).
- 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.