API ReferenceSign In


Last updated 07/16/2020

Overview and Use Case

Payouts enable you to make disbursements to customers for whom you don’t have destination bank account details. You can use our payout links to collect the fund account details and then process refunds, reimbursements, or cashbacks automatically.

Typically, to pay out to a customer, you would need to reach out to your customer to get their bank details, have multiple contacts to confirm those details, then have the finance team manually process the disbursement.

With Payouts, you can minimize the operational hassle of gathering bank details from customers. Our Payouts feature is built on top of our Xendisburse API, which allows bank transfers to more than 140+ banks in Indonesia. We also allow transfers to OVO and GOPAY.

While most of our customers use Payouts for refunding transactions, there are many others including deposit returns, paying out staff, giving bonuses, and cashbacks.

Create a Payout link

Creating a payout will be very simple and easy. You can choose to create it via your dashboard, or set up the API integration to send the URL. All of your payouts will be displayed on the dashboard along with their status and details.

Via Dashboard

Creating a payout via Xendit dashboard is very simple. First, go to your dashboard and open the Payouts tab. Click on the Create Payout button there, which will show:

External IDUnique code for you to reconcile. e.g.:Refund-Payouts-123XXXXX
AmountPayout total amount in Rupiah
Recipient Emailcustomer@domain.com

After you create a payout, an email will be generated and sent to the Recipient Email. This email contains instructions, a password, and a link to the payout UI.


An example API request is available in our Postman Library.

External IDUnique code for you to reconcile. e.g.:Refund-Payouts-123XXXXX
AmountPayout total amount in Rupiah
Recipient Emailcustomer@domain.com

User Journey

After the recipient receives the payout link via email, they need to fill in their bank details and complete a verification.

Destination BankYou can choose up to 140+ banks that can be served via Xendit, including GOPAY, and OVO. List of Bank Codes.
Account NameThe recipient’s name.
Account NumberThe recipient’s bank account number for the transfer
Secret PasswordThe secret password that is found in the email.

Above is what your user will see after the payout refund has been completed

Monitoring and Statuses

There are two ways you can monitor the status of a payout:

  • Xendit Payouts tab dashboard

    • Login to your Xendit dashboard, and open the Payouts tab. You will see all the payout links that have been created to your account.
  • API / Callback

    • You are able to use a GET Status for the particular payout that you have generated. Use this method if you would like to receive the confirmation of the status of your payout to display the information on your website/app.

    • Xendit will also send the status to you for transfer through our Disbursements callback. Please set up your Disbursements callback URL to handle the transfer status.

  • Below are the statuses that you might might see both on the Dashboard, and the GET URL

PENDINGThe payout URL has been created, but the transaction has not been successfully disbursed. Kindly refer to the Disbursement status of the transfer for further information. 
COMPLETEDFunds successfully disbursed to the recipient bank account.
FAILEDThe payout has failed. The reason is described in failure_reason field. This can include expiring without being claimed, locking due to password failures, or an issue with the bank disbursement
VOIDEDThe payout has been voided. This issue is raised because the payout has been expired or manually voided by hitting the void endpoint.


You are able to test our payout features in development mode. The following conditions must be met for the payout testing:

ScenarioParameter: Value
Successful Payout  Will complete payment and initiate callback API to your callback URL with status: “COMPLETED”amount: 90000

Please note that the testing will only trigger after you have inputted the secret passkey from your email in the payout link. You may also find the testing scenarios based on the Disbursements testing simulation.

Frequently Asked Questions

  1. Can I edit/change the amount of a payout that I have created?
    We do not provide the option to change the amount once the payout URL has been generated. If you need to change the amount, we suggest voiding the previous link, and creating a new payout link.
  2. What is the expiration limit for a payout link?
    The payout expiration limit is 24 hours after the request has been created. If it exceeds 24 hours without an attempt to refund, the link will expire and you will need to create a new payout link.
  3. Can I cancel a payout?
    Yes you may, we provide a button to VOID a payout on your Xendit dashboard, or you can also use
  4. Can I retry a failed payout?
    No, you may not. Once payout has failed, the payout link will show a FAILED status, with the failure reason. For this, you may recreate the payout link and inform the user to try again.
  5. Can my recipients use GOPAY / OVO accounts as the destination account number?
    Yes they can, we list GOPAY and OVO as destination bank accounts in the form, which the recipient can choose from the form.
  6. What is the fee charged for payouts?
    Our payouts feature is built on top of the Disbursement feature. You will be charged for the disbursement fee, which has a published rate of 5.000 IDR (excluding PPN).

Feedback / Requests

We are always looking to improve, and would love to hear your thoughts and feedback - please send us an email to payouts-feedback@xendit.co