---
title: "Run idempotent month-end foreign-currency revaluation"
method: POST
path: "/companies/{companyId}/gl-periods/{periodId}/fx-revaluation"
tags: ["GL Periods"]
---

# Run idempotent month-end foreign-currency revaluation

`POST /companies/{companyId}/gl-periods/{periodId}/fx-revaluation`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/gl-periods/{periodId}/fx-revaluation`
- Auth: HTTP bearer

QA test-company admin/owner only. Uses legal-entity functional currency, immutable closing-rate revisions, explicit monetary classification, and the configured UNREALIZED_FX_GAIN_LOSS role.

## Response `200`

Completed result

- FxRevaluationResultResponse
  - `success` boolean
  - `data` FxRevaluationResult
    - `runId` string, uuid, required
    - `companyId` string, uuid, required
    - `periodId` string, uuid, required
    - `status` 'in_progress' | 'completed', required
    - `idempotent` boolean, required
    - `positionsRevalued` integer, required
    - `netUnrealizedFxCents` integer, required
    - `journalEntryIds` string[], required

## Other responses

- `202`: Identical run already in progress
- `403`: Insufficient permissions or not a company member
- `404`: Hidden outside QA, or period not found
- `409`: Changed inputs require controlled restatement
- `422`: A required accounting authority is missing or locked

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
