Untuk menyederhanakan proses pembayaran bagi pelanggan yang kembali, tokenisasi kartu Xendit menawarkan solusi untuk menyimpan detail kartu pelanggan dengan aman dan efisien. Ini menghilangkan kebutuhan pembeli untuk memasukkan kembali informasi mereka pada setiap pembelian, sehingga menghasilkan proses checkout yang lebih lancar.. Anda dapat menyimpan beberapa kartu per pembeli dengan One-Click Payments with CVN atau Merchant-Initiated Transactions.
Alur penyimpanan kartu
Cara integrasi
Buat payment session
Untuk memulai proses tokenisasi, Anda perlu membuat sesi pembayaran dengan Xendit.
session_type
harusSAVE
, danamount
harus0
.
Permintaan - POST /sesi
| Permintaan - POST /sesi
|
---|
Kumpulkan informasi kartu
Terapkan card_session.js untuk mengumpulkan informasi kartu.
Permintaan - card_session.js
| response - card_session.js
|
---|
Penting: Anda harus menyimpan payment_token_id
yang dikembalikan dalam respons ini dan mengirimkannya ke server Anda. payment_token_id
ini sangat penting untuk melacak status tokenisasi kartu dan untuk transaksi di masa mendatang.
Alihkan ke halaman autentikasi
Setelah mengumpulkan informasi kartu, pelanggan Anda akan diarahkan ke halaman otentikasi 3D Secure (3DS) yang dihosting oleh bank penerbit. Setelah autentikasi berhasil, pelanggan akan diarahkan kembali ke halaman keberhasilan yang Anda tentukan (misalnya
https://yourcompany.com/success
).Terima webhook
Xendit mengirimkan token pembayaran webhook ke endpoint webhook Anda yang memberikan update tentang aktivasi token pembayaran. Pastikan Anda mendengarkan webhook untuk mengonfirmasi status penyimpanan kartu.
Contoh webhook payment_token.activation
:
{
"created": "2024-12-18T03:57:21.601Z",
"business_id": "62440e322008e87fb29c1fd0",
"event": "payment_token.activation",
"data": {
"status": "ACTIVE",
"country": "ID",
"created": "2024-12-18T03:57:19.330Z",
"updated": "2024-12-18T03:57:21.215Z",
"currency": "IDR",
"business_id": "62440e322008e87fb29c1fd0",
"customer_id": "cust-9f02010d-1189-4f2c-95e9-fe7f52fdd29b",
"channel_code": "CARDS",
"reference_id": "efe51f0c-ea1f-45ec-96e4-5275db384d68_1b0d11cd-a",
"token_details": {
"authorization_data": {
"reconciliation_id": "7344942402526026003955",
"authorization_code": "831000",
"acquirer_merchant_id": "xendit_ctv_agg",
"network_response_code": "00",
"network_transaction_id": "016153570198200",
"cvn_verification_result": "M",
"retrieval_reference_number": "435203752181",
"address_verification_result": "M",
"network_response_code_descriptor": "Approved and completed sucessfully"
}
},
"payment_token_id": "pt-eda13864-5091-4bd2-b88d-ae640be90ee7",
"channel_properties": {
"card_details": {
"type": "CREDIT",
"issuer": "BRI",
"country": "ID",
"network": "VISA",
"expiry_year": "2040",
"fingerprint": "635a0be115cf90001ae83752",
"expiry_month": "12",
"cardholder_email": "test@yourdomain.com",
"masked_card_number": "400000XXXXXX1091",
"cardholder_last_name": "lastName",
"cardholder_first_name": "firstName",
"cardholder_phone_number": "+62812347290"
},
"skip_three_ds": true,
"card_on_file_type": "CUSTOMER_UNSCHEDULED",
"failure_return_url": "https://yourcompany.com/failure",
"success_return_url": "https://yourcompany.com/success"
}
},
"api_version": "v3"
}
Mengambil detail kartu yang disimpan
Setelah kartu berhasil ditokenisasi (dan Anda telah menerima webhook),
payment_token.activation
Anda dapat mengambil detail token dengan membuat permintaan GET kepayment_tokens/YOUR_PAYMENT_TOKEN_ID
.
response - /v3/payment_tokens
|
---|
Gunakan token pembayaran untuk transaksi di masa mendatang
Setelah token pembayaran dihasilkan, token ini bertindak sebagai referensi aman ke detail kartu yang disimpan pengguna akhir. Anda dapat menggunakan token ini untuk transaksi di masa mendatang, berdasarkan perjanjian persetujuan Anda dengan pengguna akhir.
Use case untuk token pembayaran:
Customer-Initiated Transactions (Returning Customers) - memungkinkan pengguna untuk menggunakan kartu yang disimpan dengan mulus untuk pembelian berikutnya. Untuk meningkatkan tingkat keberhasilan, sebaiknya minta pengguna untuk memasukkan kembali CVN mereka saat menyelesaikan transaksi. Lihat panduan integrasi
Merchant-Initiated Transactions (Recurring Payments) - Anda dapat memulai transaksi tanpa interaksi pengguna akhir (misalnya, untuk langganan atau debit otomatis). Ideal untuk layanan berbasis langganan, keanggotaan, dan penagihan otomatis. Lihat panduan integrasi