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

Transaksi recurring dan merchant-initiated

Prev Next

Xendit menawarkan dua jenis model integrasi berulang:

  • Produk subscription (kami menangani penagihan pembeli pada interval yang ditentukan, untuk jumlah tertentu).

  • Pengelolaan subscription Anda sendiri menggunakan Payments API kami, yang dijelaskan di bawah ini.

Menyimpan kartu untuk Subscription

Skenario: Pelanggan Anda mendaftar untuk layanan berlangganan bulanan. Anda akan mengelola kapan dan berapa banyak yang akan ditagihkan ke kartu mereka berdasarkan paket langganan mereka.

Cara kerja

  1. Izinkan pelanggan mendaftar dan memilih paket berlangganan.

  2. Tokenisasi dan simpan detail kartu pelanggan dengan Anda.

  3. Pelanggan akan ditagih secara otomatis berdasarkan siklus penagihan. Ikuti panduan integrasi ini untuk meminta pembayaran dengan token pembayaran yang ada.

  4. Berikan opsi bagi pelanggan untuk memperbarui kartu mereka atau membatalkan langganan.

Manfaat tokenisasi

  • Keamanan yang ditingkatkan: Data kartu sensitif tidak disimpan di server pedagang, sehingga mengurangi risiko pelanggaran data.

  • Pengalaman pelanggan yang Ddtingkatkan: Pelanggan tidak perlu memasukkan ulang detail kartu mereka untuk setiap pembayaran.

  • Pengurangan kegagalan pembayaran: Tokenisasi membantu meminimalkan kegagalan pembayaran karena informasi kartu kedaluwarsa atau diperbarui.

Tokenisasi adalah komponen penting dari bisnis berbasis langganan, memungkinkan pembayaran berulang yang mulus dan aman.

Untuk menagih dan menyimpan kartu untuk transaksi langganan, atur ke card_on_file_type RECURRING. Selain itu, tambahkan objek recurring_configuration di dalam payload request pembayaran untuk menagih pelanggan dengan token pembayaran yang ada.
Objek ini berisi dua bidang:

  • recurring_frequency: Frekuensi berulang menunjukkan hari antara tagihan kepada pembeli. Misalnya: Saat menagih pembeli setiap 4 minggu, tetapkan nilai ini ke 28

  • recurring_expiry: Kedaluwarsa berulang menunjukkan kapan langganan akan berakhir. Misalnya: Saat langganan berakhir pada akhir tahun 2028, tetapkan ini ke 2028.

{
    "reference_id": "video-streaming-subscriptions",
    "type": "PAY",
    "payment_token_id":"pt-263fe30e-88f3-4d78-b8d5-22743e7392d4",
    "country": "ID",
    "currency": "IDR",
    "request_amount": 5000,
    "channel_properties": {
       "card_on_file_type":"RECURRING",
       "recurring_configuration": {
          "recurring_expiry": "2026-12-12",
          "recurring_frequency": 1
       }  
    }
}

Transaksi merchant-initiated (Unscheduled card on file)

Skenario: Pelanggan Anda mengizinkan merchant untuk menyimpan detail kartu mereka untuk pembelian di masa mendatang, tetapi tanpa jadwal yang telah ditentukan sebelumnya.

Cara kerja

  1. Pelanggan memberikan persetujuan untuk menyimpan informasi kartu mereka dengan aman.

  2. Tokenisasi data kartu untuk penggunaan di masa mendatang.

  3. Anda dapat menagih kartu pelanggan sesuai kebutuhan (misalnya, untuk mengisi ulang akun prabayar atau memenuhi pesanan). Ikuti panduan integrasi ini untuk meminta pembayaran dengan token pembayaran yang ada.

  4. Jangan lupa untuk mengkomunikasikan biaya apa pun dengan jelas kepada pelanggan.

Kasus penggunaan

  • On-Ddmand services: Pelanggan yang menggunakan layanan secara sporadis (misalnya, naik taksi, pengiriman makanan).

  • Isi ulang akun: Pelanggan yang menambahkan dana ke akun mereka sesuai kebutuhan (misalnya, akun game, dompet elektronik).

  • Pembayaran berulang dengan jumlah bervariasi: Tagihan utilitas atau langganan dengan harga berbasis penggunaan.

Transaksi card-on-file yang tidak terjadwal memberikan fleksibilitas bagi Anda dan pelanggan sambil menjaga kenyamanan dan keamanan tokenisasi.

Simpan kartu untuk transaksi merchant-initiated

Untuk menagih dan menyimpan kartu untuk transaksi berlangganan, atur card_on_file_type ke MERCHANT_UNSCHEDULED dalam payload request pembayaran untuk menagih dengan token pembayaran yang sudah ada.

Contoh payload:

{
    "reference_id": "video-streaming-subscriptions",
    "type": "PAY",
    "payment_token_id":"pt-263fe30e-88f3-4d78-b8d5-22743e7392d4",
    "country": "ID",
    "currency": "IDR",
    "request_amount": 5000,
    "channel_properties": {
       "card_on_file_type":"MERCHANT_UNSCHEDULED",
       "recurring_configuration": {
          "recurring_expiry": "2026-12-12",
          "recurring_frequency": 1
       }  
    }
}