---
title: "Save Case"
method: POST
path: "/v1/matters/{matter_id}/sbr/scenario/cases"
tags: ["sbr-scenario"]
---

# Save Case

`POST /v1/matters/{matter_id}/sbr/scenario/cases`

## Request

- Base URL: `https://api.ender.au` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ender.au/v1/matters/{matter_id}/sbr/scenario/cases`
- Auth: HTTP bearer

## Path parameters

- `matter_id` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- SaveScenarioCase
  - `scenario_id` string, uuid, nullable
  - `base_run_id` string, uuid, required
  - `proposal` ScenarioProposalInputV1Input
    - `schema_version` 'sbr-scenario-proposal-v1'
    - `offer` union, required
      - NetPoolOfferInput
        - `kind` 'net_pool'
        - `amount` string, decimal, required
      - DividendRateOfferInput
        - `kind` 'dividend_rate'
        - `rate` string, decimal, required
    - `funding_sources` FundingSourceInput[], required
      - `id` string, required
      - `type` 'director_contribution' | 'related_party_contribution' | 'trading_cash' | 'asset_sale' | 'other', required
      - `amount` string, decimal, required
      - `month` integer, required
    - `costs` PlanCostInput[], required
      - `id` string, required
      - `description` string, required
      - `amount` string, decimal, required
      - `kind` 'practitioner_fee' | 'other'
      - `treatment` 'inside_pool' | 'outside_pool', required
      - `month` integer, required
    - `duration_months` integer, required
    - `label` string, nullable
    - `notes` string, nullable
  - `overrides` ScenarioAssumptionOverridesV1Input
    - `schema_version` 'sbr-scenario-overrides-v1'
    - `current_cash` string, decimal, nullable
    - `annual_profit_proxy` string, decimal, nullable
    - `assets` AssetOverrideInput[]
      - `asset_id` string, required
      - `category` string, nullable
      - `book_value` string, decimal, nullable
      - `realization_basis` 'amount' | 'rate'
      - `low_realization` string, decimal, nullable
      - `high_realization` string, decimal, nullable
      - `low_realization_rate` string, decimal, nullable
      - `high_realization_rate` string, decimal, nullable
      - `low_realization_cost` string, decimal, nullable
      - `high_realization_cost` string, decimal, nullable
      - `excluded` boolean
      - `reason` string, nullable
    - `manual_assets` ManualAssetInput[]
      - `id` string, required
      - `category` string, required
      - `book_value` string, decimal, nullable
      - `realization_basis` 'amount' | 'rate'
      - `low_realization` string, decimal, nullable
      - `high_realization` string, decimal, nullable
      - `low_realization_rate` string, decimal, nullable
      - `high_realization_rate` string, decimal, nullable
      - `low_realization_cost` string, decimal, nullable
      - `high_realization_cost` string, decimal, nullable
      - `reason` string, nullable
    - `claims` ClaimOverrideInput[]
      - `claim_id` string, required
      - `creditor` string, nullable
      - `category` 'ato' | 'trade' | 'other_unsecured' | 'employee' | 'unresolved'
      - `gross_amount` string, decimal, nullable
      - `admitted_amount` string, decimal, nullable
      - `secured_amount` string, decimal, nullable
      - `is_related_party` boolean, nullable
      - `is_disputed` boolean, nullable
      - `excluded` boolean
      - `reason` string, nullable
    - `manual_claims` ManualClaimInput[]
      - `id` string, required
      - `creditor` string, required
      - `category` 'ato' | 'trade' | 'other_unsecured' | 'employee' | 'unresolved'
      - `gross_amount` string, decimal, nullable
      - `admitted_amount` string, decimal, nullable
      - `secured_amount` string, decimal
      - `is_related_party` boolean
      - `is_disputed` boolean
      - `reason` string, nullable
    - `liquidation` LiquidationOverrideInput[]
      - `case` 'low' | 'high', required
      - `secured_recoveries` string, decimal, nullable
      - `remuneration_and_expenses` string, decimal, nullable
      - `recoveries` string, decimal, nullable
      - `recovery_costs` string, decimal, nullable
      - `reason` string, nullable
    - `forecast` ForecastPeriodOverrideInput[], nullable
      - `month` integer, required
      - `net_profit` string, decimal, nullable
      - `sbr_contribution` string, decimal, nullable
      - `practitioner_fee` string, decimal, nullable
      - `other_plan_costs` string, decimal, nullable
      - `opening_cash` string, decimal, nullable
      - `operating_inflows` string, decimal, nullable
      - `operating_outflows` string, decimal, nullable
      - `financing_outflows` string, decimal, nullable
    - `profit_and_loss` ProfitAndLossRowOverrideInput[]
      - `row_key` string, required
      - `description` string, nullable
      - `line_type` 'revenue' | 'cost_of_sales' | 'operating_expense' | 'other_income' | 'other_expense' | 'subtotal' | 'net_profit' | 'unknown', nullable
      - `excluded` boolean
      - `cells` ProfitAndLossCellOverrideInput[]
        - `month` integer, required
        - `amount` string, decimal, nullable
    - `manual_profit_and_loss` ManualProfitAndLossRowInput[]
      - `id` string, required
      - `description` string, required
      - `line_type` 'revenue' | 'cost_of_sales' | 'operating_expense' | 'other_income' | 'other_expense' | 'subtotal' | 'unknown'
      - `cells` ProfitAndLossCellOverrideInput[]
        - `month` integer, required
        - `amount` string, decimal, nullable
    - `minimum_cash_buffer` string, decimal, nullable
    - `profit_basis` 'supplied_forecast' | 'latest_actual' | 'average_actual' | 'manual'
    - `ato_records` AppModulesSbrScenarioContractsAtoRecordOverrideInput[]
      - `record_id` string, required
      - `account_or_lodgement` string, required
      - `record_kind` 'lodgement' | 'account_balance', nullable
      - `period` string, nullable
      - `due_date` string, date, nullable
      - `lodged_date` string, date, nullable
      - `status` string, nullable
      - `amount` string, decimal, nullable
      - `excluded` boolean
    - `manual_ato_records` AppModulesSbrScenarioContractsManualAtoRecordInput[]
      - `id` string, required
      - `account_or_lodgement` string, required
      - `record_kind` 'lodgement' | 'account_balance', nullable
      - `period` string, nullable
      - `due_date` string, date, nullable
      - `lodged_date` string, date, nullable
      - `status` string, nullable
      - `amount` string, decimal, nullable
  - `label` string, nullable
  - `notes` string, nullable
  - `supersedes_case_id` string, uuid, nullable

## Response `201`

Successful Response

- AppModulesSbrScenarioApiContractsScenarioCase
  - `id` string, uuid, required
  - `matter_id` string, uuid, required
  - `scenario_id` string, uuid, nullable, required
  - `base_run_id` string, uuid, required
  - `schema_version` 'sbr-scenario-case-v1', required
  - `ruleset_version` string, required
  - `proposal` ScenarioProposalInputV1Output, required
    - `schema_version` 'sbr-scenario-proposal-v1', required
    - `offer` union, required
      - NetPoolOfferOutput
        - `kind` 'net_pool', required
        - `amount` string, decimal, required
      - DividendRateOfferOutput
        - `kind` 'dividend_rate', required
        - `rate` string, decimal, required
    - `funding_sources` AppModulesSbrScenarioContractsFundingSource[], required
      - `id` string, required
      - `type` 'director_contribution' | 'related_party_contribution' | 'trading_cash' | 'asset_sale' | 'other', required
      - `amount` string, decimal, required
      - `month` integer, required
    - `costs` PlanCostOutput[], required
      - `id` string, required
      - `description` string, required
      - `amount` string, decimal, required
      - `kind` 'practitioner_fee' | 'other', required
      - `treatment` 'inside_pool' | 'outside_pool', required
      - `month` integer, required
    - `duration_months` integer, required
    - `label` string, nullable, required
    - `notes` string, nullable, required
  - `overrides` ScenarioAssumptionOverridesV1Output, required
    - `schema_version` 'sbr-scenario-overrides-v1', required
    - `current_cash` string, decimal, nullable, required
    - `annual_profit_proxy` string, decimal, nullable, required
    - `assets` AssetOverrideOutput[], required
      - `asset_id` string, required
      - `category` string, nullable, required
      - `book_value` string, decimal, nullable, required
      - `realization_basis` 'amount' | 'rate', required
      - `low_realization` string, decimal, nullable, required
      - `high_realization` string, decimal, nullable, required
      - `low_realization_rate` string, decimal, nullable, required
      - `high_realization_rate` string, decimal, nullable, required
      - `low_realization_cost` string, decimal, nullable, required
      - `high_realization_cost` string, decimal, nullable, required
      - `excluded` boolean, required
      - `reason` string, nullable, required
    - `manual_assets` ManualAssetOutput[], required
      - `id` string, required
      - `category` string, required
      - `book_value` string, decimal, nullable, required
      - `realization_basis` 'amount' | 'rate', required
      - `low_realization` string, decimal, nullable, required
      - `high_realization` string, decimal, nullable, required
      - `low_realization_rate` string, decimal, nullable, required
      - `high_realization_rate` string, decimal, nullable, required
      - `low_realization_cost` string, decimal, nullable, required
      - `high_realization_cost` string, decimal, nullable, required
      - `reason` string, nullable, required
    - `claims` ClaimOverrideOutput[], required
      - `claim_id` string, required
      - `creditor` string, nullable, required
      - `category` 'ato' | 'trade' | 'other_unsecured' | 'employee' | 'unresolved', required
      - `gross_amount` string, decimal, nullable, required
      - `admitted_amount` string, decimal, nullable, required
      - `secured_amount` string, decimal, nullable, required
      - `is_related_party` boolean, nullable, required
      - `is_disputed` boolean, nullable, required
      - `excluded` boolean, required
      - `reason` string, nullable, required
    - `manual_claims` ManualClaimOutput[], required
      - `id` string, required
      - `creditor` string, required
      - `category` 'ato' | 'trade' | 'other_unsecured' | 'employee' | 'unresolved', required
      - `gross_amount` string, decimal, nullable, required
      - `admitted_amount` string, decimal, nullable, required
      - `secured_amount` string, decimal, required
      - `is_related_party` boolean, required
      - `is_disputed` boolean, required
      - `reason` string, nullable, required
    - `liquidation` LiquidationOverrideOutput[], required
      - `case` 'low' | 'high', required
      - `secured_recoveries` string, decimal, nullable, required
      - `remuneration_and_expenses` string, decimal, nullable, required
      - `recoveries` string, decimal, nullable, required
      - `recovery_costs` string, decimal, nullable, required
      - `reason` string, nullable, required
    - `forecast` ForecastPeriodOverrideOutput[], nullable, required
      - `month` integer, required
      - `net_profit` string, decimal, nullable, required
      - `sbr_contribution` string, decimal, nullable, required
      - `practitioner_fee` string, decimal, nullable, required
      - `other_plan_costs` string, decimal, nullable, required
      - `opening_cash` string, decimal, nullable, required
      - `operating_inflows` string, decimal, nullable, required
      - `operating_outflows` string, decimal, nullable, required
      - `financing_outflows` string, decimal, nullable, required
    - `profit_and_loss` ProfitAndLossRowOverrideOutput[], required
      - `row_key` string, required
      - `description` string, nullable, required
      - `line_type` 'revenue' | 'cost_of_sales' | 'operating_expense' | 'other_income' | 'other_expense' | 'subtotal' | 'net_profit' | 'unknown', nullable, required
      - `excluded` boolean, required
      - `cells` ProfitAndLossCellOverrideOutput[], required
        - `month` integer, required
        - `amount` string, decimal, nullable, required
    - `manual_profit_and_loss` ManualProfitAndLossRowOutput[], required
      - `id` string, required
      - `description` string, required
      - `line_type` 'revenue' | 'cost_of_sales' | 'operating_expense' | 'other_income' | 'other_expense' | 'subtotal' | 'unknown', required
      - `cells` ProfitAndLossCellOverrideOutput[], required
        - `month` integer, required
        - `amount` string, decimal, nullable, required
    - `minimum_cash_buffer` string, decimal, nullable, required
    - `profit_basis` 'supplied_forecast' | 'latest_actual' | 'average_actual' | 'manual', required
    - `ato_records` AppModulesSbrScenarioContractsAtoRecordOverrideOutput[], required
      - `record_id` string, required
      - `account_or_lodgement` string, required
      - `record_kind` 'lodgement' | 'account_balance', nullable, required
      - `period` string, nullable, required
      - `due_date` string, date, nullable, required
      - `lodged_date` string, date, nullable, required
      - `status` string, nullable, required
      - `amount` string, decimal, nullable, required
      - `excluded` boolean, required
    - `manual_ato_records` AppModulesSbrScenarioContractsManualAtoRecordOutput[], required
      - `id` string, required
      - `account_or_lodgement` string, required
      - `record_kind` 'lodgement' | 'account_balance', nullable, required
      - `period` string, nullable, required
      - `due_date` string, date, nullable, required
      - `lodged_date` string, date, nullable, required
      - `status` string, nullable, required
      - `amount` string, decimal, nullable, required
  - `result` ScenarioCalculationResultV1, required
    - `schema_version` 'sbr-scenario-calculation-result-v1', required
    - `ruleset_version` string, required
    - `base_run_id` string, uuid, required
    - `corpus_fingerprint` string, required
    - `input_hash` string, required
    - `result_hash` string, required
    - `status` 'complete' | 'limited' | 'insufficient_data', required
    - `outcome` 'sbr_better_than_both' | 'sbr_better_than_low_only' | 'liquidation_comparable_or_better' | 'no_proposed_plan' | 'insufficient_data', required
    - `low_liquidation` LiquidationCaseResult, required
      - `case` 'low' | 'high', required
      - `status` 'complete' | 'limited' | 'insufficient_data', required
      - `gross_asset_realizations` string, decimal, nullable, required
      - `secured_recoveries` string, decimal, nullable, required
      - `gross_estate` string, decimal, nullable, required
      - `realization_costs` string, decimal, nullable, required
      - `liquidation_costs` string, decimal, nullable, required
      - `net_estate_before_priorities` string, decimal, nullable, required
      - `employee_priority_payment` string, decimal, nullable, required
      - `ordinary_pool` string, decimal, nullable, required
      - `ordinary_claims` string, decimal, nullable, required
      - `ordinary_dividend_rate` string, decimal, nullable, required
      - `comparable_liquidation_return` string, decimal, nullable, required
      - `claim_returns` ClaimReturn[], required
        - `claim_id` string, required
        - `secured_recovery` string, decimal, required
        - `priority_payment` string, decimal, required
        - `ordinary_payment` string, decimal, required
        - `total_payment` string, decimal, required
      - `limitations` string[], required
    - `high_liquidation` LiquidationCaseResult, required
      - `case` 'low' | 'high', required
      - `status` 'complete' | 'limited' | 'insufficient_data', required
      - `gross_asset_realizations` string, decimal, nullable, required
      - `secured_recoveries` string, decimal, nullable, required
      - `gross_estate` string, decimal, nullable, required
      - `realization_costs` string, decimal, nullable, required
      - `liquidation_costs` string, decimal, nullable, required
      - `net_estate_before_priorities` string, decimal, nullable, required
      - `employee_priority_payment` string, decimal, nullable, required
      - `ordinary_pool` string, decimal, nullable, required
      - `ordinary_claims` string, decimal, nullable, required
      - `ordinary_dividend_rate` string, decimal, nullable, required
      - `comparable_liquidation_return` string, decimal, nullable, required
      - `claim_returns` ClaimReturn[], required
        - `claim_id` string, required
        - `secured_recovery` string, decimal, required
        - `priority_payment` string, decimal, required
        - `ordinary_payment` string, decimal, required
        - `total_payment` string, decimal, required
      - `limitations` string[], required
    - `plan` PlanResult, required
      - `status` 'complete' | 'limited' | 'insufficient_data', required
      - `plan_claims` string, decimal, required
      - `net_distributable_pool` string, decimal, required
      - `dividend_rate` string, decimal, nullable, required
      - `gross_funding_sources` string, decimal, required
      - `inside_pool_costs` string, decimal, required
      - `outside_pool_costs` string, decimal, required
      - `total_cash_required` string, decimal, required
      - `funding_gap` string, decimal, required
      - `excess_funding` string, decimal, required
      - `unapplied_surplus` string, decimal, required
      - `claim_returns` PlanClaimReturn[], required
        - `claim_id` string, required
        - `admitted_plan_claim` string, decimal, required
        - `payment` string, decimal, required
      - `limitations` string[], required
    - `break_even` BreakEvenCaseResult[], required
      - `case` 'low' | 'high', required
      - `dividend_rate` string, decimal, nullable, required
      - `net_pool` string, decimal, nullable, required
      - `gross_funding` string, decimal, nullable, required
      - `minimum_to_exceed` string, decimal, nullable, required
    - `serviceability` ServiceabilityResult, required
      - `status` 'serviceable' | 'not_serviceable' | 'indicative' | 'insufficient_data', required
      - `minimum_cash_buffer` string, decimal, nullable, required
      - `minimum_headroom` string, decimal, nullable, required
      - `first_shortfall_month` integer, nullable, required
      - `first_shortfall_amount` string, decimal, nullable, required
      - `limitations` string[], required
    - `applied_overrides` string[], required
    - `limitations` string[], required
  - `input_hash` string, required
  - `base_model_hash` string, required
  - `result_hash` string, required
  - `label` string, nullable, required
  - `notes` string, nullable, required
  - `supersedes_case_id` string, uuid, nullable, required
  - `created_by` string, uuid, required
  - `created_at` string, date-time, required
  - `base_superseded` boolean, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ender/apis/ender-backend.md) - [All operations](https://skmtc.dev/ender/apis/ender-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/ender/apis/ender-backend/revisions/bf4373130521?raw)
