Welcome to Xendit’s latest documentation. For legacy content, access the previous documentation here or the previous API reference here.

Link Payout

Prev Next

Catatan Penting

Payout Links API hanya tersedia untuk Payout ke Indonesia saat ini.

Pelajari cara membuat Link Payout secara terprogram melalui bagian berikut.

Sebelum memulai

  • Buat Kunci API di Dasbor Xendit Anda. Anda memerlukan Kunci API untuk melakukan panggilan API.

  • Siapkan URL webhook Anda. Konfigurasikan ini untuk menerima notifikasi real-time tentang perubahan status payout.

Buat Link Payout

Hubungi Create Payout Links API dengan email penerima Anda untuk membuat Payout Link.

Contoh request

curl https://api.xendit.co/payouts -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
-d external_id=demo_2392329329 \
-d amount=23000 \
-d email=demo@xendit.co

Contoh response

{
  "id": "67f1b30c-0262-4955-8777-95aa0478c2fc",
  "external_id": "demo_2392329329",
  "amount": 23000,
  "merchant_name": "First Business",
  "status": "PENDING",
  "expiration_timestamp": "2019-12-12T06:13:21.637Z",
  "created": "2019-12-09T06:13:20.363Z",
  "payout_url": "https://payout.xendit.co/web/67f1b30c-0262-4955-8777-95aa0478c2fc"
}

Ambil Link Payout

Hubungi Get Payout Link API untuk mengambil detail Link Payout. Ini biasanya berguna untuk mendapatkan status Link Payout Anda. Selain itu, sebaiknya Anda subscribe ke event webhook kami untuk mengetahui pembaruan status link payout Anda.

Untuk informasi selengkapnya, lihat cara mengatur webhook.

Contoh request

curl https://api.xendit.co/payouts/:id -X GET \
    -u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==:

Contoh response

{
  "id": "00754a09-ad00-4475-b874-1dd97f83fc24",
  "external_id": "ext-121313",
  "amount": 20000,
  "merchant_name": "First Business",
  "status": "PENDING",
  "expiration_timestamp": "2019-12-12T06:45:30.041Z",
  "created": "2019-12-09T06:45:28.628Z",
  "payout_url": "https://payout.xendit.co/web/00754a09-ad00-4475-b874-1dd97f83fc24"
}

Membatalkan Link Payout

Panggilan untuk Cancel Payout Link API membatalkan Payout Link yang belum diklaim oleh penerima Anda.

Pembayaran hanya dapat dibatalkan jika statusnya adalah PENDING. Disarankan untuk merujuk Get Payout Link API ke untuk mengetahui apakah Payout Link masih dapat dibatalkan atau tidak. Atas request pembatalan, kami akan mengembalikan response dengan VOID status. Setelah dibatalkan, Payout Link seharusnya tidak dapat diklaim.

Contoh request

curl https://api.xendit.co/payouts/:id/void -X POST \
    -u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==:

Contoh response

{
  "id": "00754a09-ad00-4475-b874-1dd97f83fc24",
  "external_id": "ext-121312",
  "amount": 20000,
  "merchant_name": "First Business",
  "status": "VOIDED",
  "expiration_timestamp": "2019-12-12T06:45:30.041Z",
  "created": "2019-12-09T06:45:28.628Z"
}

Penanganan Kesalahan

Kesalahan Dalam Membuat Link Payout

Semua kemungkinan error saat membuat payout melalui endpoint API kami tercantum di halaman ini.

Untuk kesalahan umumnya, respons yang Anda terima akan berisi:

  • error_code: Kode semantik yang menentukan kesalahan yang ditemui;

  • message: Pernyataan singkat yang menjelaskan kode.

Contoh:

{
    "error_code": "DUPLICATE_PAYOUT_ERROR",
    "message": "A payout with this idempotency key already exists. If you meant to execute a different request, please use another idempotency key."
}

Jika Anda menerima error dalam respons API kami, ini berarti ada masalah saat membuat payout karena input yang tidak valid atau masalah dengan server. Untuk instruksi penanganan terperinci dari setiap kesalahan, silakan lihat tabel di bawah ini:

Kode kesalahan

Penjelasan

API_VALIDATION_ERROR

Input tertentu tidak memenuhi persyaratan validasi API kami.

DUPLICATE_PAYOUT_ERROR

external_id telah digunakan sebelumnya. Gunakan unik external_id dan coba lagi.

INSUFFICIENT_BALANCE

Saldo di akun Anda tidak mencukupi untuk melakukan pembayaran dalam jumlah yang diinginkan.

Kesalahan Dalam Mengklaim Pembayaran

Setelah status payout adalah REQUESTED, status payout mungkin gagal dalam pemrosesan partner payout kami atau ditolak oleh bank penerima, di mana statusnya akan beralih ke FAILED. Berlangganan disbursement.failed event webhook untuk menerima pemberitahuan real-time tentang setiap kegagalan transfer dan alasannya.

Penting bagi Anda untuk memahami setiap kode kegagalan secara rinci untuk memutuskan tindakan yang tepat untuk diambil. Di bawah ini adalah daftar lengkap kemungkinan kode kegagalan yang mungkin Anda terima, apa artinya, dan apa tindakan yang kami sarankan yang sesuai:

Kode kesalahan

Deskripsi

Haruskah Anda mencoba lagi?

INSUFFICIENT_BALANCE

Klien memiliki saldo yang tidak mencukupi untuk jumlah pembayaran

Ya, coba kembali pembayaran setelah memastikan bahwa Anda memiliki saldo yang cukup di akun Anda

INVALID_DESTINATION

Akun penerima tidak ada/tidak valid

Anda tidak mungkin berhasil jika mencoba kembali request payout. Harap konfirmasi dengan penerima apakah akun mereka benar

DESTINATION_MAXIMUM_LIMIT

Penerima tidak dapat menerima dana karena jumlah pembayaran melebihi kemampuan penerima untuk menerima

Anda tidak mungkin berhasil jika mencoba kembali request payout. Harap konfirmasi dengan penerima apakah akun mereka dapat menerima pembayaran

REJECTED_BY_CHANNEL

Pembayaran gagal karena error dari channel tujuan. Hal ini biasanya karena masalah jaringan yang terkait dengan bank tujuan atau penerbitan pengkreditan dana ke rekening bank tujuan

Ya, coba kembali pembayaran setelah memvalidasi bahwa nomor rekening bank tujuan aktif dan dapat menerima dana dalam mata uang yang Anda pilih

TEMPORARY_TRANSFER_ERROR

Jaringan channel mengalami kesalahan sementara

Ya, coba kembali pembayaran dalam 1-3 jam

TRANSFER_ERROR

Kami mengalami error fatal saat memproses pembayaran ini. Biasanya, ini berarti bahwa kolom API tertentu dalam request Anda tidak valid

Tidak mungkin request pencairan yang sama akan berhasil jika Anda mencoba lagi

Catatan: Kita dapat menambahkan kode kegagalan baru ke daftar di atas dan sistem Anda harus dapat menangani event tersebut meskipun kode kegagalan tidak dikenali.

Event Link Payout

Pelajari lebih lanjut di bawah ini untuk berbagai event webhook yang dapat Anda langganan. Untuk informasi selengkapnya tentang berbagai status link payout, lihat Payout Status Lifecycle.

Event Webhook

Status Pembayaran

disbursement.completed

SUCCEEDED

disbursement.failed

FAILED