1. Pay Out
Lesspay2.0
  • LESSPAY2 API Reference
    • Get started
    • Authentication
    • Parameter Specifications
    • Pay In
      • Overview
      • Development Guidelines
      • Local Payment Methods (LPMs)
      • Error Codes
      • Card payment
        • Card Payment
        • 3D Secure (3DS) Configuration
        • Fraud & Dispute Webhook Notifications
      • API List
        • Create Payin
        • Fetch Payin
      • Webhook
        • Payin webhook
    • Pay Out
      • Overview
      • Development Guidelines
      • Multiple Transfer Methods
      • Error Codes
      • API List
        • Create Payout
        • Payout Supported Banks
        • Fetch Payout
      • Webhook
        • Payout webhook
  1. Pay Out

Multiple Transfer Methods

Overview#

This document provides a complete integration guide for Bank Transfer and E-Wallet in the Lesspay Pay Out function, including core content such as payout flow, request parameters, request examples, response handling and webhook notifications.
Both payout methods only support OpenAPI Mode. Merchants can integrate via direct API and control the payout interaction process independently. All transactions require prior fund recharge to the merchant account, and the submitted payout batches must be reviewed by the Lesspay Operations Team before fund transfer is executed.

1. Bank Transfer Integration#

1.1 Overview#

Bank Transfer Payout supports merchants to transfer funds to users' domestic and overseas bank cards. After submitting a payout batch request, the system returns the batch acceptance result. Upon approval by the Lesspay Operations Team, the upstream payment channel completes the fund settlement to the user's bank card. Asynchronous webhook notifications for the final payout result are supported throughout the process.
Core Identifiers: destination_type=bank

1.2 Payout Flow#

1.
Merchant Pre-Check: Confirm sufficient balance in the merchant account and collect compliant information related to the user's bank card (account name, card number, issuing bank, country/region, etc.).
2.
Submit Batch Request: The merchant calls the payout batch creation API and passes in the bank card-related payout details.
3.
System Acceptance: Lesspay returns the batch acceptance result with the order status as PENDING_CONFIRM (Awaiting Review).
4.
Operational Review: The Lesspay Operations Team reviews the batch. If approved, the status changes to PENDING_PAY (Processing); if rejected, the status is FAILED (Failed).
5.
Channel Processing: The upstream payment channel executes the bank card fund transfer.
6.
Result Notification: After all payout details are processed, Lesspay sends an asynchronous callback notification to the notify_url.
7.
Merchant Verification: The merchant can verify the final status of each payout detail through the query API.

1.3 Request Parameters#

API Endpoint: POST /api/global/payout/batch/create-order
Request Header Parameters (Required):
header
ParameterTypeDescription
x-auth-signatureStringAPI signature, generated according to Lesspay authentication rules
x-auth-appidStringMerchant APPID, assigned by the platform
X-Auth-TimestampStringTimestamp in milliseconds
Content-TypeStringFixed as application/json
Request Body Core Parameters (Required): Only bank transfer-specific and core parameters are listed; for general parameters, refer to the Pay Out API List.
body
ParameterTypeRequiredDescription
request_idStringYesUnique merchant batch ID, unique under the same appid, ≤64 characters
currencyStringYes3-letter target currency code (e.g., CNY, USD, PHP, BRL)
total_amountStringYesTotal batch amount (must equal sum of detail amounts, e.g., "1000.00")
way_typeStringYesPayout channel type, passed in according to the value assigned by the platform
way_codeStringYesPayout channel code, passed in according to the value assigned by the platform (e.g., TAZAPAY_PAYOUT)
notify_urlStringYesBatch result callback URL, supports http/https
payout_order_detailsArray[Object]YesPayout detail list, multiple details are supported in a single batch
payout_order_details[].amountStringYesUnique detail ID, unique within the batch, ≤64 characters
payout_order_details[].destination_typeStringYesTarget type, fixed as bank
payout_order_details[].bank_account_nameStringYesBank card account name, sensitive field, stored encrypted by the platform
payout_order_details[].bank_account_noStringYesBank card number, sensitive field, stored encrypted by the platform
payout_order_details[].bank_account_typeStringYesAccount type, fixed values: individual/business
payout_order_details[].bank_nameStringYesIssuing bank name (e.g., "China Merchants Bank")
payout_order_details[].bank_country_codeStringYesIssuing bank country/region code, ISO 3166-1 alpha-2 (e.g., CN, US)
payout_order_details[].bank_swift_codeStringYesIssuing bank SWIFT code, 8/11 characters, required for overseas bank cards

1.4 Request Example#

1.5 Response Example#

1.6 Response Parameters#

