Bahasa Indonesia
API ReferenceLogin

Penarikan Dana Kartu

Last updated 01/12/2022

Bagian ini mengasumsikan Anda telah menerapkan solusi untuk mengumpulkan dan melakukan tokenisasi pada kartu pelanggan Anda. Jika belum , silakan liat Tokenisasi Kartu Kredit sebelum melanjutkan.

Xendit.js dan bentuk pembayaran Anda sendiri tidak menimbulkan biaya. Gabungan Xendit.js and the HTML form memenuhi sebagian proses pembayaran, tetapi kode server-side juga diperlukan untuk menyelesaikan alur kerjanya.

Setelah token berhasil dibuat dengan Xendit.js atau mobile SDK, token harus dikirim ke Server Anda dimana kartu dapat ditagih (charge)

  • Setelah tokenisasi, form pembayaran harus memiliki tabel yang tersembunyi dengan ID tokem, dimana form harus dikirim menggunakan JavaScript ( sebagai pengingat, peingiriman form dicegah sebelumnya sehingga skrip dapat menunggu Xendit untuk membuat token detil kartu)
  • Semua data form akan dikirimkan sebagai permintaan POST ke URL dalam tindakan form. Jika Anda memiliki elemen formulir lain, seperti alamat email pengguna, yang akan dikirimkan seperti biasa

Setelah Anda mengumpulkan(collection) dan melakukan tokenisasi detail pada kartu pelanggan Anda menggunakan Xendit.js atau mobile SDK, anda dapat melakukan penagihan (charge) kartu tersebut

  • Tidak seperti pengumpulan (collection), yang terjadi di browser, upaya penagihan (charge) dilakukan dari server Anda, biasanya menggunakan library klien kami
  • Di server Anda, ambil token Xendit di parameter POST yang dikirimkan oleh form Anda. Dari sana, laukan API request untuk melakukan penagihan kartu (charge):
curl https://api.xendit.co/credit_card_charges -X POST \
  -u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
  -d external_id=your-external-id \
  -d token_id=your-token-id \
  -d amount=17000
<?php
    require("vendor/autoload.php");

    $options['secret_api_key'] = "xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==";

    $xenditPHPClient = new XenditClientXenditPHPClient($options);

    $external_id = "your-external-id";
    $token_id = "your-token-id";
    $amount = 17000; // Amount must match what was passed to createToken in the browser

    $response = $xenditPHPClient->captureCreditCardPayment($external_id, $token_id, $amount);
    print_r($response);
?>

Pastikan Anda menggunakan Secret API key Anda bukan Public API key Anda disini.

Jika permintaan penagihan telah berhasil, berarti kartu berhasil ditagih.

Untuk referensi API yang lebih lengkap Anda bisa mengecek refernsi kami disini API Reference

Nomor Kartu Tes

Berikut adalah nomor kartu test yang bisa Anda gunakan dalam mode development (tes)

  • Jika tidak ada tanggal kedaluwarsa (expiry date) Anda dapat menggunakan tanggal manapun setelah tanggal hari ini
  • Jika CVN/CVV diperlukan dan tidak disediakan, Anda dapat menggunakan kombinasi 3 digit apa pun
Card BrandBankNomor Kartu
VisaBRI4000 0000 0000 0002
VisaBNI4365 0237 8115 5828
VisaBCA4472 4299 6831 3785
VisaXendit4111 1111 1111 1111
MasterCardBRI5104 5821 7994 9459
MasterCardBNI5426 4045 6410 9386
MasterCardBCA5413 2258 5638 7173
MasterCardXendit5200 0000 0000 0007
JCBXendit3569 9600 1008 3758

Pengujian - Mensimulasikan Penagihan Gagal

Dalam mode Development, Anda dapat menggunakan magic amount ini untuk mensimulasikan respons gagal saat Anda saat melakukan penagihan. Masukkan salah satu jumlah yang tercantum disini sebagai jumlah yang akan ditagih

ALASAN GAGALDEFINISIMAGIC AMOUNT
EXPIRED_CARDKartu sudah kadaluwarsa.10051
CARD_DECLINEDKartu ditolak oleh bank penerbit (issuing bank).10052
PROCESSOR_ERRORTerdapat kendala pada processor saat transaksi terjadi.10053
INSUFFICIENT_BALANCESaldo pada kartu tidak cukup untuk melakukan transaksi.10054
STOLEN_CARDKartu ditandai sebagai kartu yang telah dicuri.10055
INACTIVE_CARDKartu sudah tidak aktif.10056
TEMPORARY_SYSTEM_ERRORTerdapat gangguan sementara pada saat transaksi terjadi.10057
CAPTURE_AMOUNT_LIMIT_ERRORJumlah yang akan dicapture kurang dari minimum limit atau lebih dari maksimum limit.10058

Langkah Berikutnya

Pertanyaan?

Masih ada pertanyaan lain? Kami selalu senang dapat membantu Anda sebisa kami. Silakan hubungi kami melalui email atau bicara dengan kami di live chat.