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

Refund pembayaran kartu

Prev Next

Refund biasanya dibuat melalui API call ke endpoint khusus, berbeda dari yang digunakan untuk membuat pembayaran. Request ini memerlukan detail spesifik seperti ID permintaan pembayaran asli, jumlah pengembalian dana, dan alasan pengembalian dana. Atau, untuk proses yang cepat dan mudah, Anda dapat menggunakan tombol Refund yang tersedia di dasbor Anda.

Membuat request refund melalui API

Untuk memulai pengembalian dana, kirim request POST ke endpoint /refunds.

Request - ke /refund

{
  "reference_id": "YOUR_REFERENCE_ID",
  "payment_request_id": "pr-YOUR_PAYMENT_REQUEST_ID",
  "currency": "IDR",
  "amount": 25000,
  "reason": "REQUESTED_BY_CUSTOMER"
}
{
    "id": "rfd-50d758bc-e352-46fc-aa5d-82b69d2fe35a",
    "payment_id": "pr-UNIQUE_PAYMENT_ID",
    "payment_request_id": "pr-YOUR_PAYMENT_REQUEST_ID",
    "invoice_id": "",
    "amount": 25000,
    "payment_method_type": "CARD",
    "channel_code": "",
    "currency": "IDR",
    "status": "SUCCEEDED",
    "reason": "REQUESTED_BY_CUSTOMER",
    "reference_id": "YOUR_REFERENCE_ID",
    "failure_code": null,
    "refund_fee_amount": null,
    "created": "2025-04-10T07:37:29.651482099Z",
    "updated": "2025-04-10T07:37:29.651482291Z",
    "metadata": null,
    "refund_method": "DIRECT",
    "payout_link_properties": null,
    "actions": null
}

Validasi dan pemrosesan pengembalian dana

Sebelum pengembalian dana diproses, sistem melakukan serangkaian validasi:

  • Jumlah: Jumlah pengembalian dana (atau total beberapa pengembalian dana sebagian) tidak boleh melebihi jumlah transaksi awal.

  • Eligibilitas: Permintaan pengembalian dana biasanya harus dilakukan dalam waktu 1 tahun sejak transaksi awal.

Setelah disetujui, pengembalian dana diproses:

  1. Penyesuaian saldo: Saldo akun Anda disesuaikan untuk mencerminkan jumlah pengembalian dana.

  2. Komunikasi jaringan: Permintaan pengembalian dana dikomunikasikan ke jaringan kartu terkait.

  3. Settlement: Jumlah yang dikembalikan dikreditkan kembali ke rekening pemegang kartu. Ini biasanya memakan waktu beberapa hari kerja, bervariasi berdasarkan jaringan kartu dan bank penerbit pemegang kartu.

Pertimbangan penting:

  • Biaya: Meskipun pelanggan Anda menerima jumlah pengembalian dana penuh, ketahuilah bahwa biaya transaksi awal umumnya tidak dikembalikan kepada Anda.

  • Waktu proses refund: Waktu pemrosesan pengembalian dana dapat bervariasi secara signifikan, mulai dari instan hingga beberapa hari kerja, tergantung pada bank penerbit.

Refund sebagian

Refund sebagian memungkinkan Anda mengembalikan sebagian dari jumlah transaksi awal, bukan jumlah penuh. Ini berguna dalam kasus-kasus seperti pembatalan pesanan sebagian, penukaran produk, atau penyesuaian untuk masalah layanan.

Anda dapat melakukan beberapa pengembalian dana sebagian untuk transaksi yang sama, selama jumlah total pengembalian dana tidak melebihi nilai transaksi asli. Setiap pengembalian dana sebagian diproses secara terpisah, memastikan fleksibilitas dalam memenuhi kebutuhan pelanggan sambil mempertahankan catatan transaksi yang akurat.

Buat request refunda sebagian

Untuk membuat refund sebagian, ikuti langkah yang sama dengan request refund penuh. Satu-satunya perbedaan adalah Anda dapat menentukan jumlah yang lebih rendah dari nilai transaksi asli.

Buat request POST untuk /refunds

Request - ke /refunds

{
  "reference_id": "YOUR_REFERENCE_ID",
  "payment_request_id": "YOUR_PAYMENT_REQUEST_ID",
  "currency": "IDR",
  "amount": 15000,
  "reason": "REQUESTED_BY_CUSTOMER"
}

Response - dari /refunds/{payment_request_id}

{
    "id": "rfd-d0728898-c6bf-423b-b59c-a2892d8ea4ac",
    "payment_id": "pr-UNIQUE_PAYMENT_ID",
    "payment_request_id": "YOUR_PAYMENT_REQUEST_ID",
    "invoice_id": "",
    "amount": 15000,
    "payment_method_type": "CARD",
    "channel_code": "",
    "currency": "IDR",
    "status": "SUCCEEDED",
    "reason": "REQUESTED_BY_CUSTOMER",
    "reference_id": "YOUR_REFERENCE_ID_FOR_PARTIAL_REFUND",
    "failure_code": null,
    "refund_fee_amount": null,
    "created": "2025-04-10T07:45:06.811060184Z",
    "updated": "2025-04-10T07:45:06.811060244Z",
    "refund_method": "DIRECT",
    "payout_link_properties": null,
}

Ini contoh refund sebagian yang mungkin muncul di dasbor Xendit Anda:

Event history showing total received, refund requested, and charged amounts with dates.

Refund vs. Chargeback

Refund dan chargeback adalah dua hal yang berbeda. Proses refund dimulai oleh Anda (merchant) untuk mengembalikan dana kepada pelanggan. Sedangkan Chargeback adalah dispute yang dibuat oleh pemegang kartu secara langsung melalui bank mereka, biasanya karena transaksi yang tidak valid atau masalah layanan.