Frequently Asked Question

This Frequently Asked Question (FAQ) list provides detailed answers to common questions about Lean.x payment gateway and its various features. This comprehensive list covers everything from API token management and callback

chevron-rightIs the API token static, or do we need to validate it with each request using the https://api.leanx.dev/api/v1/merchant/validate endpoint?hashtag

Answer : The API token is static; you do not need to validate it with every request.

chevron-rightIs the token in the callback the same as the one in the original request?hashtag

Answer : Yes, the token in the callback is identical to the one in the request.

chevron-rightCan users alter the payment amount during a transaction? For instance, if they initially request RM10, can they pay RM15 instead?hashtag

Answer : No, users cannot change the payment amount during the transaction.

chevron-rightDoes Lean.x have a IP whitelist feature?hashtag

Answer : Yes, we have a IP whitelist feature for production accounts. However, this is not applied to sandbox accounts.

chevron-rightDo you validate user details like email, phone number, and full name for payments? Should we ensure that users provide accurate information?hashtag

Answer : It is recommended to collect accurate user data, although we only validate the email format.

chevron-rightIs there a row limit for the merchant/transaction-list API?hashtag

Answer : Yes, the maximum row limit per API call is 100, but you can set a lower limit if needed.

chevron-rightDo we need to update the list of payment services regularly, or can we save the channels we use?hashtag

Answer : You can save the list of payment services we provide, but updating it daily is recommended.

chevron-rightIs it necessary to send the customer’s name when creating a payout invoice?hashtag

Answer : Yes, the customer’s name must be included in the recipient_name parameter when creating a payout invoice.

chevron-rightCan we retrieve the API token from the dashboard? I’m using the one from the API, but it’s returning an "INVALID_TOKEN" error.hashtag

Answer : Yes, you can retrieve the auth_token from the dashboard. Log in to our portal (Sandbox: https://portal.leanx.devarrow-up-right | Production: https://portal.leanx.ioarrow-up-right), navigate to the API section, and add a new API key. Once enabled, you can retrieve the auth_token.

chevron-rightWhere are the Hash Key and UUID used? Are they required for any requests?hashtag

Answer : The Hash Key is used to decrypt callback data, while the UUID is unique to your account and used for record-keeping purposes.

chevron-rightWhat is the minimum balance required in payout fund pool?hashtag

Answer : Merchants are required to maintain a minimum balance of RM2 at all times to perform payout activities. For example, if a merchant intends to pay out RM100 to a bank account, the minimum balance should be RM102.

This RM2 minimum balance will be refunded to the merchant upon account deactivation.

chevron-rightIs there a way to check payment status by ID, or can we only request data by date?hashtag

Answer : Yes, we have an API called Transaction Status that allows you to check payment status.

chevron-rightShould we always use check-verification-bank before creating a payout?hashtag

Answer : It depends on your process. You can validate the bank account during the first request and save the account number or verify it before each payout.

chevron-rightWhat should we do if the user’s name doesn’t match during a payout? Should we decline the payout?hashtag

Answer : Banks may not provide the full name of the recipient. For example, Maybank only provides 20 characters, and Bank Islam might add prefixes like "Cik," "Puan," or "Encik." You can allow the payout if there is an 80% match between the names. The similarity percentage can be adjusted based on your requirements.

chevron-rightWhat’s the difference between B2B FPX and B2C FPX? Are there different rates and payment flows, and can we integrate both?hashtag

Answer : B2C FPX is for personal bank accounts (e.g., M2U), while B2B FPX is for business bank accounts (e.g., M2U BIZ). The rates differ, but you can integrate both.

chevron-rightDo we need to create a new collection over time, or can we use one collection indefinitely? What do you recommend?hashtag

Answer : You can use one collection indefinitely, as there’s no limit on bill payment creation. If you manage bills, we recommend using one collection to group all transactions.

chevron-rightWhat does the talk_to_server_before parameter indicate?hashtag

Answer : This parameter indicates the time when the API responded to the client.

chevron-rightIs account verification considered a financial request? Will it trigger any financial transactions?hashtag

Answer : Account verification is not a financial request, so no financial transactions will be triggered.

chevron-rightIs the callback sent only once, or will it be resent if not delivered? Should we respond with 200 OK?hashtag

The callback is sent only for successful transactions. We expect a 200 OK HTTP response; otherwise, the callback will be resent up to 3 times. The response content does not need to follow any specific structure.

chevron-rightCan we receive a failed callback for payouts if user data is incorrect? Can you provide an example in the test environment?hashtag

Answer : Yes, similar to collections, the callback for payouts is only sent for successful transactions. You can use the https://docs.leanx.io/api-docs/payout/payout-status API for status checking. Example account numbers for failed and pending scenarios in the test environment are 1111111111 (FAILED) and 1212121212 (PENDING).

chevron-rightCan you provide an example of a failed response? In the test environment, payouts are always successful.hashtag

Answer : Use the provided test account numbers (1111111111 for FAILED, 1212121212 for PENDING) to simulate failed and pending payout scenarios.

chevron-rightFor one Merchant ID (MID), is there only one virtual_pool_reference, and are all payouts withdrawn from it?hashtag

Answer : Yes, each merchant has one virtual_pool_reference for payouts, and all payouts are withdrawn from this pool.

chevron-rightIs income from collection transferred manually to make payouts, or does it go directly to the payout pool?hashtag

Answer : By default, income is transferred to the merchant's bank account. However, we offer an option to settle directly into the payout pool, which can be set up before going live.

chevron-rightWhat happens if we attempt a payout with insufficient funds? Is the decline final, or will it retry when the balance is topped up?hashtag

Answer : If there are insufficient funds, the payout will fail, and the decline is final. You will need to make another payout request.

chevron-rightIs the UUID included in the token field for every response, including both payouts and deposits?hashtag

Answer : Yes, the UUID is the same for both deposit and payout responses.

chevron-rightIn the callback for payouts, we receive output.amount and output.payout_payment.item.payout_payment_amount. Are these fields always the same? Should we match output.amount only?hashtag

Answer : Yes, both fields represent the same value, which is the remaining prefund amount for payout purposes.

chevron-rightIn the /merchant/get-payout-transaction-by-id endpoint, is the amount field a float, while in callbacks it’s a string?hashtag

Answer : Yes, the response amount is in float format, while in callbacks, it’s a string due to JWT encryption/decryption. The decrypted value will always be in string format.

chevron-rightHow long does it take for the payment to be sent out after a request is made? Is it real-time? Is any approval required?hashtag

Answer : Payments are sent out in real-time without requiring approval.

chevron-rightHow does the money flow work? Do we need to top up money from our bank account to Lean.x, or can Lean.x deduct money directly from our account?hashtag

chevron-rightHow can I get the credentials? Should I use the sandbox credentials for integration first?hashtag

Answer : You will need to register at https://onboard.leanx.ioarrow-up-right. Once your registration is successful, you will receive sandbox credentials from the dashboard after your first login.

chevron-rightWhen recipients receive money, what sender name will they see?hashtag

Answer : It will be reflected as "Leanis Solutions Sdn Bhd."

chevron-rightIs your payout service available 24/7, including weekends and public holidays?hashtag

Answer : Yes, our payout service operates 24/7, including weekends and public holidays.

Last updated