---
title: "Create a new exchange rate"
method: POST
path: "/settings/exchange-rates"
tags: ["Admin Settings: Exchange Rates"]
---

# Create a new exchange rate

`POST /settings/exchange-rates`

## Request

- Base URL: `http://localhost:8000/api/admin`
- URL: `http://localhost:8000/api/admin/settings/exchange-rates`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/bagisto/apis/bagisto-admin-api/docs/settings/exchange-rates/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a target_currency → rate mapping. Composite uniqueness is enforced on target_currency (one exchange rate per currency).

## Request body

- object
  - `target_currency` integer, required: Currency ID (target).
  - `rate` number, float, required

## Response `201`

Exchange rate created.

## Other responses

- `400`: Invalid input
- `422`: Validation failure (missing fields, unknown currency, duplicate pair, non-positive rate).

---

[API](https://skmtc.dev/bagisto/apis/bagisto-admin-api.md) - [All operations](https://skmtc.dev/bagisto/apis/bagisto-admin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bagisto/apis/bagisto-admin-api/revisions/3198f11be70f?raw)
