Creating Payout Links

Creating a payout link is simple and easy. You can choose to create it via your dashboard, or via API. All of your payout links will be displayed on the dashboard along with their status and details.

Payout Link Rules

Before you create a payout link, there are some rules you need to understand:

  1. Once you created a payout link, you can’t change any details of the payout. Should you wish to cancel the payout link, you can do so by clicking “Void” in the said payout link page from Xendit Dashboard or hitting our Void Payout API.
  2. Payout link limit is 3 days. If there is no claim in 3 days after the payout creation, the payout link will be expired.
  3. Your payout link will be marked as failed if there are 3 wrong secret password input at the point of payout claim.

Create Payout Links

You can create payout links via Xendit Dashboard or API depending on what might suit your business needs. Below are the the overview you may want to consider when choosing between the two options:

Payout Link Creation PlatformBenefitsTrade-offs
Dashboard- Doesn't require technical integration - Create payout links anywhere and anytime as long as you have access to Xendit dashboard with edit permission - Step-by-step payout link creation is easy to understandPayout link creation is done manually (can't be automated)
API- Payout link creation is automated via API - Create payout links within seconds - User Interface can be customized based on your business needsRequires developer resources for technical integration

Create Payout Links via Dashboard

To create an payout link via dashboard, you Account User should have at least EDIT permission. Follow these steps to create a payout link via Xendit dashboard:

  1. Login to your Xendit dashboard
  2. Go to Send Payments > Payouts
  3. Click "Create Payout Link" to create a payout and use the information below as your guide
FieldWhat to Fill
External IDUnique identifier for your created Payout Link. Alphanumeric characters supported (no space allowed). Please ensure your external ID is unique to allow easy reconciliation according to your usecase, example: HOUSE.AP/INV/XXV/341293TPR0004XJEDBDIEFDJIAGDY
AmountThe total amount of money you want to disburse
EmailEmail address of the payout link recipient. We will send them an email with the password for them to claim the payout

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

Create Payout Links via API

Follow these steps to create an payout link via API:

  1. Follow the instruction in Xendit API Reference on Create Payout Link section to start creating your payout via API
  2. Setup your Disbursement Callback URL in Xendit Dashboard for "Disbursement sent"

Example of Create payout link via API

<?php

  use Xendit\Xendit;
  require 'vendor/autoload.php';

  Xendit::setApiKey('xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==');

  $params = [
    'external_id' => 'demo_2392329329',
    'amount' => 23000
  ];

  $createPayout = \Xendit\Payouts::create($params);
  var_dump($createPayout);

?>
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });

const { Payout } = x;
const payoutSpecificOptions = {};
const p = new Payout(payoutSpecificOptions);

const resp = await p.createPayout({
  externalID: 'demo_2392329329',
  amount: 23000,
  email: 'demo@xendit.co'
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
  Map<String, Object> params = new HashMap<>();
  params.put("external_id", "demo_2392329329");
  params.put("amount", 23000);
  params.put("email", "demo@xendit.co");

  Payout payout = Payout.createPayout(params);
} catch (XenditException e) {
  e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="

createData := payout.CreateParams{
  ExternalID: "demo_2392329329",
  Amount:     23000,
  Email: "test@email.com",
}

resp, err := payout.Create(&createData)
if err != nil {
  log.Fatal(err)
}

fmt.Printf("created payout: %+v\n", resp)
from xendit import Xendit

api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
Payout = xendit_instance.Payout

payout = Payout.create(
    external_id="payout-1595405117",
    amount=50000,
    email="test@email.co",
)
print(payout)

Testing Payout Links

Test payout links via amount by following these simple steps:

  1. Create a payout link and fill in the amount (via Dashboard or API)
  2. Claim your payout in the payout link and input the secret password
  3. Go to your Payout Link tab in Xendit dashboard
  4. Wait 10 minutes and Payout status will be changed to “Completed”

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.

Payout Link Statuses

To enhance your experience, Xendit Payout Link has its own status that will help you to easily identify which payouts are already completed, claimed, or failed/voided. These are the possible statuses payout links can have:

StatusDescription
PendingPayouts has been successfully created and payout link has been sent to the recipient email. At this point, the disbursement has not been initiated
ClaimedThe recipient has successfully claimed the payouts and disbursement is initiated
CompletedFunds successfully disbursed to the recipient bank account
FailedThe payout has failed. Reasons can vary from expiring without being claimed, locking due to password failures, to an issue with the bank disbursement
VoidedThe payout has been voided. This issue is raised because the payout is expired or manually voided by hitting the void endpoint

Last Updated on 2024-03-14