---
title: "Create an instant settlement"
method: POST
path: "/settlements/ondemand"
tags: ["Instant Settlements"]
---

# Create an instant settlement

`POST /settlements/ondemand`

Request an on-demand (instant) settlement of your available Razorpay balance to your bank account. Fees apply. Use settle_full_balance=true to settle everything available, or specify an amount.

## Request body

- object
  - `amount` integer, required — Settlement amount in paise.
  - `settle_full_balance` boolean — Set true to settle the full available balance. Overrides amount.
  - `description` string — Custom reference note. Max 30 alphanumeric characters.
  - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.

## Response `200`

Instant settlement initiated.

- InstantSettlement
  - `id` string — Unique instant settlement identifier. Prefix: setlod_
  - `entity` 'settlement.ondemand'
  - `amount_requested` integer — Settlement amount requested (paise).
  - `amount_settled` integer — Total amount transferred minus fees and tax (paise).
  - `amount_pending` integer — Portion of requested amount yet to be settled (paise).
  - `amount_reversed` integer — Amount returned to PG balance (paise).
  - `fees` integer — Combined fees and tax deducted (paise).
  - `tax` integer — Tax on fee component (paise).
  - `currency` string
  - `settle_full_balance` boolean — If true, settles maximum available balance.
  - `status` 'created' | 'initiated' | 'partially_processed' | 'processed' | 'reversed'
  - `description` string — Custom reference note. Max 30 alphanumeric characters.
  - `notes` Notes — Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.
  - `created_at` integer
  - `ondemand_payouts` object — Collection of individual payout records for this instant settlement.
    - `entity` 'collection'
    - `count` integer
    - `items` InstantSettlementPayout[]
      - `id` string
      - `entity` 'settlement.ondemand_payout'
      - `initiated_at` integer
      - `processed_at` integer
      - `reversed_at` integer
      - `amount` integer
      - `amount_settled` integer
      - `fees` integer
      - `tax` integer
      - `utr` string
      - `status` 'created' | 'initiated' | 'processed' | 'reversed'
      - `created_at` integer

## Other responses

- `400` — Bad request. Invalid parameters or missing required fields.
- `401` — Authentication failed. Invalid or missing API key credentials.
- `429` — Rate limit exceeded. Implement exponential backoff with jitter before retrying.

---

[API](https://skmtc.net/razorpay/apis/razorpay-api.md) · [All operations](https://skmtc.net/razorpay/apis/razorpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/razorpay/razorpay-api/revisions/824ca9e6faef/schema)
