---
title: "Update simulation config"
method: PUT
path: "/v1/simulation/configs/{simulation_config_id}"
tags: ["Simulation"]
---

# Update simulation config

`PUT /v1/simulation/configs/{simulation_config_id}`

Update a simulation configuration.

**Note:** EXTERNAL engine plans (with `calculation_url`) can only be set via this endpoint — not during creation (POST).
Once `calculation_url` is set, it cannot be changed.

## Path parameters

- `simulation_config_id` string, required

## Request body

- SimulationConfigRequest
  - `description` string, required — Simulation configuration description
  - `plans` Plans[], required — Configuration of Simulation Plans
    - `id` string — Customer plan identifier
    - `description` string — Custom simulation plan description
    - `engine` 'EXTERNAL' | 'PISMO' — Calculation engine type: `PISMO` - Uses Pismo's internal calculation methods (default). Requires `calculation_parameters`, `installments`, and `billing_method`. `EXTERNAL` - Delegates calculation to an external service. Requires `calculation_url` (set on update only).
    - `calculation_url` string, uri — URL of your external calculation endpoint. **REQUIRED** when `engine` is `EXTERNAL`. **IMPORTANT:** Cannot be provided during plan creation (POST) — set this field on the first update (PUT) after creation. Once set, this URL is immutable and cannot be changed. Your external engine must respond within 3 seconds.
    - `authentication` object — Authentication configuration for external calculation engine. **REQUIRED** when `engine` is `EXTERNAL`.
      - `authentication_method` 'JWT_DEFAULT' — Authentication method for calling your external engine.
    - `calculation_parameters` union — Calculation parameters for Pismo's internal calculation methods. **REQUIRED** when `engine` is `PISMO` or not specified. **MUST NOT** be provided when `engine` is `EXTERNAL`.
      - SimulationCalculationPriceTable
        - `calculation_method` 'PRICE_TABLE', required — Calculation method - `PRICE_TABLE`.
        - `index` 'INSTALLMENT' — Define range type when interest rate is dynamic.
        - `fixed` number — Fixed fee amount as decimal field.
        - `percentage` number — Percentage amount as decimal field.
        - `fixed_iof_rate` number, required — Percentage amount as decimal field. IOF = Brazilian tax.
        - `daily_iof_rate` number, required — Percentage amount as decimal field. IOF = Brazilian tax.
        - `interest_rate` number, double, required — Interest rate
      - SimulationCalculationDailyPercentage
        - `calculation_method` 'DAILY_PERCENTAGE', required — Calculation method - `DAILY_PERCENTAGE`. Applied to credit card cash advances and other loan-type products.
        - `value` number, required — Percentage amount as decimal field.
        - `identifier` string, required — Plan identifier used to reference this daily percentage strategy.
      - SimulationCalculationEqualInstallments — Calculation parameters for the `EQUAL_INSTALLMENTS` method. Produces equal amortization installments with a fixed or dynamic interest rate and optional internal fees (e.g., IOF).
        - `calculation_method` 'EQUAL_INSTALLMENTS', required — Calculation method - `EQUAL_INSTALLMENTS`.
        - `day_count_method` 'MONTH_30_YEAR_360' | 'MONTH_ACTUAL_YEAR_365', required — Day count convention used to calculate interest
        - `interest_rate` number, double, required — Interest rate
        - `identifier` string, required — Plan identifier used to reference this equal installments strategy.
        - `fees` SimulationStrategyInternalFee[] — List of internal fees applied within the installment calculation (e.g., IOF). Supported strategies: `PERCENTAGE`, `FIXED`, `DAILY_PERCENTAGE`, `IOF`.
          - `calculation` 'PERCENTAGE' | 'FIXED' | 'DAILY_PERCENTAGE' | 'IOF', required — Fee calculation strategy.
          - `id` string, required — Fee identifier.
          - `precedence` integer, required — Fee calculation order. Lower numbers are applied first.
          - `value` number — Fee value as a decimal. Required for `PERCENTAGE`, `FIXED`, and `DAILY_PERCENTAGE` strategies.
          - `calculation_basis` 'PRINCIPAL_AMOUNT' | 'CONTRACT_AMOUNT', required — Calculation basis for the fee.
          - `fixed_iof_rate` number — Fixed IOF rate as a decimal. Required when `calculation` is `IOF`.
          - `daily_iof_rate` number — Daily IOF rate as a decimal. Required when `calculation` is `IOF`.
    - `interest_limitation` SimulationInterestLimitation
      - `calculation_basis` 'PRINCIPAL_AMOUNT', required — Basis used to calculate the interest limitation.
      - `percentage` number, required — Maximum interest percentage allowed over the life of the plan.
    - `down_payment_method` SimulationDownPaymentMethod
      - `type` 'PERCENTAGE' | 'INSTALLMENT_EQUIVALENT', required — Down payment calculation method: `PERCENTAGE` - Field `value` is **REQUIRED**; the down payment is a percentage of the transaction amount (max 100). `INSTALLMENT_EQUIVALENT` - Field `value` must be absent; the down payment equals one installment value.
      - `value` number — Percentage value for the down payment. **REQUIRED** when `type` is `PERCENTAGE`. Must be absent when `type` is `INSTALLMENT_EQUIVALENT`.
    - `installments` integer[] — Array containing the installment numbers for which the plan is applicable. **REQUIRED** when `engine` is `PISMO`.
    - `day_count_method` 'MONTH_30_YEAR_360' | 'MONTH_ACTUAL_YEAR_365' — Day count convention used to calculate interest
    - `billing_method` 'BNPL' | 'CARD' — Plan billing method. **REQUIRED** when `engine` is `PISMO`. `BNPL` - Field `frequency` is **REQUIRED** `CARD` - Field `frequency` is the same as the card, and the field should be **NULL**.
    - `frequency` 'MONTHLY' — Frequency of the billing. Required for billing_method = `BNPL`
    - `installment_parameters` SimulationInstallmentParameters
      - `minimum_installment_value` object
        - `type` 'FIXED' | 'DYNAMIC' — Value type: `FIXED` - a single scalar `value` applies to all installments. `DYNAMIC` - per-installment values provided in the `values` map.
        - `value` number — Minimum installment value (used when `type` is `FIXED`).
        - `values` object — Map of installment number (as string key) to minimum value. Used when `type` is `DYNAMIC`. Example: `{"1": 50.0, "2": 100.0}`.
      - `number_of_initial_periods_to_skip` object — Number of initial installments to be skipped before billing starts.
        - `type` 'FIXED' | 'DYNAMIC' — Value type: `FIXED` - a single scalar `value` applies. `DYNAMIC` - per-installment values provided in the `values` map.
        - `value` integer — Number of periods to skip (used when `type` is `FIXED`).
        - `values` object — Map of installment number (as string key) to number of periods to skip. Used when `type` is `DYNAMIC`.
    - `filters` object — Simulation configuration filters
      - `merchants` string[] — Array containing the merchants for whom the plan applies
      - `processing_codes` string[] — Array containing the processing codes for whom the plan applies
      - `custom_filters` string[] — Array containing plan custom filters

## Response `200`

OK

- SimulationConfigOutput
  - `config_id` string, uuid — Embosser configuration/group ID. You can call [Get nominal card embossing info](https://developers.pismo.io/pismo-docs/reference/get-embossing-info) to get a card's embossing group. You can also call [Get org embosser info](https://developers.pismo.io/pismo-docs/reference/get-embossing-configurations-info) to get an embossing group's configuration ID.
  - `description` string — Simulation configuration description
  - `plans` PlansOutput[] — Customer plans created
    - `id` string — Customer plans identifier
    - `description` string — Plan configuration description

## Other responses

- `400` — Bad request
- `401` — Access token is missing or invalid
- `404` — Simulation configuration not found
- `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/versions/935b62e16de4/schema)
