Prepayment

Simulate prepayment

Simulate a prepayment for a loan using the prepayment engine.

The response includes the resulting balance breakdown, the new repayment schedule, and a simulation_id that can later be used to register the prepayment via POST /v2/loans/{loanId}/prepayment/{simulationId}/register.

This endpoint generates a Lending prepayment creation event.

post/v2/loans/{loanId}/prepayment/simulate

Request

  • Base URL
    https://sandbox.pismolabs.io/lending
  • URL
    https://sandbox.pismolabs.io/lending/v2/loans/{loanId}/prepayment/simulate
  • Auth
    HTTP bearer

Path parameters

loanIdstring uuid required

ID of the loan the operation applies to

Headers

Idempotency-Keystring uuid

Optional UUID that makes the request idempotent, enabling you to retry it multiple times while the system processes it only once.

Request body

amount_paidnumber double required

Prepayment amount

reduce_option'INSTALLMENT' | 'TERM' required

Defines the way that the outstanding loan amount is reduced.

reference_datestring date

Reference date used to compute the prepayment. When omitted, the Pismo platform sets the value to the current date. Format = YYYY-MM-DD.

waive_feeboolean

When omitted, the Pismo platform sets the value to false. Should the fees applied to this prepayment be waived?

Example request

{
  "amount_paid": 1000,
  "reduce_option": "INSTALLMENT",
  "reference_date": "2026-05-15"
}

Response

Prepayment simulated.

amount_paidnumber double

Prepayment amount

created_atstring date-time

Date and time the simulation was created. ISO 8601 with millisecond precision and offset. Format = YYYY-MM-DDThh:mm:ss.SSSZ.

insurance_amount_paidnumber double

Insurance portion paid as part of the prepayment

loan_idstring uuid

ID of the loan the simulation was run against

new_remaining_totalnumber double

Total remaining loan amount after applying this prepayment

penalty_amount_paidnumber double

Penalty portion paid as part of the prepayment

reduce_option'INSTALLMENT' | 'TERM'

Defines the way that the outstanding loan amount is reduced.

simulation_idstring uuid

Prepayment simulation ID

tax_amount_paidnumber double

Tax portion paid as part of the prepayment

Example response

{
  "amount_paid": 1000,
  "balance_breakdown": {
    "interest": 150,
    "penalty": 50,
    "principal": 1800
  },
  "created_at": "2026-09-03T17:59:36.550Z",
  "loan_id": "2717a296-124a-47cc-b2a1-91e80dc723eb",
  "new_remaining_total": 5000,
  "new_repayment_schedule": [
    {
      "due_date": "2026-06-15",
      "installment_number": 1,
      "interest_amount": 15,
      "principal_amount": 200,
      "total_amount": 215
    }
  ],
  "penalty_amount_paid": 50,
  "reduce_option": "INSTALLMENT",
  "simulation_id": "c04fd22b-7d9c-4099-aaf4-9ee002b5a6a7"
}

Changes

No recorded changes to this operation across all 1 revision of this API.