---
title: "Simulate installment advancement"
method: GET
path: "/v1/accounts/{accountId}/installment-advance/simulations"
tags: ["Simulations"]
---

# Simulate installment advancement

`GET /v1/accounts/{accountId}/installment-advance/simulations`

## Request

- Base URL: `https://sandbox.pismolabs.io/installment-management`
- URL: `https://sandbox.pismolabs.io/installment-management/v1/accounts/{accountId}/installment-advance/simulations`
- Auth: HTTP bearer

Simulate an installment advancement for an account. That is, it simulates advancing one or more installments from a future cycle to the current cycle.

To simulate advancing installments for a specific installment agreement (contract), set the `condition` query parameter to `SINGLE_CONTRACT`, and set the `transaction_id` query parameter to the transaction ID of any of the installments in the installment agreement. Specify the number of installments to advance in the simulation in the `number_of_installments_to_advance` query parameter. Installments are advanced starting with the last scheduled installment in the agreement and working backwards from there.

To simulate advancing <b>all</b> future installments for <b>all</b> installment agreements in the account, set the `condition` field to `ALL_CONTRACTS`. (In this case, the `number_of_installments_to_advance` field is ignored.)

When you simulate advancing installments, you must specify what to do with the interest. You have three options:
- To simulate removing 100% of the interest on the advanced installment(s), set the `remove_interest_from_current` query parameter to `true` and the `calculator` query parameter to `NONE`.
- To simulate advancing 100% of the interest on the advanced installment(s), set `remove_interest_from_current` to `false` and set `calculator` to `NONE`.
- To simulate recalculating the interest applied to the advanced installments(s), set `calculator` to `PRESENT_VALUE`. The `remove_interest_from_current` parameter can be set to either `true` or `false`. If `true`, the interest on installments that were already in the current cycle (and did not need to be advanced) is recalculated in the simulation. Otherwise, interest on those installments is unchanged.

For more information, see <a href='https://developers.pismo.io/pismo-docs/docs/installment-management#installment-advancements'>Installment advancements</a>.

This endpoint generates an <a href='https://developers.pismo.io/events/docs/balance-installment-advancement-1'>Installment advanced</a> event.

## Path parameters

- `accountId` integer, required

## Query parameters

- `transactionId` integer
- `condition` 'ALL_CONTRACTS' | 'SINGLE_CONTRACT', required
- `removeInterestFromCurrent` boolean
- `calculator` 'PRESENT_VALUE' | 'NONE'
- `reschedule` 'ADVANCEMENT', required
- `numberOfInstallmentsToAdvance` integer
- `interestRemovalEndDate` string, date

## Response `200`

OK

- SimulateInstallmentAdvancedResponseDto: Response returned by the simulation of an advancement
  - `account_id` integer: Account ID
  - `authorization_id` integer: Authorization ID for the first installment
  - `condition` 'SINGLE_CONTRACT' | 'ALL_CONTRACTS': Installments should be advanced for all the contracts for an account (`ALL_CONTRACTS`) or for a specific contract (`SINGLE_CONTRACT`). If `condition` is set to `SINGLE_CONTRACT`, then the `transaction_id` field must be set to the transaction ID of the specific contract.
  - `calculator` 'PRESENT_VALUE' | 'REMOVE_ALL_INTEREST' | 'NONE': Type of calculation to apply. Default is `NONE`.
  - `reschedule` 'ADVANCEMENT': Reschedule mode to apply. Must be `ADVANCEMENT`.
  - `interest_removal_end_date` string, date: Cutoff date used for interest recalculation when `calculator` is `PRESENT_VALUE`. Reflects the value passed in the request. `null` if not passed. Format = yyyy-mm-dd.
  - `installments` InstallmentResponseDto[]
    - `id` integer: Transaction ID of the installment
    - `new_amount` number, double: Full installment amount after applying any discount, including principal and interest charges
    - `old_amount` number, double: Full installment amount before applying any discount, including principal and interest charges
    - `new_interest_amount` number, double: Full interest amount of installment after applying any discount
    - `old_interest_amount` number, double: The full interest amount of an installment before applying any discount.
    - `new_statement_id` number: ID of the current statement
    - `old_statement_id` number: ID of the old statement. This is the ID of the statement on which the installment was scheduled to appear before it was advanced. For installments that are not advanced, `old_statement_id` and `new_statement_id` should contain the same values.

## Other responses

- `400`: Bad request
- `409`: Conflict
- `500`: Internal server error

---

[API](https://skmtc.dev/pismo/apis/revolving-credit-installment-management.md) - [All operations](https://skmtc.dev/pismo/apis/revolving-credit-installment-management/llms.txt) - [OpenAPI document](https://skmtc.dev/pismo/apis/revolving-credit-installment-management/revisions/214db4655f4a?raw)
