---
title: "Installment"
slug: "installment-1"
updated: 2026-05-11T08:03:52Z
published: 2026-05-11T08:03:52Z
canonical: "docs.xendit.co/installment-1"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xendit.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Installment

Installment payments allow customers to split a single purchase into multiple monthly payments over a predefined period. The installment plans available for a transaction depend on the card issuer, transaction amount, and your business eligibility.

Installments are an agreement between the **cardholder (end user)** and the **issuing bank**. When a customer selects an installment option, the issuing bank converts the transaction into a series of monthly charges to the cardholder based on the selected tenor.

For your business, the transaction is processed and settled as a normal card payment. You will receive the full transaction amount according to the standard settlement schedule, and there is no change to the settlement process compared to a regular card transaction. You do not receive installment payments on a monthly basis.

Before creating a payment request with installments, you must first check which installment plans are available for the transaction.

## Supported channels

Installments are currently supported for:

| Payment Channel | Country | Available Interval |
| --- | --- | --- |
| CARDS | Indonesia (We offer BNI and BRI installments without the need for a direct contract with these banks) | 3, 6, 12 months |
| BAY_CARD_INSTALLMENT | Thailand | 3, 4, 6, 9, 10, 12 months |
| BBL_CARD_INSTALLMENT | Thailand | 3, 4, 6, 8, 9, 10 months |
| KBANK_CARD_INSTALLMENT | Thailand | 3, 4, 5, 6, 7, 8, 9, 10 months |
| KTB_CARD_INSTALLMENT | Thailand | 3, 4, 5, 6, 7, 8, 9, 10 months |
| SCB_CARD_INSTALLMENT | Thailand | 3, 4, 6, 10 months |
| TTB_CARD_INSTALLMENT | Thailand | 3, 4, 6, 10 months |

More countries and card installment programs may be added in the future.

## Integration Flow