表格
ParameterTypeDescription
codeIntegerBusiness response code, 0 = Acceptance Success, non-0 = Acceptance Failure
codeIntegerBusiness response code, 0 = Acceptance Success, non-0 = Acceptance Failure
msgStringBusiness response message, SUCCESS = Success
dataIntegerPayout batch data object
data.pay_order_idObjectLesspay platform unique batch ID
data.request_idStringBatch ID submitted by the merchant
data.created_atStringBatch creation time, ISO 8601 format
data.order_statusStringCurrent batch status, PENDING_CONFIRM = Awaiting Review
data.total_countIntegerNumber of payout details in the batch
data.total_amount_objObjectBatch total amount details
data.total_amount_obj.amountStrStringFormatted total amount
data.total_amount_obj.currencyCodeStringPayout currency code
data.encryptDataStringEncrypted data, reserved field
data.signStringResponse signature, reserved field

1.7 Response Handling#

1.
Verify Response Code: Only code=0 indicates that the batch request is accepted by the system. For non-0 codes, troubleshoot the problem according to the error code and resubmit.
2.
Record Core Information: Save pay_order_id (platform batch ID), request_id and order_status for subsequent status queries.
3.
Await Review/Callback: After successful acceptance, the batch enters the PENDING_CONFIRM status. No additional operation is required; wait for Lesspay's review and the final webhook callback notification.
4.
Active Query (Optional): If no callback is received for a long time, call the payout query API /api/global/payout/query to obtain the latest batch status.

2. E-Wallet Integration#

2.1 Overview#

E-Wallet Payout supports merchants to transfer funds to users' third-party e-wallets (e.g., PayPal, GCash, Alipay HK). The process is consistent with Bank Transfer Payout, including merchant balance check, batch submission, operational review and channel processing. Funds are directly settled to the user's bound e-wallet account, and asynchronous webhook notifications for the final result are supported.
Core Identifiers: destination_type=ewallet

2.2 Payout Flow#

Identical to the Bank Transfer Payout Flow, only the detail parameters are e-wallet-related information with no additional steps.

2.3 Request Parameters#

API Endpoint: POST /api/global/payout/batch/create-order
Request Header Parameters are identical to Bank Transfer Payout and will not be repeated.
Request Body Core Parameters (Required): Only e-wallet-specific and core parameters are listed.
表格
ParameterTypeRequiredDescription
request_idStringYesUnique merchant batch ID, unique under the same appid, ≤64 characters
currencyStringYesPayout currency, 3-letter code (e.g., USD, PHP, IDR)
total_amountStringYesTotal batch amount, must be consistent with the sum of detail amounts (e.g., "200.00")
way_typeStringYesPayout channel code, passed in according to the value assigned by the platform
way_codeStringYesPayout channel code, passed in according to the value assigned by the platform (e.g., TAZAPAY_PAYOUT)
notify_urlStringYesBatch result callback URL, supports http/https
payout_order_detailsArray[Object]YesPayout detail list, multiple details are supported in a single batch
payout_order_details[].mch_order_idStringYesUnique detail ID, unique within the batch, ≤64 characters
payout_order_details[].amountStringYesPayout amount for a single detail (e.g., "100.00")
payout_order_details[].destination_typeStringYesTarget type, fixed as ewallet
payout_order_details[].e_walletStringYesE-wallet information object, required nested object
payout_order_details[].e_wallet.account_nameStringYesE-wallet account name/real name
payout_order_details[].e_wallet.account_numberStringYesE-wallet account number (e.g., phone number, email address, wallet ID)
payout_order_details[].e_wallet.account_typeStringYesWallet account type, fixed values: individual/business
payout_order_details[].e_wallet.providerStringYesWallet service provider name (e.g., GCash, GrabPay, PayMaya,Gopay and ShopeePay),pay attenttion diffrent currency diffrent provider for example IDR only support Gopay\ShopeePay PHP only support GCash\GrabPay\PayMaya
payout_order_details[].e_wallet.deposit_key_typeStringYesWallet verification type, passed in according to channel requirements (e.g., cpf/cnpj/email/phone/random), CPF:Individual CPF (tax ID), CNPJ:Corporate CNPJ (tax ID), email:Email address, phon:Phone number, random:Random string
payout_order_details[].e_wallet.deposit_keyStringYesWallet verification value, corresponding to deposit_key_type

2.4 Request Example#

2.5 Response Example#

2.6 Response Parameters#

Identical to the Bank Transfer Payout Response Parameters and will not be repeated.

2.7 Response Handling#

Identical to the Bank Transfer Payout Response Handling and will not be repeated.
Modified at 2026-02-28 12:02:37
Previous
Development Guidelines
Next
Error Codes
Built with