---
title: "Set Spot Rates"
method: PUT
path: "/companies/{company_id}/accounting-settings/spot-rates"
tags: ["accounting-settings"]
---

# Set Spot Rates

`PUT /companies/{company_id}/accounting-settings/spot-rates`

## Request

- Base URL: `https://app.zeno-works.ch` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zeno-works.ch/companies/{company_id}/accounting-settings/spot-rates`
- Auth: none declared

Opt the company's books in to ECB spot rates from a date — or back to the monthly rate
(company owner or platform admin; a reason is required and stored with who and when).

Refused: a date before today (Europe/Zurich) **422** ``invalid.spotRatesFromPast``; a date in a
sealed fiscal year **409** ``conflict.spotRatesFromSealedYear``; the stack's ECB feed being
disabled **409** ``conflict.spotRatesFeedOff``; any company in the VAT register (``vat_liable``
not false) **409** ``conflict.spotRatesNeedVatBridge`` — until the book/VAT bridge (F2629)
exists, spot rates are for companies outside the register (their VAT return would sum amounts
booked at the ECB rate).
Affects only the future: nothing booked is restated, no stamp moves. The VAT conversion is
always the monthly ESTV rate.
Attribution: *Source: ECB statistics — euro foreign exchange reference rates*; a CHF cross is
computed by Zeno, never an ECB-published CHF/X.

## Path parameters

- `company_id` string, required

## Headers

- `authorization` string, nullable

## Cookies

- `access_token` string, nullable

## Request body

- SpotRatesIn: ``PUT …/accounting-settings/spot-rates`` — opt the books in to (or out of) ECB spot rates. ``spot_rates_from``: a date today (Europe/Zurich) or later — quotes dated on/after it resolve the ECB daily reference rate of that date's TARGET business day instead of the monthly ESTV average — or ``null`` to return to the monthly rate. A fiscal-year start is recommended (one convention per year). **The VAT conversion is always the monthly ESTV rate**, whatever this is. Affects only the future: nothing booked is restated. ``reason`` is required and stored with who and when.
  - `spot_rates_from` string, date, nullable
  - `reason` string, required

## Response `200`

Successful Response

- SpotRatesOut
  - `spot_rates_from` string, date, nullable
  - `set_by` string, nullable
  - `set_at` string, date-time, nullable
  - `reason` string, nullable
  - `attribution` string, required
  - `caution` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zeno-works/apis/zeno-api.md) · [All operations](https://skmtc.dev/zeno-works/apis/zeno-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zeno-works/apis/zeno-api/revisions/1eb93dde146c?raw)
