---
title: "Simulate penalty"
method: POST
path: "/v1/deposits/accounts/{accountId}/penalty-simulation"
tags: ["Penalty"]
---

# Simulate penalty

`POST /v1/deposits/accounts/{accountId}/penalty-simulation`

Simulate the penalty applied to a specified withdrawal on a given date. The operation is read‑only and does not modify any data.

Use this endpoint to preview penalty fees before making an actual withdrawal.

The simulation evaluates all penalty rules configured in the product, including:

- Early withdrawal penalties

- Grace period penalties

- Tiered interest forfeiture penalties

- Withdrawal fees

- Subsequent withdrawal penalties

Notes:
- A withdrawal date inside the cool‑off period results in no penalties
- If `withdrawal_amount` is omitted, the Pismo platform fetches the current book balance from [Get transaction banking account balance](https://developers.pismo.io/pismo-docs/reference/get-account-balances).
- If `withdrawal_amount` is provided, the balance cannot exceed the current book balance.

## Path parameters

- `accountId` integer, required

## Headers

- `AuthorizationToken` string, required

## Request body

- PenaltySimulationRequest
  - `withdrawal_amount` number — The amount the customer intends to withdraw. When omitted, the system fetches the current book balance from Bank Statements API. When provided, it must not exceed the current book balance.
  - `withdrawal_date` string, date-time, required — Simulated withdrawal date in ISO 8601 format.

## Response `200`

Simulation completed successfully

- PenaltySimulationResponse
  - `withdrawal_amount` number — The withdrawal amount used in the simulation (equals book_balance when omitted in request)
  - `withdrawal_date` string, date-time — The withdrawal date used in the simulation in ISO 8601 format.
  - `penalty_rule_applied` PenaltyRuleApplied[] — List of penalty rules that applies to the withdrawal, omitted if no penalties apply.
    - `type` 'percentage' | 'fixed' — The penalty calculation type. - `percentage`: The penalty calculated as a percentage of the withdrawal amount - `fixed`: The penalty is a fixed amount
    - `value` number — The penalty value. For `percentage`, this represents the percentage rate, for example, `2.5` = 2.5%. For `fixed`, this is the absolute amount in the account's currency.
    - `description` string — Describes the penalty rule that triggers the penalty
  - `penalty_amount` number — The total penalty amount applied to the withdrawal, combining all relevant penalty rules.
  - `penalty_breakdown` PenaltyBreakdown — Breakdown of the total penalty amount by calculation type. Omitted when no penalty applies.
    - `fixed_amount` number — The sum of all fixed-amount penalties
    - `percentage_amount` number — The sum of all percentage-based penalties
  - `currency` string — The currency in ISO 4217 alphabetic format, omitted if no penalty applies.
  - `gross_amount` number — The gross amount of the deposit account, calculated as the sum of the total balance without interest plus the total interest earned. Always present; 0 when no total record exists.
  - `interest_earned_amount` number — The total interest earned (paid/capitalized) on the account. Always present; 0 when no total record exists.
  - `net_amount` number — The net amount after deducting penalties from the gross amount: `gross_amount - penalty_amount`.
  - `simulation_timestamp` string, date-time — The date and time of the simulation, formatted according to ISO 8601.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/pismo/apis/platform-authentication.md) · [All operations](https://skmtc.net/pismo/apis/platform-authentication/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pismo/platform-authentication/revisions/935b62e16de4/schema)
