---
title: "CSDR Penalty Recompute (Caller Reference Price)"
method: POST
path: "/v1/tools/recompute_csdr_penalty"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# CSDR Penalty Recompute (Caller Reference Price)

`POST /v1/tools/recompute_csdr_penalty`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/recompute_csdr_penalty`
- Auth: none declared

Per-ISIN/day CSDR cash-penalty recompute over a caller-declared open-fails set: selects the RTS asset-class/penalty-type daily rate (CSDR-RTS-2025-10, ESMA Final Report 13 Oct 2025), applies fail duration to a caller-supplied reference_price and quantity, credits partial settlement proportionally, and sums forward penalty exposure across the fails set. Fixes art-78-csdr-penalty-calculator's reachability defect -- art-78 priced off notional with no shipped pack able to feed it a differing reference_price; this node's schema instead requires a caller-supplied reference_price per fail. art-78 keeps its own identity and chain wiring unchanged. Supports an optional OCG Standard section 25 ocg-private-input@1 declaration (sha256-salted@1) for the ISIN and counterparty_id per fail, since a small ISIN/counterparty universe is enumerable by table lookup.

**Tool URL:** https://ainumbers.co/chaingraph/art-543-csdr-penalty-recompute.html

## Request body

- object
  - `open_fails` unknown[], required
    - unknown
  - `rate_table_version` string, required
  - `recompute_id` string, required

## Response `200`

Successful tool execution result

- object
  - `decision` object
    - `execution_state` string
    - `reason` string
  - `determinations` object[]
    - `asset_class` string
    - `counterparty_id` string
    - `daily_rate_bps` integer
    - `fail_days` integer
    - `fail_id` string
    - `gross_penalty` integer
    - `isin` string
    - `isin_private` boolean
    - `partial_credit` integer
    - `partial_settled_pct` integer
    - `penalty_amount` integer
    - `penalty_type` string
    - `quantity` integer
    - `reference_price` integer
  - `fail_count` integer
  - `note` string
  - `rate_table_version` string
  - `recompute_id` string
  - `rejected_inputs` unknown[]
    - unknown
  - `total_penalty_exposure` integer

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
