Fixer · Capability

Treasury Reporting

Run with Naftiko

Capability Spec

treasury-reporting.yaml Raw ↑
apiVersion: capability.naftiko.dev/v1alpha1
kind: Capability
metadata:
  name: treasury-reporting
  provider: fixer
  description: |
    Generate a treasury-style daily FX exposure report: pull a window of daily
    rates for the reporting period, summarize per-currency fluctuation, and
    publish a normalized report ready for downstream accounting systems.
spec:
  uses:
    - sharedCapability: fixer-shared
      operations: [getTimeSeries, getFluctuation, getSymbols]
  preconditions:
    - description: Caller subscription must include /timeseries (Professional) and /fluctuation (Professional Plus).
  workflow:
    - step: discoverSymbols
      operation: getSymbols
      purpose: Materialize the supported symbol set used to validate report inputs.
    - step: pullDailyRates
      operation: getTimeSeries
      parameters:
        start_date: "{{ input.start_date }}"
        end_date: "{{ input.end_date }}"
        base: "{{ input.base | default: 'EUR' }}"
        symbols: "{{ input.symbols }}"
    - step: summarizeFluctuation
      operation: getFluctuation
      parameters:
        start_date: "{{ input.start_date }}"
        end_date: "{{ input.end_date }}"
        base: "{{ input.base | default: 'EUR' }}"
        symbols: "{{ input.symbols }}"
  outputs:
    dailyRates: "{{ pullDailyRates.rates }}"
    fluctuation: "{{ summarizeFluctuation.rates }}"
    reportingWindow:
      start: "{{ input.start_date }}"
      end: "{{ input.end_date }}"
      base: "{{ input.base | default: 'EUR' }}"
  governance:
    minPlan: "Professional Plus"
    httpsRequired: true
    cadence: Daily