Skip to main content

Disbursement all in one

Overview

Are you a business looking for a convenient and swift solution to disburse funds to your employees or business partners? Our All-in-One Disbursement feature is the ideal solution for your needs, with features:

Fast and easy transfer fund: Experience the ease of transferring funds seamlessly from your Business Wallet to any Zalopay Wallet, Bank Account, or ATM Card. Our All-in-One Disbursement feature eliminates the hassle of navigating different payment channels – it's a one-stop-shop for swift transactions.
Simplify with Automated Payment Processes: Bid farewell to intricate payment procedures. Our All-in-One Disbursement feature automates fund transfers, reducing errors and streamlining the time it takes to manage your financial transactions.
High-Level Security: We understand that security is a top priority. The All-in-One Disbursement feature is fortified with state-of-the-art security measures, ensuring that your information and transactions are guarded with the utmost care.
Track and Report Expenditures: Keep track of expenditure history and generate reports easily to have an overview of your financial situation. Managing expenses has never been easier.
Cross-Platform Support: Explore the All-in-One Disbursement feature across various platforms, from mobile apps to websites, allowing you to access and manage your finances anytime, anywhere.

Easy, Flexible, and Secure – the All-in-One Disbursement feature from Business Wallet is the perfect bridge between your business and efficient financial management. Start experiencing the convenience it brings today.
In the next sections, we guide you step by step to integrate Zalopay All-in-One Disbursement.

Prerequisites

Before you begin, make sure the following works are done for a smooth integration:

  • Successfully registered merchant account and obtained app_id, mac_key, private_key from Merchant Portal.
  • Understood the usage and specification of following APIs:

           Verify Account API
           Transfer Fund API
           Query Transaction API
           Balance API
           Get Bank Code List API

How it works

In detail, our flow will look like this:

Payment flow

Integration

This section focuses on how to integrate the All-in-One Disbursement flow from Zalopay. A typical workflow includes the following steps:

      1. Retrieve the current balance of the merchant's account by calling Balance API.
      2. Check whether the user has an account or not, by calling Verify Account API and Get Bank Code List API.
      3. Using Transfer Fund API to create a transfer request.
      4. Using Query Transaction API to get the final transfer status.

Step 1. Query merchant wallet balance

From the Backend Server, call the Balance API, refer to the Explore API for detailed parameter information.
This is an example of a query request for the balance of a business wallet account and the corresponding response received:

Request for the balance of a business wallet accountCorresponding response received
{
      "app_id": 15752,
      "payment_id": "P270868",
      "time": "3729797766",
      "partner_embed_data": "{\"merchant_wallet_id\":\"336A321832\"}",
      "mac": "string"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "balance": 42712
      }
}

Step 2. Check the user account

From the Backend Server, call the Verify Account API, refer to the Explore API for detailed parameter information.
Users receive money from the Business Wallet, through 3 different types of accounts:

  • Zalopay Account
  • Bank Account
  • ATM Card

This is an example of a request to check the user's account and the corresponding response received:

TypeRequest to check the user's accountCorresponding response received
Zalopay Account{
      "app_id": 15752,
      "disbursement_type": "WALLET",
      "receiver_info": "HHDOHu0caM7+hwCkQgVYSpAJ+ZSHf6ffDBuJLEcvQ...",
      "amount": 10000,
      "redirect_url": "zalopay://launch/app/2242",
      "time": 1700551306699,
      "mac": "5ad0de3161a45701896ca9f75ecc088291e58701e19..."
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "m_u_id": "Yh2mBCG983efb1Iwu4FuZJO5TgpnCXT-4fwvhNJV1a8"
      }
}
Bank Account{
      "app_id": 15752,
      "disbursement_type": "BANK",
      "receiver_info": "P2v4OjlUaModdNXXYuqawuzgxzvAhtIRei485ubTj/PjbPNMLk9M5VpFnp7....",
      "amount": 10000,
      "time": 1700554407764,
      "mac": "ff65866734d50ac742ec473bad50e8283fcfcc4891..."
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "account_holder_name": "NGUYEN VAN A"
      }
}
ATM Card{
      "app_id": 15752,
      "disbursement_type": "BANK",
      "receiver_info": "mUcjpp6+M44BFdqmwa3GfpikWq8mV/24I....",
      "amount": 10000,
      "redirect_url": "zalopay://launch/app/2242",
      "time": 1700554120519,
      "mac": "3ec51c79bdf499a1833c3c831cb8e73bf84fff19637...."
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "card_holder_name": "NGUYEN VAN A"
      }
}

Step 3. Create a request to transfer fund from the Business Wallet to the user's receiving account

From the Backend Server, call the Transfer Fund API, refer to the Explore API for detailed parameter information.
Users receive money from the Business Wallet, through 3 different types of accounts:

  • Zalopay Account
  • Bank Account
  • ATM Card