![](https://cdn.document360.io/217abc43-8677-41fb-a81d-fceeb1fa0358/Images/Documentation/image(201).png)

To accept installment payments using your own hosted page, follow these steps:

1. **Check available installment options**

Use `POST /payment_options` to retrieve the installment plans available for a specific transaction.

> For `CARDS`, checking installment options requires the full card number. Because this involves handling sensitive card data, this integration method is **only available to PCI-DSS certified merchants**. For non PCI-DSS, we’d recommend you to use [Xendit Components or Payment Session](/v1/docs/installment-1#using-xendit-components-or-payment-session) for simple and compliant integration.
> 
> 
> 
> For Thailand card installments, you can use the same endpoint to retrieve available installment options. Card details are not required when checking the available plans.

Request - POST /payment_options

```json
{
  "channel_code": "CARDS", //see supported payment channel for installment
  "country": "ID",
  "amount": 1000000,
  "currency": "IDR",
  "channel_properties": {
    "card_number": "40000000001091"
  }
}
```

Response - POST /payment_options

```json
{
    "channel_code": "CARDS",
    "country": "ID",
    "amount": 100000,
    "currency": "IDR",
    "installment_plans": [
        {
            "interval": "MONTH",
            "interval_count": 1,
            "terms": 12,
            "installment_amount": 8333.33,
            "total_amount": 100000,
            "description": "0%, 12 x IDR 8333.33",
            "interest_rate": 0
        },
        {
            "interval": "MONTH",
            "interval_count": 1,
            "terms": 3,
            "installment_amount": 33333.33,
            "total_amount": 100000,
            "description": "0%, 3 x IDR 33333.33",
            "interest_rate": 0
        },
        {
            "interval": "MONTH",
            "interval_count": 1,
            "terms": 6,
            "installment_amount": 16666.67,
            "total_amount": 100000,
            "description": "0%, 6 x IDR 16666.67",
            "interest_rate": 0
        }
    ]
}
```

1. **Create the payment request** When creating the payment, include the selected installment configuration inside the channel properties. For example, Create Payment Request for `CARDS` .

Request - POST /v3/payment_requests

```json
{
    "type": "PAY",    
    "country": "ID",
    "currency": "IDR",
    "reference_id": "YOUR_REFERENCE_ID",
    "description": "Description examples",
    "metadata": {
        "metametadata": "metametametadata"
    },
    "capture_method": "AUTOMATIC",
    "channel_code": "CARDS",
    "request_amount": 100000,
    "channel_properties": {
        "success_return_url": "https://xendit.co/success",
        "failure_return_url": "https://xendit.co/failure",
        "skip_three_ds": false,
        "installment_configuration": { //get from the installment options checker
            "terms": 3,
            "interval": "MONTH"
        },
        "statement_descriptor": "Goods",
        "card_details": {
            "card_number": "4000000000001091",
            "expiry_month": "12",
            "expiry_year": "2029",
            "cardholder_first_name": "cardholderFirstName",
            "cardholder_last_name": "cardholderLastName",
            "cardholder_email": "cardholder_email_address@gmail.co"
        }
    }
}
```

Request - POST /v3/payment_requests

```json
{
    "payment_request_id": "pr-decfe933-d035-4d8d-946d-3e2358e82d93",
    "country": "ID",
    "currency": "IDR",
    "business_id": "62440e322008e87fb29c1fd0",
    "reference_id": "2c47486e-091e-4be7-b447-c504a77b48a9",
    "description": "Description examples",
    "metadata": {
        "metametadata": "metametametadata"
    },
    "created": "2026-03-16T13:08:54.848Z",
    "updated": "2026-03-16T13:08:54.848Z",
    "status": "REQUIRES_ACTION",
    "capture_method": "AUTOMATIC",
    "channel_code": "CARDS",
    "request_amount": 100000,
    "channel_properties": {
        "success_return_url": "https://xendit.co/success",
        "failure_return_url": "https://xendit.co/failure",
        "skip_three_ds": false,
        "installment_configuration": {
            "terms": 3,
            "interval": "MONTH"
        },
        "statement_descriptor": "Goods",
        "card_details": {
            "masked_card_number": "400000XXXXXX1091",
            "expiry_month": "12",
            "expiry_year": "2029",
            "fingerprint": "61a443574a7d750020465c79",
            "type": "CREDIT",
            "network": "VISA",
            "country": "ID",
            "issuer": "PT BANK RAKYAT INDONESIA TBK",
            "cardholder_first_name": "cardholderFirstName",
            "cardholder_last_name": "cardholderLastName",
            "cardholder_email": "cardholder_email_address@gmail.co"
        }
    },
    "type": "PAY",
    "actions": [
        {
            "type": "REDIRECT_CUSTOMER",
            "descriptor": "WEB_URL",
            "value": "https://redirect.xendit.co/authentications/69b800e82d553167f7295ff1/render?api_key=xnd_public_development_kSJeNzbAo6DEkX1poFWVLBsmR0nJ8WnjpdQpf4dfIPXgDBltJmH7CZGVUfWWI"
        }
    ]
}
```

## Using Xendit Components or Payment Session

For merchants that are not PCI-DSS certified, direct card data handling is not allowed.

We recommend integrating with:

- [**Xendit Components**](/v1/docs/components-overview)
- [**Payment Session**](/v1/docs/how-payment-sessions-work)

These integrations automatically display available installment plans and allow customers to select their preferred installment option directly in the hosted page.

![](https://cdn.document360.io/217abc43-8677-41fb-a81d-fceeb1fa0358/Images/Documentation/image(202).png)

No additional API integration is required to display installment plans.

## Installment testing scenario

You can simulate installment payments using the [Xendit Demo Store](https://demo-store.xendit.co/). Use the test cards below to simulate installment transactions in the demo environment.

> These test cards are intended for **sandbox testing only** and will not process real transactions.

| **Channel Code** | **Issuer Bank** | **Country** | **Scheme** | **Card Number** |
| --- | --- | --- | --- | --- |
| CARDS | BRI | Indonesia | Mastercard | 5454 5454 5454 5454 |
| CARDS | BRI | Indonesia | VISA | 4000 0000 0000 1091 |
| CARDS | BRI | Indonesia | JCB | 3337 0000 0020 0004 |
| CARDS | BNI | Indonesia | Mastercard | 5200 0000 0000 1096 |
| CARDS | BNI | Indonesia | JCB | 3338 0000 0000 0569 |
| KBANK_CARD_INSTALLMENT | Kasikornbank | Thailand | VISA/Mastercard | 4535017710535741 Expiry date: 05/28 CVV: 184 |
| SCB_CARD_INSTALLMENT | Siam Commercial Bank | Thailand | VISA/Mastercard | 5258860689905862 Expiry date: 02/25 CVV: 950 |

##
