Официальный архив курсов валют Центрального банка Российской Федерации (ЦБ РФ) является первичным и наиболее авторитетным источником информации о стоимости иностранных валют по отношению к российскому рублю. Данные архива используются для бухгалтерского учета, налогового учета, расчета таможенных пошлин, судебных разбирательств и анализа финансовых рынков.
Где находится официальный архив
Основной доступ к историческим данным предоставляется через официальный сайт Банка России:
- Адрес раздела: cbr.ru/currency_base/daily/ (Ежедневные курсы валют)
- Адрес раздела динамики: cbr.ru/currency_base/dynamics/ (Динамика курсов валют за период)
Способы получения данных
Через веб-интерфейс (ручной режим)
Это самый простой способ для разовых проверок.
- Перейдите на страницу «Ежедневные курсы валют».
- В календаре выберите нужную дату (доступны данные с 1992 года).
- Нажмите кнопку «Получить».
- В таблице отобразятся курсы всех валют на выбранный день.
Для получения данных за диапазон дат (например, за месяц или год) удобнее использовать раздел «Динамика курсов валют»:
- Выберите валюту из выпадающего списка (по коду ISO 4217 или названию).
- Укажите дату начала и дату окончания периода.
- Нажмите «Получить». Результат можно экспортировать в Excel (CSV).
Через API (автоматизированный режим)
Для разработчиков, 1С, ERP-систем и автоматического обновления курсов в базах данных ЦБ РФ предоставляет XML API и JSON API.
Основные эндпоинты:
- XML ежедневные курсы на дату:
https://www.cbr.ru/scripts/XML_daily.asp?date_req=DD/MM/YYYY - XML динамика курсов за период:
https://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=DD/MM/YYYY&date_req2=DD/MM/YYYY&VAL_NM_RQ=КОД_ВАЛЮТЫ - JSON ежедневные курсы (современный формат):
https://www.cbr-xml-daily.ru/daily_json.js(актуальные) илиhttps://www.cbr-xml-daily.ru/archive/YYYY/MM/DD/daily_json.js(архив).
date_req в XML API должен передаваться в формате DD/MM/YYYY (день/месяц/год). Например, для 1 января 2024 года: . Пример запроса XML для конкретной даты
GET https://www.cbr.ru/scripts/XML_daily.asp?date_req= Ответ вернет XML-структуру с атрибутом Date="" и списком валют (Valute), где для каждой указаны:
NumCode, числовой код (ISO 4217)CharCode— буквенный код (USD, EUR, CNY и т.д.)Nominal— номинал (количество единиц валюты)Name— название валютыValue, курс в рублях за номиналVunitRate— курс за 1 единицу валюты (добавлен позже, удобен для расчетов)
Особенности и нюансы использования архива
Выходные и праздничные дни
Курсы валют устанавливаются только в рабочие дни Банка России. В выходные и праздничные дни новые курсы не публикуются.
- Если вам нужен курс на субботу, воскресенье или официальный праздник — используется курс последнего предшествующего рабочего дня.
- В XML/API при запросе даты выходного дня вернется курс на последний рабочий день (дата в XML-ответе будет соответствовать рабочему дню, а не запрошенной дате).
Время публикации
- Официальные курсы на «завтра» публикуются в 13:00–14:00 по московскому времени текущего рабочего дня.
- Курсы на «сегодня» (текущий рабочий день) были утверждены вчера в 13:00–14:00.
Номинал и пересчет
Всегда проверяйте поле Nominal (Номинал).
- Для большинства валют (USD, EUR, GBP) номинал = 1.
- Для некоторых валют (JPY, IDR, VND, KRW, HUF, CLP и др.) номинал = 100, 1000 или 10000.
- Формула: Курс за 1 единицу =
Value / Nominal(или используйте готовое полеVunitRateв JSON/новом XML).
История изменений (реденоминация, новые валюты)
- Архив ведется с 1992 года.
- При реденоминации 1998 года (1000 старых рублей = 1 новый рубль) курсы в архиве уже приведены в новых рублях (RUB).
- Коды валют соответствуют стандарту ISO 4217. При смене кода валюты (например, BYR -> BYN) в архиве появляется новый код, старый перестает обновляться.
Применение в популярных системах
1C:Предприятие 8.3
В типовых конфигурациях (ERP, КА, ЗУП, Бухгалтерия 3.0) есть встроенная обработка «Загрузка курсов валют» (меню Администрирование → Общие настройки → Курсы валют).
- Источник: ЦБ РФ (XML).
- Можно настроить фоновое задание на ежедневную загрузку в 14:00–15:00.
- Есть возможность загрузить курсы за прошедший период (кнопка «Загрузить за период»).
Python (библиотека cbrf или requests)
import requests
from datetime import datetime
def get_cbr_rate(date_str, char_code='USD'):
# date_str в формате 'DD/MM/YYYY'
url = f"https://www.cbr.ru/scripts/XML_daily.asp?date_req={date_str}"
response = requests.get(url)
response.encoding = 'windows-1251' # Важно: XML отдается в кодировке windows-1251
from xml.etree import ElementTree as ET
root = ET.fromstring(response.text)
for valute in root.findall('Valute'):
if valute.find('CharCode').text == char_code:
value = float(valute.find('Value').text.replace(',', '.'))
nominal = int(valute.find('Nominal').text)
return value / nominal
return None
rate = get_cbr_rate('', 'USD')
print(f"Курс USD на : {rate} RUB")
Excel / Power Query
- Вкладка Данные → Получить данные → Из других источников → Из веб-страницы.
- Вставьте URL:
https://www.cbr.ru/scripts/XML_daily.asp?date_req= - Power Query автоматически распарсит XML в таблицу. Остается только развернуть колонки.
Альтернативные источники (зеркала)
Если основной сайт ЦБ РФ недоступен (техобслуживание, DDoS), можно использовать надежные зеркала:
- cbr-xml-daily.ru, популярное независимое зеркало в JSON/XML формате с удобным архивом по датам (
/archive/YYYY/MM/DD/). - banki.ru, moex.com, investing.com — публикуют курсы ЦБ с задержкой и в удобном виде для трейдеров.
Чек-лист: что проверить перед использованием курса
- Дата актуальности: Курс на дату ДД.ММ.ГГГГ утвержден вчера (или в последнюю пятницу для понедельника).
- Рабочий день: Является ли запрошенная дата рабочим днем ЦБ? Если нет — курс будет от прошлого рабочего дня.
- Номинал: Делите Value на Nominal или используйте VunitRate.
- Код валюты: Используйте CharCode (USD, EUR, CNY), а не название, чтобы избежать ошибок парсинга.
- Округление: Официальные курсы даны с 4 знаками после запятой (для валют с номиналом 1). В налоговом/бухгалтерском учете округление производится по правилам организации/НК РФ (обычно до 2 или 4 знаков).
Резюме
Архив валют ЦБ РФ за выбранную дату, это бесплатный, официальный и юридически значимый ресурс. Для ручной работы используйте раздел «Динамика курсов» на cbr.ru. Для автоматизации, XML API (XML_daily.asp) или JSON-зеркало cbr-xml-daily.ru. Главное правило: всегда учитывайте номинал валюты и режим рабочих дней Банка России.