This is an example of a transfer fund request to the user's receiving account and the corresponding response received:

TypeTransfer fund request to the user's receiving accountCorresponding response received
Transfer fund to Zalopay Account{
      "app_id": 15752,
      "payment_id": "P270868",
      "partner_order_id": "231010_6006493217",
      "disbursement_type": "WALLET",
      "receiver_info": "EKDa5iB2QvDMOOAlwqDXRZDTR+B3y....",
      "amount": 10000,
      "description": "Bonuses for users",
      "partner_embed_data": "",
      "extra_info": "",
      "time": 1700634330810,
      "mac": "e299e9189904266571daa7011d1746bd6d0082c8e1fccc3b07d203d3b9103585",
      "mc_reference_id": "TRANSACTION_01"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51642840027000060",
           "disbursement_type": "WALLET",
           "m_u_id": "Yh2mBCG983efb1Iwu4FuZJO5TgpnCXT-4fwvhNJV1a8",
           "phone": "*******9047",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700634331351
      }
}
Transfer fund to Bank Account{
      "app_id": 15752,
      "payment_id": "P270868",
      "partner_order_id": "3315712257",
      "disbursement_type": "BANK",
      "receiver_info": "Y8Dmn8sD8b56oB0BvURcj.....",
      "amount": 10000,
      "description": "Bonuses for users",
      "partner_embed_data": "",
      "extra_info": "",
      "time": 1700634596747,
      "mac": "fb3a2232210d2dfa12692ed15ff57eeee6db525e367f2f808e6797f516058c9c",
      "mc_reference_id": "TRANSACTION_01"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51643288515559318",
           "disbursement_type": "BANK",
           "bank_code": "ZPBIDV",
           "account_no": "*******2222",
           "account_holder_name": "NGUYEN VAN A",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700634598672
      }
}
Transfer fund to ATM Card{
      "app_id": 15752,
      "payment_id": "P270868",
      "partner_order_id": "3729797766",
      "disbursement_type": "BANK",
      "receiver_info": "IhtaVoGt19bRqU8vzinEwfy....",
      "amount": 10000,
      "description": "Bonuses for users",
      "partner_embed_data": "",
      "extra_info": "",
      "time": 1700635341572,
      "mac": "76a9ef49f7b334b9957962c04e41cb16b33623ce8e457b193d30c69ae45e2044",
      "mc_reference_id": "TRANSACTION_01"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51644538015498134",
           "disbursement_type": "BANK",
           "bank_code": "ZPCTG",
           "card_no": "***********6789",
           "card_holder_name": "NGUYEN VAN A",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700635343439
      }
}

Step 4. Query transfer fund status

Từ máy chủ của Doanh nghiệp, gọi API Query Transaction, tham khảo API Explore để biết chi tiết các tham số.
Đây là một ví dụ về yêu cầu (request) kiểm tra trạng thái giao dịch tiền và phản hồi (response) nhận về:

TypeRequest to check the status of a transfer fund transactionCorresponding response received
Transfer fund to Zalopay Account{
      "app_id": 15752,
      "partner_order_id": "1613909272",
      "time": 1701241387331,
      "mac": "5651d35fc58bf276a522262b76637fb9f1dad485014d14c4179227bafab968b4"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51642840027000060",
           "disbursement_type": "WALLET",
           "m_u_id": "Yh2mBCG983efb1Iwu4FuZJO5TgpnCXT-4fwvhNJV1a8",
           "phone": "*******9047",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700634331351
      }
}
Transfer fund to Bank Account{
      "app_id": 15752,
      "partner_order_id": "1613909272",
      "time": 1701241387331,
      "mac": "5651d35fc58bf276a522262b76637fb9f1dad485014d14c4179227bafab968b4"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51643288515559318",
           "disbursement_type": "BANK",
           "bank_code": "ZPBIDV",
           "account_no": "*******2222",
           "account_holder_name": "NGUYEN VAN A",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700634598672
      }
}
Transfer fund to ATM Card{
      "app_id": 15752,
      "partner_order_id": "1613909272",
      "time": 1701241387331,
      "mac": "5651d35fc58bf276a522262b76637fb9f1dad485014d14c4179227bafab968b4"
}
{
      "return_code": 1,
      "return_message": "Giao dịch thành công",
      "sub_return_code": 1,
      "sub_return_message": "Giao dịch thành công",
      "data": {
           "order_id": "51644538015498134",
           "disbursement_type": "BANK",
           "bank_code": "ZPCTG",
           "card_no": "***********6789",
           "card_holder_name": "NGUYEN VAN A",
           "status": 3,
           "amount": 10000,
           "partner_fee": 0,
           "zlp_fee": 0,
           "server_time": 1700635343439
      }
}