---
title: "Reschedule loan account"
method: POST
path: "/api/v1/loan-accounts/{id}/reschedules"
tags: ["Loan Accounts"]
---

# Reschedule loan account

`POST /api/v1/loan-accounts/{id}/reschedules`

Appends an immutable rescheduled schedule version and recalculation trigger. Idempotency is enforced by the lib-commons idempotency middleware via the X-Idempotency header; a reused key with different facts yields 409. A malformed UUID yields 422.

## Path parameters

- `id` string, uuid, required — Loan account identifier (UUID).

## Headers

- `X-Idempotency` string, required — Canonical idempotency request ID. Enforced by the lib-commons idempotency middleware.

## Request body

- RescheduleLoanAccountHumaRequest
  - `businessDate` string, required — YYYY-MM-DD business date applied to the reschedule.
  - `effectiveDate` string, required — YYYY-MM-DD effective date of the reschedule.
  - `firstRescheduledDueDate` string, required — YYYY-MM-DD first due date of the rescheduled plan.
  - `newTermMonths` integer, required — New loan term in months.
  - `reason` string, required — Operator-supplied reschedule reason.
  - `transactionId` string, required — Operator-supplied reschedule transaction identifier.

## Response `201`

Created

- ScheduleVersionCommandHumaBody
  - `previousScheduleVersionId` string, required — Predecessor schedule version UUID.
  - `scheduleVersion` ScheduleVersionHumaBody, required
    - `createdAt` string, required — ISO-8601 creation timestamp (UTC).
    - `id` string, required — Schedule version UUID.
    - `installments` ScheduleVersionInstallmentHumaBody[], nullable, required — Recalculated installment schedule.
      - `dueDate` string, required — ISO-8601 due date.
      - `feesAmount` string, required — Fees due (2 d.p. string).
      - `interestAmount` string, required — Interest due (2 d.p. string).
      - `number` integer, required — Installment ordinal (1-based).
      - `penaltiesAmount` string, required — Penalties due (2 d.p. string).
      - `principalAmount` string, required — Principal due (2 d.p. string).
      - `principalRemaining` string, required — Unpaid principal for THIS installment (per-installment, 2 d.p. string) — not the whole-loan declining balance.
      - `totalAmount` string, required — Total due (2 d.p. string).
    - `loanAccountId` string, required — Loan account UUID.
    - `predecessorVersionId` string — Predecessor schedule version UUID, if any.
    - `reason` string, required — Reason the version was appended.
    - `triggerTransactionId` string, required — Transaction that triggered the recalculation.
    - `versionNumber` integer, required — Monotonic schedule version number.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lerian/apis/identity-plugin.md) · [All operations](https://skmtc.net/lerian/apis/identity-plugin/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lerian/identity-plugin/versions/25daba385532/schema)
