Edara API v3: Currencies
Read the guide first: authentication, paging, errors, rate limits and the shared PagedResult, BatchResult and *Reference shapes.
GET /v3/currencies: Lists currencies.GET /v3/currencies/{id}: Gets a currency by id.POST /v3/currencies: Creates a currency.PUT /v3/currencies/{id}: Updates a currency by id.PUT /v3/currencies/code/{code}: Updates a currency by code.DELETE /v3/currencies/{id}: Deletes a currency by id.DELETE /v3/currencies/code/{code}: Deletes a currency by code.
Endpoints
GET /v3/currencies: Lists currencies.
Operation GetCurrencies · permission read:currency
Query string: GetCurrenciesQuery
| field | type | default | validation | description |
|---|---|---|---|---|
offset |
int? |
0 | >= 0 | Number of items to skip before returning results. Defaults to 0. |
limit |
int? |
100 | 1..1000 (out of range → 400) | Maximum number of items to return. Defaults to 100, maximum 1000. |
code |
string |
Must(code => !string.IsNullOrWhiteSpace(code)) .When(x => x.Code != null) | The currency code filter. | |
updateDate |
DateTime? |
The updated-after filter. |
Responses: OK PagedResult<CurrencyResponse>: Paged list of currencies.
Notes
codematchesinternationalCodeexactly, notsymbol.- When you send
code,updateDateis ignored andtotalCountis 0 or 1. - Without
code, results are ordered by id and inactive currencies are included. updateDatereturns currencies created or updated strictly after that date and time.isSystemCurrencymarks the organization's base currency.
GET /v3/currencies/{id}: Gets a currency by id.
Operation GetCurrencyById · permission read:currency
Parameters
| name | in | type | default | description |
|---|---|---|---|---|
id |
route | int |
The currency id. |
Responses: OK CurrencyResponse: The currency.
Notes
- Inactive currencies are returned. An unknown id returns
404.
POST /v3/currencies: Creates a currency.
Operation CreateCurrency · permission create:currency
No uniqueness is enforced on currency symbol / international code / description (matches legacy V2 behavior).
Body: CurrencyUpsertRequest
| field | type | default | validation | description |
|---|---|---|---|---|
symbol |
string |
NotEmpty() | The currency symbol. | |
description |
string |
NotEmpty() | The currency display name. | |
internationalCode |
string |
MaximumLength(10) .When(x => !string.IsNullOrWhiteSpace(x.InternationalCode)) | The ISO 4217 code. | |
currencySubUnit |
string |
MaximumLength(100) .When(x => !string.IsNullOrWhiteSpace(x.CurrencySubUnit)) | The currency sub-unit label. | |
isSystemCurrency |
bool |
Whether this is the system currency. | ||
isActive |
bool? |
Whether the currency is active. |
Responses: Created CurrencyResponse: Currency created.
Business errors (HTTP 409, match on errorCode):
DupplicatedCode: Another currency already uses the same code.
Notes
internationalCodeis in practice required and must be one of a fixed list of ISO currency codes. A missing or unknown code returns409withInvalidInternationalCode.internationalCodeis matched without regard to case and stored in the list's standard casing.internationalCodemust be unique. A code that already exists returns409withDupplicatedCode.symbolanddescriptionare not checked for uniqueness.isActivedefaults totruewhen omitted, and an omittedcurrencySubUnitis stored as an empty string.- You cannot set the gain and loss accounts or the exchange rate through this endpoint.
- A
symbollonger than 5 characters or adescriptionlonger than 50 characters is cut to that length without an error. - A successful create returns
201with the created currency.
PUT /v3/currencies/{id}: Updates a currency by id.
Operation UpdateCurrency · permission update:currency
No uniqueness is enforced on currency symbol / international code / description (matches legacy V2 behavior).
Parameters
| name | in | type | default | description |
|---|---|---|---|---|
id |
route | int |
The currency id. |
Body: CurrencyUpsertRequest
| field | type | default | validation | description |
|---|---|---|---|---|
symbol |
string |
NotEmpty() | The currency symbol. | |
description |
string |
NotEmpty() | The currency display name. | |
internationalCode |
string |
MaximumLength(10) .When(x => !string.IsNullOrWhiteSpace(x.InternationalCode)) | The ISO 4217 code. | |
currencySubUnit |
string |
MaximumLength(100) .When(x => !string.IsNullOrWhiteSpace(x.CurrencySubUnit)) | The currency sub-unit label. | |
isSystemCurrency |
bool |
Whether this is the system currency. | ||
isActive |
bool? |
Whether the currency is active. |
Responses: OK CurrencyResponse: The updated currency.
Business errors (HTTP 409, match on errorCode):
DupplicatedCode: Another currency already uses the same code.
Notes
- An unknown id returns
404. - This is a full replace of
symbol,description,internationalCode,currencySubUnitandisSystemCurrency. Send all of them on every update. - Omitting
isSystemCurrencystoresfalse, which clears the system currency flag. isActiveis the only optional field: when you omit it, the stored value is kept. The gain and loss accounts are not changed.internationalCodemust be on the same fixed list of ISO currency codes as on create, or you get409withInvalidInternationalCode. It must also be unique among the other currencies, or you get409withDupplicatedCode.
PUT /v3/currencies/code/{code}: Updates a currency by code.
Operation UpdateCurrencyByCode · permission update:currency
No uniqueness is enforced on currency symbol / international code / description (matches legacy V2 behavior).
Parameters
| name | in | type | default | description |
|---|---|---|---|---|
code |
route | string |
The currency code. |
Body: CurrencyUpsertRequest
| field | type | default | validation | description |
|---|---|---|---|---|
symbol |
string |
NotEmpty() | The currency symbol. | |
description |
string |
NotEmpty() | The currency display name. | |
internationalCode |
string |
MaximumLength(10) .When(x => !string.IsNullOrWhiteSpace(x.InternationalCode)) | The ISO 4217 code. | |
currencySubUnit |
string |
MaximumLength(100) .When(x => !string.IsNullOrWhiteSpace(x.CurrencySubUnit)) | The currency sub-unit label. | |
isSystemCurrency |
bool |
Whether this is the system currency. | ||
isActive |
bool? |
Whether the currency is active. |
Responses: OK CurrencyResponse: The updated currency.
Business errors (HTTP 409, match on errorCode):
DupplicatedCode: Another currency already uses the same code.
Notes
codein the path is the currency'sinternationalCode, not its symbol. It is trimmed and matched exactly, and an unknown code returns404.- Otherwise this behaves like PUT /v3/currencies/{id}: it is a full replace, and omitting
isSystemCurrencystoresfalse. - You can change
internationalCodein the body. The new value must be on the allowed list and unique.
DELETE /v3/currencies/{id}: Deletes a currency by id.
Operation DeleteCurrency · permission delete:currency
Parameters
| name | in | type | default | description |
|---|---|---|---|---|
id |
route | int |
The currency id. |
Responses: NoContent: (not declared; read from the method body)
Business errors (HTTP 409, match on errorCode):
ItemCannotDeleteItInUse: The currency is referenced by existing documents or related records.
Notes
- The currency is deleted permanently. If other records still use it, you get
409withItemCannotDeleteItInUse. - An unknown id returns
404.
DELETE /v3/currencies/code/{code}: Deletes a currency by code.
Operation DeleteCurrencyByCode · permission delete:currency
Parameters
| name | in | type | default | description |
|---|---|---|---|---|
code |
route | string |
The currency code. |
Responses: NoContent: (not declared; read from the method body)
Business errors (HTTP 409, match on errorCode):
ItemCannotDeleteItInUse: The currency is referenced by existing documents or related records.
Notes
codein the path is matched againstinternationalCode, trimmed and exact. An unknown code returns404.- The currency is deleted permanently. If other records still use it, you get
409withItemCannotDeleteItInUse.
Types
CurrencyResponse
Response describing a currency.
| field | type | description |
|---|---|---|
id |
int |
The currency identifier. |
symbol |
string |
The currency symbol. |
description |
string |
The currency display name. |
internationalCode |
string |
The ISO 4217 code. |
currencySubUnit |
string |
The currency sub-unit label. |
isSystemCurrency |
bool |
Whether this is the system currency. |
isActive |
bool |
Whether the currency is active. |