Capture adalah proses penarikan dana dari rekening bank pelanggan untuk pembelian. Secara default, Xendit meng-capture pembayaran secara otomatis. Namun, Anda dapat memilih untuk meng-capture pembayaran secara manual atau menjadwalkannya untuk waktu berikutnya.
Alasan untuk melakukan (atau menunda) pengambilan
Barang Fisik: Capture pembayaran hanya setelah pengiriman produk ke pelanggan.
Layanan: Untuk layanan yang diberikan dari waktu ke waktu, Anda mungkin ingin meng-capture pembayaran hanya setelah layanan selesai. Ini bisa mencakup hal-hal seperti proyek konsultasi, renovasi rumah, atau langganan berkelanjutan.
Pesanan Khusus: Jika Anda menjual produk yang dibuat khusus, Anda mungkin ingin meng-capture pembayaran hanya setelah barang diproduksi dan siap dikirim.
Barang Bernilai Tinggi: Untuk barang mahal, Anda mungkin ingin menunda pengambilan untuk memberi diri Anda waktu untuk memverifikasi informasi pembayaran pelanggan dan mengurangi risiko penipuan.
Pra-order: Jika Anda menawarkan pre-order untuk produk yang belum tersedia, Anda dapat menunda pengambilan hingga produk tersedia untuk pengiriman.
Reservasi: Untuk bisnis yang menerima reservasi, seperti restoran atau hotel, Anda dapat mengotorisasi kartu pada saat pemesanan, tetapi hanya meng-capture pembayaran saat pelanggan tiba.
Untuk memahami pengambilan dengan lebih baik, alur otorisasi dan pengambilan dijelaskan di bawah ini.
Otorisasi:
Pelanggan memulai pembelian.
Anda mengirim permintaan ke Xendit untuk mengotorisasi transaksi. Alur otorisasi mirip dengan transaksi satu kali, kecuali Anda menentukan sebagai
session_type
AUTHORIZATION
saat membuat Payment Session.Request - POST /session
{ "reference_id": "YOUR_PAYMENT_REFERENCE_ID", "session_type": "AUTHORIZATION", "mode": "CARDS_SESSION_JS", "amount": 100000, "currency": "IDR", "country": "ID", "customer": { "reference_id": "YOUR_CUSTOMER_REFERENCE", "type": "INDIVIDUAL", "email": "test@yourdomain.com", "mobile_number": "+6212345678", "individual_detail": { "given_names": "Jaap", "surname": "Stam" } }, "cards_session_js": { "success_return_url": "https://yourcompany.com/success", "failure_return_url": "https://yourcompany.com/failure" } }
Response - POST /session
{ "payment_session_id": "ps-6746c1006b7752b4d91725af", "created": "2024-11-27T06:49:36.535Z", "updated": "2024-11-27T06:49:36.535Z", "status": "ACTIVE", "reference_id": "YOUR_PAYMENT_REFERENCE_ID", "currency": "IDR", "amount": 10000, "country": "ID", "customer_id": "XENDIT_GENERATED_CUSTOMER_ID", "expires_at": "2024-11-27T07:19:36.434Z", "session_type": "AUTHORIZATION", "mode": "CARDS_SESSION_JS", "locale": "en", "business_id": "YOUR_BUSINESS_ID", "cards_session_js": { "success_return_url": "https://yourcompany.com/success", "failure_return_url": "https://yourcompany.com/failure" } }
Setelah pelanggan menyelesaikan proses otorisasi, kami akan menghubungi bank penerbit pelanggan untuk memverifikasi validitas kartu dan dana yang tersedia.
Bank penerbit menahan jumlah transaksi pada kartu nasabah.
Kami menerima tanggapan dari bank penerbit (persetujuan atau penolakan).
Xendit mengirimkan status otorisasi melalui webhook
payment.authorization
. Status akan mencakup statusAUTHORIZED
dan detail pembayaran.{ "created": "2024-12-18T05:46:35.109Z", "business_id": "62440e322008e87fb29c1fd0", "event": "payment.authorization", "data": { "type": "PAY", "status": "AUTHORIZED", "country": "ID", "created": "2024-12-18T05:46:08.192Z", "updated": "2024-12-18T05:46:30.627Z", "currency": "IDR", "payment_id": "py-3f57d678-2448-4c9f-a433-8468d366fb5c", "business_id": "62440e322008e87fb29c1fd0", "customer_id": "cust-7de9a9b4-37e8-40ad-b665-d97f42e538c5", "channel_code": "CARDS", "reference_id": "97ba0a32-b996-4abf-8a7b-6184a6644676_b8d18f2f-3", "capture_method": "MANUAL", "request_amount": 10000, "payment_details": { "authorization_data": { "reconciliation_id": "7345007929096981703954", "authorization_code": "831000", "acquirer_merchant_id": "xendit_ctv_agg", "network_response_code": "00", "network_transaction_id": "016153570198200", "cvn_verification_result": "M", "retrieval_reference_number": "435205253972", "address_verification_result": "M", "network_response_code_descriptor": "Approved and completed sucessfully" }, "authentication_data": { "flow": "CHALLENGE", "a_res": { "eci": "05", "message_version": "2.1.0", "authentication_value": "AAIBBYNoEwAAACcKhAJkdQAAAAA=","directory_server_trans_id": "e537f539-d59f-4ebe-8d56-7fdc31a8e9b4" } } }, "payment_request_id": "pr-5593127f-8c7b-4d2f-b487-c785ffc21e2f" }, "api_version": "v3" }
Anda dapat menyimpan
payment_id
dan menggunakannya untuk/capture
dana nanti. Pada tahap ini, dana belum ditransfer ke pedagang; mereka dipegang atau "dicadangkan".
Jenis capture:
Capture otomatis: Ini adalah pengaturan default untuk banyak gateway pembayaran, termasuk Xendit. Dana di-capture (ditransfer ke Anda) segera setelah otorisasi, seringkali dalam beberapa menit.
Capture manual: Anda dapat memilih untuk menunda pengambilan dana. Ini berguna dalam skenario seperti yang disebutkan sebelumnya (pengiriman barang fisik, menyelesaikan layanan, dll.).
Request capture: Saat Anda siap untuk menagih pembayaran, mereka mengirimkan permintaan pengambilan ke gateway pembayaran.
Untuk mengirim permintaan capture, gunakan dari
payment_id
proses Otorisasi Anda dan kirimkan ke endpoint capture kami.Settlement: Dana biasanya diselesaikan ke saldo Anda dalam beberapa hari kerja, tergantung pada negara dan bentuk pembayaran.
Pertimbangan penting:
Authorization holds: Authorization holds pada kartu pelanggan biasanya berlangsung selama 7 hari. Jika dana tidak di-capture dalam jangka waktu ini, penahanan dilepaskan, dan dana tersedia kembali.
Otorisasi yang tidak di-capture hanya berlaku selama 7 hari.
Capture Parsial: Dalam beberapa kasus, Anda dapat meng-capture jumlah yang lebih kecil dari jumlah resmi asli. Ini dapat digunakan untuk situasi seperti diskon atau pengembalian dana sebagian.
Nota
Capture parsial tidak tersedia di setiap negara. Periksa Cards overview page kami untuk detailnya.
Capture parsial berganda
Saat ini capture parsial berganda tidak didukung oleh Xendit. Jika Anda tertarik dengan skenario ini, hubungi Customer Support Xendit.
Membatalkan pembayaran
Jika Anda memutuskan untuk tidak mengambil dana (misalnya, pelanggan membatalkan pesanan), Anda dapat membatalkan otorisasi. Ini membatalkan transaksi dan melepaskan penangguhan pada kartu pelanggan. Gunakan endpoint batalkan pembayaran kami untuk membatalkan otorisasi menggunakan payment_id
proses dari Otorisasi.