# crm.currency.add

URL: https://chugunov.pro/api-bitrix24/crm/currency/crm-currency-add/
Проверено на Битрикс24 REST API, обновлено 11.09.2026 (ревизия источника fb39d6c).
Источник: официальная документация Битрикс24 (bitrix-tools/b24-rest-docs, лицензия MIT, © Bitrix). Справочник независимый, официальной документацией не является.

Добавить валюту
Scope: `crm`
Кто может выполнять метод: любой пользователь с доступом к изменению настроек CRM

## Описание

Метод добавляет новую валюту.

Для языков, используемых на портале, необходимо указать параметры локализации. Если этого не сделать, будут использованы [параметры по умолчанию](https://apidocs.bitrix24.ru/api-reference/crm/data-types.html#crm_currency_localization). Для конкретного языка можно задать параметры локализации методом [crm.currency.localizations.set](https://chugunov.pro/api-bitrix24/crm/currency/localizations/crm-currency-localizations-set/).

## Параметры

- `fields` `object` — обязательный. Значения полей (подробное описание приведено [ниже](#parametr-fields)) для добавления новой валюты в виде структуры:
  ```js
  fields: {
      CURRENCY: 'значение',
      BASE: 'значение',
      AMOUNT_CNT: 'значение',
      AMOUNT: 'значение'
      SORT: 'значение'
      LANG: 'значение'
  }
  ```

### Параметр fields

- `CURRENCY` `string` — обязательный. Идентификатор валюты.
  Соответствует стандарту ISO 4217
- `BASE` `string` — необязательный. Признак, является ли валюта базовой.
  Возможные значения:
   - `Y` — да
   - `N` — нет
  Значение по умолчанию — `N`.
  Не рекомендуется менять базовую валюту через REST. Иначе потребуется изменить курсы всех валют
- `AMOUNT_CNT` `integer` — обязательный. Номинал. В качестве номинала чаще всего используется `1` или число кратное `10`
- `AMOUNT` `double` — обязательный. Курс обмена по отношению к базовой валюте
- `SORT` `integer` — необязательный. Положение в списке валют.
   Значение по умолчанию — `100`
- `LANG` `object` — необязательный. Параметры локализации валюты.
  Объект в формате `{"lang_1": "value_1", ... "lang_N": "value_N"}`, где `lang_N` — идентификатор языка, а `value` — объект типа [crm_currency_localization](https://apidocs.bitrix24.ru/api-reference/crm/data-types.html#crm_currency_localization).
  Если указать не все языки, для оставшихся будут использоваться [параметры локализации по умолчанию](https://apidocs.bitrix24.ru/api-reference/crm/data-types.html#crm_currency_localization)

### Параметр LANG

- `DECIMALS` `integer` — обязательный. Число десятичных знаков дробной части
- `DEC_POINT` `string` — необязательный. Десятичная точка при выводе
- `FORMAT_STRING` `string` — необязательный. Шаблон формата
- `FULL_NAME` `string` — необязательный. Название валюты на языке, для которого добавляется локализация
- `HIDE_ZERO` `string` — необязательный. Признак, скрывать незначащие нули или нет
- `THOUSANDS_SEP` `string` — необязательный. Разделитель триад
- `THOUSANDS_VARIANT` `string` — необязательный. Код разделителя триад.
  Допустимые значения описаны в [справочнике](https://apidocs.bitrix24.ru/api-reference/crm/data-types.html#crm_currency_localization)

## Ответ

HTTP-статус: 200

```json
{
    "result": "CNY",
    "time": {
        "start": 1717684463.467685,
        "finish": 1717684465.282238,
        "duration": 1.8145530223846436,
        "processing": 0.12580394744873047,
        "date_start": "2024-06-06T16:34:23+02:00",
        "date_finish": "2024-06-06T16:34:25+02:00",
        "operating": 0
    }
}
```

### Возвращаемые данные

- `result` `crm_currency.CURRENCY`. Идентификатор созданной валюты
- `time` `time`. Информация о времени выполнения запроса

## Ошибки

HTTP-статус: 400

```json
{
	"error": "",
	"error_description": "Access denied."
}
```

- `Пустая строка` — Access denied.. Недостаточно прав доступа
- `Пустая строка` — Модуль "Валюты" не найден! Пожалуйста, установите модуль "Валюты".
- `ERROR_CORE` — Undefined array key "#FIELD#". Не указано обязательное поле #FIELD# (вместо #FIELD# будет подставлен код отсутствующего поля)
- `ERROR_CORE` — Другие ошибки в данных для создания валюты

## Примеры запроса

### cURL (Webhook)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"CURRENCY":"CNY","BASE":"N","AMOUNT":12.2251,"AMOUNT_CNT":1,"SORT":9000,"LANG":{"ru":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# CNY","FULL_NAME":"юань","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"en":{"DECIMALS":2,"DEC_POINT":",","FORMAT_STRING":"# CNY","FULL_NAME":"yuan","HIDE_ZERO":"Y","THOUSANDS_SEP":"."}}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.currency.add
```

### cURL (OAuth)

```bash
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"CURRENCY":"CNY","BASE":"N","AMOUNT":12.2251,"AMOUNT_CNT":1,"SORT":9000,"LANG":{"ru":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# CNY","FULL_NAME":"юань","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"en":{"DECIMALS":2,"DEC_POINT":",","FORMAT_STRING":"# CNY","FULL_NAME":"yuan","HIDE_ZERO":"Y","THOUSANDS_SEP":"."}}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.currency.add
```

### JS (TS)

```ts
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

try {
  const response = await $b24.actions.v2.call.make<string>({
    method: 'crm.currency.add',
    params: {
      fields: {
        CURRENCY: 'CNY',
        BASE: 'N',
        AMOUNT: 12.2251,
        AMOUNT_CNT: 1,
        SORT: 9000,
        LANG: {
          ru: {
            DECIMALS: 2,
            DEC_POINT: '.',
            FORMAT_STRING: '# CNY',
            FULL_NAME: 'Yuan',
            HIDE_ZERO: 'Y',
            THOUSANDS_VARIANT: 'S',
          },
          en: {
            DECIMALS: 2,
            DEC_POINT: ',',
            FORMAT_STRING: '# CNY',
            FULL_NAME: 'Yuan',
            HIDE_ZERO: 'Y',
            THOUSANDS_SEP: '.',
          },
        },
      },
    },
    requestId: Text.getUuidRfc4122()
  })

  // The payload is available only on a successful response
  if (!response.isSuccess) {
    console.error(response.getErrorMessages().join('; '))
  } else {
    const result = response.getData()!.result
    console.info('Created currency id:', result)
  }
} catch (error) {
  // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
  console.error(error)
}
```

### JS (UMD)

```html
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  async function addCurrency() {
    try {
      // Initialize the SDK inside a Bitrix24 frame
      const $b24 = await B24Js.initializeB24Frame()

      const response = await $b24.actions.v2.call.make({
        method: 'crm.currency.add',
        params: {
          fields: {
            CURRENCY: 'CNY',
            BASE: 'N',
            AMOUNT: 12.2251,
            AMOUNT_CNT: 1,
            SORT: 9000,
            LANG: {
              ru: {
                DECIMALS: 2,
                DEC_POINT: '.',
                FORMAT_STRING: '# CNY',
                FULL_NAME: 'Yuan',
                HIDE_ZERO: 'Y',
                THOUSANDS_VARIANT: 'S',
              },
              en: {
                DECIMALS: 2,
                DEC_POINT: ',',
                FORMAT_STRING: '# CNY',
                FULL_NAME: 'Yuan',
                HIDE_ZERO: 'Y',
                THOUSANDS_SEP: '.',
              },
            },
          },
        },
        requestId: B24Js.Text.getUuidRfc4122()
      })

      // The payload is available only on a successful response
      if (!response.isSuccess) {
        console.error(response.getErrorMessages().join('; '))
        return
      }

      const result = response.getData().result
      console.info('Created currency id:', result)
    } catch (error) {
      // Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
      console.error(error)
    }
  }

  document.addEventListener('DOMContentLoaded', addCurrency)
</script>
```

### Python

```python
from b24pysdk.errors import BitrixAPIError, BitrixSDKException

try:
    bitrix_response = client.crm.currency.add(
        fields={
            "CURRENCY": "CNY",
            "BASE": "N",
            "AMOUNT": 12.2251,
            "AMOUNT_CNT": 1,
            "SORT": 9000,
            "LANG": {
                "ru": {
                    "DECIMALS": 2,
                    "DEC_POINT": ".",
                    "FORMAT_STRING": "# CNY",
                    "FULL_NAME": "юань",
                    "HIDE_ZERO": "Y",
                    "THOUSANDS_VARIANT": "S",
                },
                "en": {
                    "DECIMALS": 2,
                    "DEC_POINT": ",",
                    "FORMAT_STRING": "# CNY",
                    "FULL_NAME": "yuan",
                    "HIDE_ZERO": "Y",
                    "THOUSANDS_SEP": ".",
                },
            },
        },
    ).response
    result = bitrix_response.result
    print(result)
except BitrixAPIError as error:
    print(
        "Ошибка Bitrix API",
        f"error: {error.error}",
        f"error_description: {error.error_description}",
        sep="\n",
    )
except BitrixSDKException as error:
    print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
    print(f"Непредвиденная ошибка: {error}")
```

### PHP

```php
require_once('crest.php');

$result = CRest::call(
    'crm.currency.add',
    [
        'fields' => [
            'CURRENCY' => 'CNY',
            'BASE' => 'N',
            'AMOUNT' => 12.2251,
            'AMOUNT_CNT' => 1,
            'SORT' => 9000,
            'LANG' => [
                'ru' => [
                    'DECIMALS' => 2,
                    'DEC_POINT' => '.',
                    'FORMAT_STRING' => '# CNY',
                    'FULL_NAME' => 'юань',
                    'HIDE_ZERO' => 'Y',
                    'THOUSANDS_VARIANT' => 'S',
                ],
                'en' => [
                    'DECIMALS' => 2,
                    'DEC_POINT' => ',',
                    'FORMAT_STRING' => '# CNY',
                    'FULL_NAME' => 'yuan',
                    'HIDE_ZERO' => 'Y',
                    'THOUSANDS_SEP' => '.',
                ],
            ],
        ]
    ]
);

echo '<PRE>';
print_r($result);
echo '</PRE>';
```

### Go

```go
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.currency.add", b24.Params{
	"fields": b24.Params{
		"CURRENCY":   "CNY",
		"BASE":       "N",
		"AMOUNT":     12.2251,
		"AMOUNT_CNT": 1,
		"SORT":       9000,
		"LANG": b24.Params{
			"ru": b24.Params{
				"DECIMALS":          2,
				"DEC_POINT":         ".",
				"FORMAT_STRING":     "# CNY",
				"FULL_NAME":         "юань",
				"HIDE_ZERO":         "Y",
				"THOUSANDS_VARIANT": "S",
			},
			"en": b24.Params{
				"DECIMALS":      2,
				"DEC_POINT":     ",",
				"FORMAT_STRING": "# CNY",
				"FULL_NAME":     "yuan",
				"HIDE_ZERO":     "Y",
				"THOUSANDS_SEP": ".",
			},
		},
	},
})
if err != nil {
	return fmt.Errorf("crm.currency.add: %w", err)
}

var value string
if err := json.Unmarshal(res.Result, &value); err != nil {
	return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("результат:", value)
```

Оригинал в официальной документации: https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-add.html
