Skip to main content

Technical docking instructions

note

The main target readers of this article are technical implementation personnel of partners who need to connect.

Documentation/Sample Resources#

  • Sample Demo download JAVA, PHP
  • Payment method description
  • Exception code

Service Environment#

Formal environment

Access process#

  1. Apply to open a merchant and get a test account
  2. Configure Merchant Account
  3. Technology access
    • Sandbox environment joint debugging
  4. After the test is completed, apply for an official account
  5. After obtaining the official account, the customer needs to reconfigure the merchant key (the test environment and the official environment have different keys)

Interface document summary#

Interface data interaction method#

  1. Submission method: Submit by POST method, Content-Type "application/json; charset=utf-8"
  2. Data format: Both submitted and returned data are in JSON format
  3. Character encoding: Uniformly adopt UTF-8 character encoding
  4. Amount format: The unit is Indonesian Rupiah(Rupee), a positive integer
  5. Signature algorithm: RSA asymmetric encryption. Signature requirements: both request and received data need to verify the signature. For details, please refer to Message Encryption Rules

Business term definition#

payment method#

CodeDescription
VA_BCABCA Bank Repayment Code
VA_MANDIRIMandiri Bank Repayment Code
VA_PERMATAPermata Bank Repayment Code
VA_CIMBCIMB Bank Repayment Code
VA_BNIBNI Bank Repayment Code
VA_BRIBRI Bank Repayment Code
VA_BNCBNC Bank Repayment Code
VA_SAMPOERNASAMPOERNA Bank Repayment Code
VA_MAYBANKMaybank Bank Repayment Code
VA_DANAMONDanamon Bank Repayment Code
RETAIL_ALFAMARTAlfamart Convenience Store
QRISQRIS scan code supports all electronic wallets, all kinds of bank scan code payment
EWALLET_DANADANA Wallet
EWALLET_OVOOVO Electronic Wallet

Currency Unit#

The unit is uniformly Indonesian Rupiah(Rupee), and the integer part is reserved, such as 30000. Since the rupiah unit is relatively small, only whole numbers are supported when trading.

Transaction status description#

CodeDescription
INIT_ORDERSuccessfully created order
NO_PAY or OPEN_PAY_URLOrder pending payment/pending processing
SUCCESSOrder payment succeeded
PAY_CANCELThe order has been canceled, if the payment is successful, it means that a refund has been made
tip

Only when the order status is SUCCESS, the order status needs to be modified successfully. For other statuses, there is no need to modify the order status. Currently, the platform does not support refund operations. If a refund is required to the customer, it is recommended that the merchant handle it offline.

Precautions#

Payment interface parameter description#

  1. Since many parts of the Indonesian market do not support Chinese, please avoid Chinese and some special payments, such as emoticons, for interface request parameters.
  2. The name field in the payment interface is only used to display the virtual account name when the user pays, without verification. Generally, it is required to be composed of letters, numbers and spaces, and no more than 30 digits.
  3. The email phone field in the payment interface is only needed for upstream, and no other functions have been found for the time being, and it will not send text messages or emails to customers; although it will not be verified, it needs to conform to the format specification, such as the mobile phone number must be a pure number , The email format must be xxx@xx.xx
  4. When using OVO e-wallet to pay, the phone field in the payment interface must be filled in with the mobile phone number of the customer who registered the OVO e-wallet. The general form is: 082113086611 OVO is a push message mode. After the order is successfully placed, it will be sent to the OVO on the customer’s mobile phone. The e-wallet app pushes a payment message, as long as the customer clicks on the confirmation to complete the payment, OVO requires the customer to complete the payment within 30 seconds, and expires.
  5. The expiryPeriod\ (expiration time) unit of the payment interface is minutes, and the field value range is recommended to remain in the range of 15-97200. If the value is not sent, the default is 4320, which is valid within 3 days.

Pay attention#

  1. Receiving method(Bank to which the payment code belongs) supports inter-bank repayment. For specific payment methods that need to be supported, please contact Business Opening when opening a production account according to your own needs.
  2. The bank/inter-bank repayments are all real-time arrival.
  3. Payment/receipt(request payment code)Asynchronous notification(callback) will only be made after the user payment is successful.

Pay on behalf (transfer)#

Parameter Description#

  1. The bank(bankCode), account number(number) and account name(name) of the receiving account in the payment interface must match each other, otherwise the transfer may fail, where the account name(name) Case can be ignored. It is recommended that customers call the bank account verification interface when binding the card, see interface // TODO:
  2. Interpretation of feeType field of the payment interface:
    1. 0 means that the commission payment is deducted from the requested commission payment transaction amount. For example, if the commission payment amount is 1000, our platform needs to charge a commission fee of 5 yuan, then the commission payment amount is 995;
    2. 1 is deducted from the merchant's balance, that is, the requested payment amount is 1000, and the actual payment is 1000, and the merchant's balance is subtracted by 1005.

Pay attention to#

  1. The synchronous return of the payment request is based on the platRespCode to determine whether the acceptance is successful, SUCCESS-acceptance is successful; UNKNOWN-system is abnormal and needs to be inquired; FAIL-acceptance failed.
  2. The payment query returns to judge the order status according to status: 2-means payment is successful; 3 and 4-means payment failure; other means that the order is being processed and you need to continue to query later.
tip

When the payment request is timed out and the UNKNOWN system exception is returned, the order cannot be considered as a failure, and do not repeat the initiation. At this time, the order processing result should be subject to the asynchronous notification result or the payment query result.

Common problem description#

How to view business information#

Whether to retry the callback notification#

The platform callback parameters are submitted in the form of form. After receiving our notification, please return the string SUCCESS, otherwise we will notify you every once in a while (a total of 6 notifications). The notification interval is 1S, 30S, 60s, 90s, 1h, 2h

tip

Note: Due to network reasons, the order asynchronous notification may not be notified exactly at the above interval, and the situation of repeated notifications is not excluded. Therefore, merchants are required to support repeated notifications \ (that is, orders that have changed their status will not be operated, and the characters will be returned directly. String SUCCESS).