Documentation

What each service does, in plain language

Written for finance leaders, controllers and product teams. Developers will find the full technical reference at the bottom of this page.

How it works

You send the figures you already have

Cash, upcoming payments and receipts, currency positions. Directly, through your finance software, or through an AI agent.

The engine calculates

Standard treasury and risk formulas, applied the same way every time. No AI guesses the numbers.

You get a clear answer

A verdict or a status, the figures behind it and the reasons, in seconds. Nothing is stored afterwards.

The four services

Payment decision

$2.00 per call

“Can we safely make this payment today?”

You provide

  • The payment: amount, currency and date
  • Your cash today and the inflows and outflows you expect
  • The minimum cash you always want to keep (your buffer)
  • Exchange rates, if the payment is in a foreign currency

You get back

  • A verdict: PAY, REVIEW or DO NOT PAY
  • The lowest cash balance after the payment, and when it happens
  • The FX impact of the payment
  • A confidence score and the reasons behind the verdict

Typical use An accounts-payable agent checks every large supplier payment before releasing it.

See it live

Liquidity forecast

$0.50 per call

“Will we keep enough cash over the coming weeks?”

You provide

  • Your cash today
  • Expected receipts and payments with their dates
  • Your minimum cash buffer and the period to look at

You get back

  • Your projected cash balance, day by day
  • The lowest point and its date, and any shortfall versus your buffer
  • A status: HEALTHY, WARNING or CRITICAL, with a recommended action
  • Optional: DSO, DPO, DIO and cash conversion cycle

Typical use A treasury agent runs it every morning and alerts the finance team before the buffer is breached.

FX exposure

$0.25 per call

“How exposed are we to currency movements?”

You provide

  • Receivables, payables and cash balances by currency
  • Which ones are already hedged
  • Current exchange rates

You get back

  • Gross and net exposure per currency, including natural hedges
  • The impact of an adverse currency move on your figures
  • Which currency to hedge first, and a risk level

Typical use A CFO agent reviews currency exposure before month-end or before signing a large foreign contract.

Treasury risk

$0.10 per call

“How risky are the assets our treasury holds?”

You provide

  • The historical returns of each holding (cash, deposits, stablecoins, sukuk, funds…)
  • How much of the treasury sits in each holding
  • Optional: stress scenarios to test

You get back

  • Volatility, Value at Risk and Expected Shortfall
  • Concentration by asset, currency, geography and sector
  • Which holdings drive the risk, and the result of each stress scenario
  • A risk level: LOW, MEDIUM or HIGH

Typical use A treasury agent checks the risk of the treasury allocation each week and flags concentration.

Good to know

Decision support only

The service never moves money and never connects to your payment tools. Your team or your agent decides and executes.

Your data

Figures are used for the calculation and not stored. The Qonto connection (pilot) is read-only and can be removed at any time.

Pricing

Companies and software vendors: a monthly licence invoiced in EUR. AI agents can also pay per call in USDC, with no account.

Questions

Write to cm@kyootek.io.

For developers

Machine-readable spec: openapi.json · openapi.yaml. MCP client: npx -y treasury-risk-mcp. Invalid input gets a free 400; paid routes answer 402 with the payment requirements (x402 v2, USDC on Base).

POST /treasury-decision request fields
FieldTypeDescription
baseCurrencystring
payment requiredPaymentInput
liquidity requiredobjectSame shape as LiquidityRequest, minus baseCurrency (the payment is auto-injected as an additional cash flow outflow).
fxExposure requiredobjectSame shape as the /fx-exposure request body minus baseCurrency; positions is optional (the payment is auto-injected as a new unhedged payable position). fxRates must include the payment currency's rate if it differs from baseCurrency.
treasuryRiskAnalyzeRequestOptional. Same shape as AnalyzeRequest (treasury/portfolio risk) — if omitted, that dimension is not evaluated and is excluded from the decision matrix.
POST /liquidity request fields
FieldTypeDescription
baseCurrencystring
openingCash requirednumber
startDatestringDefaults to today (UTC) if omitted.
horizonDays requiredinteger
minimumCashBuffer requirednumber
cashFlowsarrayEach date must be on or after startDate; dates beyond the horizon are excluded from the projection (and flagged in warnings/data_quality) rather than rejected.
workingCapitalWorkingCapitalInputOptional standard accounting ratios (DSO/DPO/DIO/cash conversion cycle) computed from a balance snapshot and period flow — independent of the cashFlows-based daily projection above.
POST /fx-exposure request fields
FieldTypeDescription
baseCurrencystring
positions requiredarray
fxRates requiredobjectUnits of baseCurrency per 1 unit of each foreign currency present in `positions`.
stressShockPctnumberFractional depreciation applied to each foreign currency in the stress scenario.
totalTreasuryValueBasenumberOptional total treasury value (in baseCurrency) used to normalize the risk score. Defaults to total gross FX exposure if omitted.
POST /treasury-risk request fields
FieldTypeDescription
returns requiredobjectPer-period historical return series by symbol. All series must be the same length (≥2 observations).
weights requiredobjectPortfolio weights by symbol. Must cover exactly the same symbols as `returns` and sum to 1.
riskFreeRatenumberAnnualized risk-free rate, e.g. 0.04 for 4%.
periodsPerYearnumberPeriods per year in the return series (252 for daily equities, 365 for daily crypto).
confidenceLevelsarrayConfidence levels for VaR/Expected Shortfall. Supported: 0.9, 0.95, 0.975, 0.99, 0.995.
baseCurrencystring
minimumAcceptableReturnnumberPer-period MAR used for downside deviation / Sortino ratio.
benchmarkReturnsarrayOptional per-period benchmark series (same length as each `returns` series) to compute beta and correlation.
currencyExposureobjectOptional weight distribution by currency, for concentration analysis.
geographyExposureobjectOptional weight distribution by geography, for concentration analysis.
sectorExposureobjectOptional weight distribution by sector, for concentration analysis.
stressScenariosarrayOptional stress scenarios. Shocks on the listed symbols propagate to unshocked symbols via covariance-based beta mapping (correlated impact), alongside the direct-only impact.