---
title: "Fx Rate Record"
method: POST
path: "/reports/fx-rates"
---

# Fx Rate Record

`POST /reports/fx-rates`

## Request

- Base URL: `https://api-docs.session-exchange.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.session-exchange.com/reports/fx-rates`
- Auth: none declared

Record the EUR rate of a non-EUR currency for one month (#922) as an append-only event. Body:
{currency (ISO 4217, not EUR), month (YYYY-MM), rate (foreign units per 1 EUR, > 0), source
(required — where the rate is from, e.g. the official monthly table)}.

A recorded rate is immutable: a second record for the same month is refused (409 `rate_exists`)
unless it says `supersedes: true` with a `reason` — then it is recorded with the rate it replaces,
and a `billing.fx_rate.superseded` audit event is written. The export flags every row converted
at a superseded rate (`eur_rate_superseded`, `superseded_rates`): an export taken before may differ.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/session-exchange/apis/a4sx.md) · [All operations](https://skmtc.dev/session-exchange/apis/a4sx/llms.txt) · [OpenAPI document](https://skmtc.dev/session-exchange/apis/a4sx/revisions/abaefc33dfc7?raw)
