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

Fixed Amount Subscriptions

Prev Next

Fixed Amount Subscriptions adalah jenis langganan yang paling umum, di mana pembayaran dilakukan pada interval tetap dan jumlahnya tetap sama untuk setiap siklus. Kasus penggunaan umum termasuk langganan media, premi asuransi, biaya keanggotaan, atau pembayaran pinjaman.

Cara integrasi

Fixed Amount Subscriptions pada dasarnya hanya memerlukan satu penyiapan di muka selama pembuatan Subscription dan Xendit kemudian akan secara otomatis mempertahankan penjadwal hingga Subscriptionmencapai siklus akhir yang Anda inginkan.

  1. Aplikasi Anda harus menampilkan Subscription agar pengguna akhir dapat memilih opsi tersebut. Langkah ini seharusnya hanya duduk di sistem Anda, belum ada interaksi ke lingkungan Xendit. Anda dapat melakukan hal serupa seperti ini

  2. Setelah pengguna akhir memilih paket yang diinginkan, Anda dapat membuat paket Subscription ke Xendit.

    Contoh payload:

    Request - POST /berulang/rencana

    {
        "reference_id": "ref-{{$timestamp}}",
        "customer_id": "cust-7e34f507-808d-44f8-a4a6-aea89a14a89c",
        "recurring_action": "PAYMENT",
        "currency": "IDR",
        "amount": 13579,
        "schedule": {
            "reference_id": "test-{{$timestamp}}",
            "interval": "MONTH",
            "interval_count": 1,
            "total_recurrence": 6,
            "anchor_date": "2025-02-15T09:44:19.546Z",
            "retry_interval": "DAY",
            "retry_interval_count": 1,
            "total_retry": 3,
            "failed_attempt_notifications": [
                1,3
            ]
        },
        "notification_config": {
            "locale": "en",
            "recurring_created": [
                "WHATSAPP",
                "EMAIL"
            ],
            "recurring_succeeded": [
                "WHATSAPP",
                "EMAIL"
            ],
            "recurring_failed": [
                "WHATSAPP",
                "EMAIL"
            ]
        },
        "failed_cycle_action": "STOP",
        "immediate_action_type": "FULL_AMOUNT",
        "payment_link_for_failed_attempt": true,
        "metadata": null,
        "description": "Xendit Recurring Test",
        "success_return_url": "https://www.xendit.co/",
        "failure_return_url": "https://www.xendit.co/"
    }

    Response - POST /berulang/rencana

    {
        "id": "repl_c87f3312-a9c1-4eee-932c-38479f911830",
        "reference_id": "ref-1733299168",
        "customer_id": "cust-7e34f507-808d-44f8-a4a6-aea89a14a89c",
        "recurring_action": "PAYMENT",
        "failed_cycle_action": "STOP",
        "recurring_cycle_count": 0,
        "currency": "IDR",
        "amount": 13579,
        "status": "REQUIRES_ACTION",
        "created": "2024-12-04T07:59:28.553Z",
        "updated": "2024-12-04T07:59:28.553Z",
        "schedule_id": "resc_07d3197d-f860-47dc-bc6e-b87deaf34735",
        "payment_methods": [],
        "schedule": {
            "id": "resc_07d3197d-f860-47dc-bc6e-b87deaf34735",
            "reference_id": "test-1733299168",
            "business_id": "62440e322008e87fb29c1fd0",
            "interval": "MONTH",
            "interval_count": 1,
            "total_recurrence": 6,
            "anchor_date": "2025-02-15T09:44:19.546Z",
            "retry_interval": "DAY",
            "retry_interval_count": 1,
            "total_retry": 3,
            "failed_attempt_notifications": [
                1,
                3
            ],
            "created": "2024-12-04T07:59:28.545Z",
            "updated": "2024-12-04T07:59:28.545Z"
        },
        "immediate_action_type": "FULL_AMOUNT",
        "notification_config": {
            "locale": "en",
            "recurring_created": [
                "WHATSAPP",
                "EMAIL"
            ],
            "recurring_succeeded": [
                "WHATSAPP",
                "EMAIL"
            ],
            "recurring_failed": [
                "WHATSAPP",
                "EMAIL"
            ]
        },
        "metadata": null,
        "description": "Xendit Recurring Test",
        "actions": [
            {
                "url": "https://linking-dev.xendit.co/pali_a757f019-19b9-4522-91fe-03b6dc00368a",
                "action": "AUTH",
                "method": "GET",
                "url_type": "WEB"
            }
        ],
        "success_return_url": "https://www.xendit.co/",
        "failure_return_url": "https://www.xendit.co/",
        "items": null,
        "payment_link_for_failed_attempt": true,
        "failure_code": null
    }
  3. Setelah membuat Subscription, arahkan pengguna Anda ke halaman yang dihosting Xendit menggunakan objek dari actions respons API. Langkah ini memungkinkan pengguna akhir untuk menautkan metode pembayaran mereka ke paket Subscription.

  4. Setelah pengguna akhir berhasil menautkan metode pembayaran mereka, Xendit akan mengirimkan recurring.plan.activation webhook untuk mengonfirmasi aktivasi paket Subscription.

  5. Dengarkan webhook siklus (recurring.cycle) untuk melacak status setiap siklus Subscription. Lanjutkan pemantauan hingga semua siklus selesai untuk memastikan eksekusi dan visibilitas yang mulus ke dalam proses Subscription.

Untuk Fixed Amount Subscription, penyiapan minimal diperlukan di pihak Anda. Setelah Subscription dibuat, Xendit akan secara otomatis memproses setiap siklus sesuai dengan jadwal yang ditentukan hingga semua siklus selesai.