---
title: "Overdraft / NSF Fee Recomputation"
method: POST
path: "/v1/tools/compute_odnsf_fee_recompute"
tags: ["overdraft", "NSF", "fee recompute", "Reg DD", "Reg E", "posting order", "core verify"]
---

# Overdraft / NSF Fee Recomputation

`POST /v1/tools/compute_odnsf_fee_recompute`

## Request

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

Independently recomputes overdraft (OD) and non-sufficient-funds (NSF) fee events from a caller-pasted posted-transaction ledger, an opening balance, a declared posting-order policy, and a declared fee schedule, then diffs the recomputed fee totals against caller-supplied core-charged fees. Posting order and every fee-schedule term are caller-declared, never chosen or inferred.

**Tool URL:** https://ainumbers.co/tools/662-odnsf-fee-recompute.html
**AP2/Policy Mandate export:** yes

## Request body

- object
  - `ledger` unknown[], required: Posted transaction rows
    - unknown
  - `fee_schedule` object, required: Declared fee amounts, caps, dedup and extended-overdrawn terms
  - `core_charged_fees` unknown[]: What the core actually charged, to diff against
    - unknown
  - `posting_order_policy` 'as_supplied' | 'high_to_low_amount' | 'low_to_high_amount' | 'chronological_by_effective_date': Caller-declared posting order for same-post_date items; never inferred

## Response `200`

Successful tool execution result

- object
  - `verdict` 'MATCHES' | 'DIVERGES' | 'INDETERMINATE'
  - `events` unknown[]
    - unknown
  - `diff` unknown[]
    - unknown
  - `recomputed_fee_events` unknown[]
    - unknown

---

[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)
