# Set currency localizations

`PUT /v1/currencies/:id/localizations`

Bitrix24: `crm.currency.localizations.set { id, localizations }`. Scope `crm`; READONLY: 403 `WRITE_BLOCKED_READONLY_KEY`.

## Body

```json
{"localizations":{"en":{"fullName":"VIBE-PROBE Dollar","formatString":"$#","decimals":2,"hideZero":false}}}
```

Fields: `fullName`, `formatString`, `decPoint`, `thousandsVariant`, `thousandsSep`, `decimals`, `hideZero`. Only supplied languages and fields are sent; `hideZero` is converted to Y/N. Use Bitrix24 language IDs.

## Response and errors

`{ success: true, data: true }` after independently reading the stored fields. 400 `MISSING_REQUIRED_FIELDS`: empty map or language with no fields; 400 `UNKNOWN_FIELD`: unknown field; 400 `INVALID_FIELD_VALUE`: object or array instead of a scalar; 400 `INVALID_ID`: empty code; 404 `ENTITY_NOT_FOUND`: missing currency. A Bitrix24 refusal, false result or stored-value mismatch returns 422 `BITRIX_ERROR`. Permission denial: 403 `BITRIX_ACCESS_DENIED`; missing scope: 403 `SCOPE_DENIED`; unexpected response: 502 `BITRIX_RESPONSE_INVALID`.

Writes are not transactional: some values may persist on failure. Read the localizations before retrying.
