Send money at scale to all bank accounts & eWallets in Indonesia, Philippines, Malaysia, Thailand, and Vietnam using Xendit’s Disbursements. You can send us disbursement instructions via automated APIs or via Excel uploads containing up to 10,000 transactions.

Disbursements are processed instantly, and can be executed from 7am to 11pm, 7 days a week, including weekends and public holidays. Unfortunately, we’re restricted by when the bank servers are awake and so can’t disburse funds when they’re asleep or when they fail. If you send money outside these times, we will execute as soon as the banks open again.

We currently support disbursements to 140+ local banks, virtual accounts of the biggest banks (BRI, BNI, Mandiri, CIMB Niaga, Permata, BTN, and NOBU Bank) and eWallets (e.g. Gopay, OVO, DANA, LinkAja & Shopee Pay). View all channel codes here.

Process flow

Use Cases

eCommerce refunds

eCommerce platforms use Xendit’s disbursement APIs to provide automatic refunds to their customers who cancel a purchase or complain about a product.

Wallet payouts

Xendit helps wallets and cashback platforms to provide instant payouts from their users’ balances to the users’ bank accounts at any time. These businesses can scale quickly without a growing ops team.

Marketplace escrow

Xendit’s flexible API enables marketplaces to forward verified payments from customers to merchants without any manual process.

Payroll and commissions

Companies use our batch uploads to disburse pay and commissions to their staff and agent partners easily. Paying unbanked workers is easy with our Disbursement to e-wallets

Getting Started

  • Set-up: Sign up for an account to start disbursing.
  • Testing: You can test all disbursement features at any time using our Test Mode. If you are a developer, our RESTful API and Postman collection libraries have all the functionality you need for fast and simple integration.
  • Go-live: Go live in minutes through our rapid onboarding process, available at any time within the Xendit Dashboard.
  • Top-up: Our disbursement product relies on a top up system - you will need to maintain a balance of funds within our system. We hold these funds securely on your behalf until you give us instructions to disburse. Top up by transferring funds to us via bank transfer.
  • Start disbursing! Once your balance is topped up, you can start creating disbursements via API or excel upload.

Who can I disburse to?

BanksIndonesia: 140+ banks Philippines: 50+ banks Vietnam: 38 banks Malaysia: 32 banks Thailand: 31 banks
Virtual AccountsIndonesia: Disburse to VAs of major Indonesian banks: BRI, BNI, Mandiri, CIMB Niaga, Permata, BTN, and NOBU Bank
E-WalletsIndonesia: Gopay, OVO, DANA, Linkaja, Shopeepay Philippines: Paymaya, GCASH, Coins, Grabpay, Starpay Malaysia: Touch & Go, Finexus Cards

Bank Accounts

We have direct connections to multiple banks that enable us to send disbursements to 140+ banks in Indonesia, 50+ banks in the Philippines, 38 banks in Vietnam, 32 banks in Malaysia, and 31 banks in Thailand. See all available bank destinations or get the full list via our Get available disbursement banks API.

Virtual Accounts

We support disbursements to VAs of major banks (BRI, BNI, Mandiri, CIMB Niaga, Permata, BTN, and NOBU Bank). The disbursement will be subject to that bank’s limits, if any.

E-wallet top-ups

We support disbursements into all Indonesia e-wallets and some Philippines e-wallets. You can transfer funds directly to the e-wallets of your customers. Simply use the following input in a disbursement request:

  • bank_code or channel_code = code of the destination e-wallet (example: GOPAY, PH_GCASH)
  • account_holder_name or account_name = name of the account holder, per the e-wallet’s records
  • account_number = phone number registered with the e-wallet (example: ID - 0812XXXXXXXXX, PH - 09XXXXXXXXX)

As we will execute the transfer to the e-wallet account tied to the specified phone number, please ensure that you have entered the correct phone number in the request. The disbursement will appear as a top up on your customer’s e-wallet. View sample screenshots on recipient wallets here.

Please note that each e-wallet imposes a limit on the amount of balance a user can hold in their wallet. In the event that a disbursement will bring a user’s balance above the prescribed maximum balance, the transfer will fail.

View limits and processing times of all supported destinations.

Supported Currencies

We support disbursements in IDR, PHP, VND, MYR, and THB. We accept top-ups in IDR, PHP, VND, MYR, THB and in foreign currencies. Find our guide for topping up your balance on the next page.

Instant processing

Each disbursement request is processed instantly. Please note that you are unable to cancel a disbursement request once it has been made.

Upon sending a disbursement request, we return a response notifying you that the disbursement is pending. This means that the disbursement is being processed.

Error Handling

We return error details for each transaction, which you may view on the Dashboard. where disbursements fail for any reason. For disbursements created using API, error codes are provided in API callbacks.

Failure can be due to a range of factors, including invalid API inputs, network errors, and rejection by banks. We provide a comprehensive list of all possible error codes you may receive, detailed explanation on what each error code means and corresponding recommendations on next steps, so that you know whether you should retry the disbursement and the recommended time frame for retrying. See failure codes.

Batch disbursement features

Execute multiple disbursement transactions through a single excel file upload with Batch Disbursements. This removes the time and hassle of executing many transfers one by one, reduces the risk of manual errors and ensures you pay your suppliers and customers on time.

Key features:

  • Comes ready to use--no technical integration required
  • Send up to 10,000 disbursements in a go
  • You can multiple users in your team and implement controls by configuring user permissions
  • Our system automatically checks the recipient bank details for any errors

No technical integration required

Use our easy-to-use dashboard interface to manage all disbursements. Once you create an account with us, you can start testing and using batch disbursements. See Onboarding and Activation.

Send up to 10,000 disbursements in a go

There are two ways you can create a batch disbursement:

  • Upload an excel file with up to 10,000 disbursements; or
  • Send us an API request, which can contain up to 1000 disbursements.

User permissions

You can invite multiple users of your team to access a Xendit account and collaborate on the disbursement process. To restrict the actions they can perform, you can define their user roles to limit their access. Each team member must be assigned a role when they are added. Each of your invited users receive an email which guides them to sign up for their own Xendit account.

To view and manage user permissions, please go to Dashboard > Settings > Your team > Team members.

To use batch disbursements, you’ll need at least one user with Edit access and one with Approve access (this can be the same person). A user with Edit access can create and edit disbursements. A user with Approver access has the ability to approve batch disbursements.

Bank account and name validation

When you upload a batch, we automatically validate transaction details to check for errors to pre-empt wrong or failed disbursements. After validation, you’ll be able to see any issues with disbursement details. You can fix all issues directly on the Dashboard before proceeding with the transfers.

Possible validation errors include:

  • Account does not exist. This means that the account number you entered is invalid. You should edit the account number before proceeding.
  • Account Name mismatch. This means that your account name input does not match bank records. You should check whether the destination account number is correct. If needed, edit the bank account number / bank account name before proceeding.

Last Updated on 2023-11-06