Skip to main content

FAQ

FAQ

Frequently Asked Questions

Below are common questions and answers during the integration process, grouped by category for easy reference.

Account & Login
How to bind MFA on first login to the merchant dashboard

A binding MFA page will appear on your first login:

  1. Download and install Authenticator based on your mobile OS (skip if already installed)
  2. Scan the QR code on the right side of the page with Authenticator to bind MFA
  3. Enter the MFA code from Authenticator to complete the setup

For subsequent logins, simply check the MFA code — no need to bind again. If you need to rebind, please contact technical support to reset.

Merchant account locked, password reset, MFA reset

Please send your merchant login account to the technical support group chat and specify whether it is a test environment or production environment account.

Payment fails or page error occurs in the test environment

The test environment requires simulated payment through the merchant dashboard — it does not support real payment flows like the production environment.

Transaction not found during simulated payment

Please troubleshoot in the following order:

  1. Check whether the country in the top-right corner is correct
  2. Check whether the product is correct
  3. Check whether the mchOrderId is correct
  4. Check whether the appId in the parameters is correct
Payment & Channels
The mobile format is invalid
Philippines: Starts with 09, 11 digits totalIndonesia: Starts with 08, 10-13 digits totalMalaysia: Starts with 01, 10-11 digits totalThailand: Starts with 06/08/09, 10 digits totalRussia: Starts with 9, 10 digits total
Merchant channel is unavailable

Please send the request and response parameters to the technical support group chat.

Dynamic code or WebPay login payment fails during production testing

Dynamic codes have an expiration time — try generating a new order. WebPay payment links will return a payment failure if the login payment is not completed after clicking the link — try generating a new one.

If the issue persists, please send the QR code, payment link, request and response parameters to the technical group chat.

Disbursement test returns insufficient merchant balance

You need to initiate a top-up operation in the merchant dashboard, then contact technical support for review.

After obtaining the payToken for authorized deduction, which API to call for payment

Call the Collection - Place Order API.

Signature & Parameters
Request signature error

The signature string is inconsistent. Please check the following possible causes:

  • Sorting issue (mainly in PII international systems)
  • Inconsistent signing method
  • Extra parameters passed
  • Verify that Content-Type is application/json — JSON must be used for transmission, otherwise parameters cannot be retrieved
  • The uploaded public key and the signing private key are not from the same pair, or the uploaded public key contains spaces or line breaks
Request amount issues
  • Amount is not an integer
  • Amount is outside the channel limit range
  • Amount is too small: For Indonesia, the unit is in yuan (no need to ×100; recommend passing at least 10000 IDR); for other countries, the unit is in cents (multiply by 100, e.g., 1 PHP in the Philippines should be passed as 100)
Unable to collect customerName, email, mobile for business reasons

These fields are mandatory for the payment channel. The channel only validates the format, not the authenticity of the information — you may fill in company information instead.

How to pass Channel Code, payMethodCode, and Transfer Code

Please find the corresponding table in the documentation and pass the matching enum values.

Callbacks
What data should be returned in the callback? What are the callback frequency and retry intervals?
  • You do not need to process the body content. In exceptional cases, return a non-200 HTTP status code
  • Callback frequency: Every minute for the first 10 minutes, then every hour after 10 minutes
  • Transactions older than one day will not be automatically retried based on the status code