Что такое формат OFX? Объяснение Open Financial Exchange
OFX — это открытый стандарт для обмена финансовыми данными между банками и программным обеспечением. Узнайте, что содержится в файле OFX и почему Xero, MYOB и GnuCash предпочитают его.
Ваша бухгалтерская программа запрашивает файл OFX. Ваш банк предоставил вам PDF. И теперь вы смотрите на формат, о котором никогда не слышали, и задаетесь вопросом, почему обычная электронная таблица не справится с этой задачей.
OFX — Open Financial Exchange — это невидимый стандарт, который лежит в основе современного финансового программного обеспечения. Именно благодаря ему Xero может импортировать банковские транзакции без необходимости сопоставлять столбцы. Именно поэтому GnuCash может обнаруживать дубликаты. И именно на нем построен формат QBO от QuickBooks.
В этом руководстве мы разберем, что такое OFX, что он содержит, как он соотносится с CSV и QBO, какое программное обеспечение его поддерживает и как создавать файлы OFX из PDF-выписок по банковским счетам.
OFX в одном предложении
Open Financial Exchange — это формат данных на основе XML для обмена финансовой информацией между финансовыми учреждениями, программными приложениями и конечными пользователями. Это открытый стандарт, на котором основан формат QBO от Intuit, и формат, который большинство бухгалтерских программ, кроме QuickBooks, предпочитают для импорта банковских транзакций.
Думайте об OFX как о lingua franca финансовых данных. Банки говорят на нем. Бухгалтерское ПО читает его. И в отличие от CSV, который представляет собой просто строки и столбцы без какого-либо внутреннего смысла, OFX содержит структурированные метаданные, которые точно указывают принимающему ПО, что представляет собой каждый фрагмент данных.
История OFX
OFX был создан в 1997 году компаниями Microsoft, Intuit и CheckFree. У каждой из них был свой конкурирующий стандарт: Microsoft — OFC (Open Financial Connectivity), Intuit — свой формат обмена, а CheckFree — протоколы электронных платежей. OFX стал компромиссом, который объединил их.
Временная шкала версий
- OFX 1.0 (1997) — Оригинальная спецификация, основанная на SGML (Standard Generalized Markup Language). SGML допускает незакрытые теги, из-за чего файлы OFX 1.x выглядят иначе, чем современный XML.
- OFX 1.6 (2002) — Наиболее широко используемая версия. По-прежнему основана на SGML. Большинство банков, предлагающих загрузку OFX, генерируют файлы версии 1.6.
- OFX 2.0 (2005) — Крупное переписывание. Переход от SGML к полноценному XML с закрывающимися тегами.
- OFX 2.2 (2016) — Улучшения безопасности и расширенная поддержка инвестиционных транзакций.
- OFX 2.3 (Текущая) — Последняя версия, поддерживаемая Financial Data Exchange (FDX), отраслевым консорциумом, который взял на себя управление от первоначальных основателей.
Переход от SGML к XML важен, поскольку он влияет на парсинг. Файл версии 1.x использует незакрытые теги (<TRNTYPE>DEBIT без </TRNTYPE>), в то время как версия 2.x использует полноценный XML с закрывающимися тегами. Большинство современных парсеров обрабатывают оба варианта, но несоответствие версий остается распространенной ошибкой при импорте OFX.
Что может содержать OFX
OFX — это не просто формат банковской выписки. Спецификация охватывает широкий спектр финансовых данных:
- Выписки по банковским счетам — транзакции по текущим, сберегательным и денежным счетам. Наиболее распространенный сценарий использования.
- Выписки по кредитным картам — история транзакций с поддержкой кодов категорий продавцов и деталей покупок.
- Инвестиционные и брокерские выписки — покупка акций, дивиденды, переводы средств и позиции портфеля с данными о себестоимости на уровне лотов.
- Информация об оплате счетов — списки получателей платежей, запланированные платежи и подтверждения платежей.
- Налоговая информация — формы 1099 и другие налоговые документы, передаваемые между финансовыми учреждениями и налоговым ПО.
- Выписки по кредитам — записи транзакций и информация о балансе по ипотечным, автокредитам и потребительским кредитам.
Для большинства бухгалтеров и bookkeeping-специалистов OFX означает одно: импорт банковских транзакций и транзакций по кредитным картам в бухгалтерское ПО без сопоставления столбцов или угадывания формата даты.
Внутри файла OFX
Вот как выглядит полный файл OFX 1.6 с банковской выпиской. Это формат, с которым вы столкнетесь чаще всего — версия на основе SGML, которую генерирует большинство банков и инструментов конвертации:
OFXHEADER:100
DATA:OFXSGML
VERSION:160
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<DTSERVER>20260228120000
<LANGUAGE>ENG
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>0
<STATUS>
<CODE>0
<SEVERITY>INFO
</STATUS>
<STMTRS>
<CURDEF>USD
<BANKACCTFROM>
<BANKID>021000021
<ACCTID>123456789
<ACCTTYPE>CHECKING
</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20260201120000
<DTEND>20260228120000
<STMTTRN>
<TRNTYPE>CREDIT
<DTPOSTED>20260201120000
<TRNAMT>3500.00
<FITID>20260201001
<NAME>DIRECT DEP PAYROLL
<MEMO>ACME CORP PAYROLL
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260203120000
<TRNAMT>-87.50
<FITID>20260203001
<NAME>POS PURCHASE GROCERY
<MEMO>WHOLE FOODS #10847
</STMTTRN>
<STMTTRN>
<TRNTYPE>CHECK
<DTPOSTED>20260210120000
<TRNAMT>-1200.00
<FITID>20260210001
<NAME>CHECK 1045
<CHECKNUM>1045
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>4712.50
<DTASOF>20260228120000
</LEDGERBAL>
<AVAILBAL>
<BALAMT>4712.50
<DTASOF>20260228120000
</AVAILBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>
Анатомия файла
Файл состоит из трех основных разделов:
1. Блок заголовка — строки обычного текста вверху (перед <OFX>) объявляют версию OFX, кодировку и настройки безопасности. Это не XML — это простой заголовок ключ-значение, который парсеры читают перед обработкой тела SGML/XML.
2. Ответ на вход (SIGNONMSGSRSV1) — метаданные аутентификации и сервера. CODE 0 означает успех. Большинство импортируемых файлов используют здесь значения-заполнители.
3. Ответ на выписку (BANKMSGSRSV1) — фактические финансовые данные:
BANKACCTFROM— счет, к которому относятся транзакции (номер маршрутизации, номер счета, тип счета)BANKTRANLIST— список транзакций, ограниченный датой начала и окончанияSTMTTRN— отдельные записи о транзакцияхLEDGERBALиAVAILBAL— итоговый и доступный баланс на определенную дату
Обратите внимание на синтаксис SGML: теги, такие как <TRNTYPE>CREDIT, не имеют закрывающего </TRNTYPE>. Парсер определяет конец значения по началу следующего тега — это допустимый SGML, но недопустимый XML, поэтому OFX 2.x добавил закрывающие теги.
Ключевые теги OFX
Вот справочная таблица тегов, которые вы чаще всего встретите в файлах OFX с банковскими выписками:
| Тег | Описание | Пример |
|---|---|---|
STMTTRN |
Обертка транзакции выписки | Содержит все поля для одной транзакции |
TRNTYPE |
Тип транзакции | DEBIT, CREDIT, CHECK, DEP, ATM, POS, XFER, FEE, SRVCHG, INT |
DTPOSTED |
Дата проводки | 20260215120000 (ГГГГММДДЧЧММСС) |
TRNAMT |
Сумма транзакции (с учетом знака) | -87.50 (отрицательное = дебет), 3500.00 (положительное = кредит) |
FITID |
Идентификатор транзакции финансового учреждения | 20260215001 — уникальный идентификатор для обнаружения дубликатов |
NAME |
Имя получателя платежа или продавца | POS PURCHASE GROCERY |
MEMO |
Дополнительное описание | WHOLE FOODS #10847 AUSTIN TX |
CHECKNUM |
Номер чека | 1045 (только для транзакций по чекам) |
REFNUM |
Номер ссылки | Номер ссылки, присвоенный банком для транзакции |
BANKACCTFROM |
Информация о исходном счете | Содержит BANKID (маршрутизация), ACCTID (счет), ACCTTYPE |
LEDGERBAL |
Итоговый/учетный баланс | Содержит BALAMT и DTASOF |
AVAILBAL |
Доступный баланс | Содержит BALAMT и DTASOF |
CURDEF |
Код валюты | USD, GBP, EUR, AUD, CAD |
FITID — почему это важно
FITID (Financial Institution Transaction ID) — это самый важный тег в файле OFX с точки зрения бухгалтерии. Это уникальный идентификатор, присвоенный каждой транзакции, и именно он обеспечивает обнаружение дубликатов.
Когда вы импортируете файл OFX в Xero, GnuCash или любое другое совместимое ПО, оно сохраняет все увиденные FITID. При повторном импорте того же файла программа проверяет каждый FITID в своей базе данных, молча пропуская дубликаты.
Это главное преимущество OFX перед CSV. В CSV нет уникального идентификатора — при двойном импорте одного и того же файла вам придется вручную исправлять двойные записи.
OFX против CSV
Оба формата могут переносить банковские транзакции в бухгалтерское ПО. OFX выигрывает по структуре; CSV выигрывает по гибкости.
Почему OFX лучше для импорта в бухгалтерию
| Функция | OFX | CSV |
|---|---|---|
| Сопоставление столбцов | Автоматическое — теги определяют значение | Ручное — вы назначаете каждый столбец |
| Обнаружение дубликатов | Да (на основе FITID) | Нет — повторный импорт создает дубликаты |
| Формат даты | Однозначный (ГГГГММДДЧЧММСС) | Зависит от региона — ДД/ММ/ГГГГ или ММ/ДД/ГГГГ |
| Обработка сумм | Значения с учетом знака и TRNTYPE | Необходимо парсить знаки, символы, разделители |
| Идентификация счета | Встроено (номер маршрутизации + номер счета) | Не включено |
| Проверка баланса | Включен итоговый баланс | Обычно не включено |
| Типы транзакций | Типизированные (DEBIT, CREDIT, CHECK и т. д.) | Свободный текст или отсутствует |
| Файлы с несколькими счетами | Поддерживается в одном файле | Требуются отдельные файлы |
Один только формат даты экономит часы устранения неполадок. В CSV 01/02/2026 неоднозначен — 1 февраля или 2 января? OFX устраняет это с помощью ГГГГММДДЧЧММСС. 20260201120000 — это всегда 1 февраля 2026 года.
Когда CSV — лучший выбор
У CSV есть законные преимущества:
- Редактирование данных — Вы можете открыть CSV в Excel, исправить ошибки, добавить категоризацию и сохранить снова. Файлы OFX требуют текстового редактора и знания структуры тегов.
- Анализ в Excel — Если вам нужно выполнить формулы, сводные таблицы или диаграммы для данных транзакций, CSV является естественным промежуточным форматом.
- Пользовательская обработка — Программные скрипты и конвейеры данных обрабатывают CSV легче, чем вложенную структуру тегов OFX.
- Универсальная совместимость — Каждое приложение, читающее табличные данные, читает CSV. Не каждое приложение читает OFX.
Практический совет: используйте OFX для импорта в бухгалтерское ПО, а CSV — для всего остального.
OFX против QBO
Это вопрос, который сбивает с толку большинство людей — и ответ проще, чем вы ожидаете.
QBO (QuickBooks Web Connect) — это OFX с другим расширением файла и несколькими тегами, специфичными для Intuit. Базовая структура данных идентична. Файл QBO — это файл OFX, который QuickBooks распознает как свой собственный.
Ключевые различия
| Аспект | OFX | QBO |
|---|---|---|
| Расширение файла | .ofx |
.qbo |
| Спецификация | Открытый стандарт (FDX) | Брендированный подмножество Intuit |
| Идентификатор ФУ | Необязательный блок FI |
Тег INTU.BID (Идентификатор банка Intuit) |
| Целевое ПО | Xero, MYOB, GnuCash, Wave и т. д. | QuickBooks (Desktop и Online) |
| Совместимость | Более широкая — большинство бухгалтерских программ | Специфично для QuickBooks |
Тег INTU.BID — это основное дополнение Intuit — код идентификатора банка, который сообщает QuickBooks, из какого финансового учреждения файл, что позволяет автоматически сопоставлять его с правильным банковским счетом при импорте.
На практике вы можете переименовать файл .ofx в .qbo, и QuickBooks обычно его прочитает. Обратное также работает — большинство программ, читающих OFX, обработают файл .qbo. Но для чистых импортов используйте формат, который ожидает каждое приложение.
Существует также QFX (Quicken Financial Exchange) — та же основа OFX, другое брендирование, другое расширение файла, ориентированное на Quicken.
Программное обеспечение, поддерживающее OFX
OFX пользуется широкой поддержкой в бухгалтерском и личном финансовом ПО:
Xero (Предпочтительный формат)
Xero явно рекомендует OFX вместо CSV для ручного импорта банковских выписок. Файлы OFX автоматически сопоставляются без настройки столбцов, включают обнаружение дубликатов на основе FITID и содержат метаданные счета.
Для импорта: Перейдите в Accounting > Bank Accounts, выберите счет, нажмите Manage Account > Import a Statement и выберите ваш файл .ofx. Максимум 1000 транзакций на файл.
MYOB (Полная поддержка)
MYOB принимает OFX для импорта банковских фидов. Процесс аналогичен Xero — загрузите файл в соответствующий банковский счет, и транзакции появятся в банковском фиде для сопоставления и категоризации.
GnuCash (Бесплатное, с открытым исходным кодом)
GnuCash имеет встроенный импорт OFX через библиотеку libofx. Это один из лучших бесплатных вариантов для обработки файлов OFX.
Для импорта: Перейдите в File > Import > Import OFX/QFX, выберите файл и сопоставьте его с правильным счетом. Обнаружение дубликатов в GnuCash использует FITID для предотвращения двойных записей.
Другое совместимое ПО
- Wave — бесплатное бухгалтерское ПО с поддержкой импорта OFX
- Sage Business Cloud — принимает OFX для импорта банковских транзакций
- FreeAgent — поддерживает загрузку файлов OFX и QIF
- Moneydance — ПО для управления личными финансами с прямым подключением OFX и импортом файлов
- KMyMoney — менеджер личных финансов с открытым исходным кодом с поддержкой OFX через
libofx - Microsoft Money — снят с производства, но до сих пор используется некоторыми; встроенная поддержка OFX была одной из его основных функций
- Reckon (Австралия) — принимает файлы OFX в своем рабочем процессе импорта банковских фидов
QuickBooks является заметным исключением — он предпочитает свой брендированный вариант QBO и более надежно работает с файлами .qbo, содержащими идентификатор INTU.BID.
Создание файлов OFX из PDF-выписок по банковским счетам
Большинство банков не предлагают загрузку OFX напрямую. Они предоставляют PDF — отформатированный для печати, а не для обмена данными. Некоторые предлагают экспорт CSV для недавних транзакций (обычно за последние 90 дней), но для исторических данных, закрытых счетов или банков без опций цифрового экспорта вы остаетесь с PDF.
Конвертер банковских выписок PDFSub извлекает транзакции из PDF-выписок по банковским счетам и генерирует действительные файлы OFX с правильной структурой. Выходные данные включают уникальные FITID для каждой транзакции, правильное форматирование даты ГГГГММДД, суммы с учетом знака и соответствующие типы транзакций, а также метаданные счета — все, что нужно бухгалтерскому ПО для чистого импорта.
Конвертер работает с выписками более чем 20 000 банков на 133 языках. Цифровые PDF (текстовые выписки) обрабатываются в вашем браузере — файл никогда не покидает ваше устройство. Отсканированные или преимущественно графические выписки направляются через серверное извлечение данных с помощью ИИ.
Тарифы начинаются от 10 долларов США в месяц, а конвертация банковских выписок — от 29 долларов США в месяц (план Business + надстройка BSC, 500 страниц). Все платные тарифы включают 7-дневную бесплатную пробную версию. Подробное руководство по импорту полученных файлов OFX в Xero см. в руководстве по импорту банковских выписок Xero.
Распространенные проблемы OFX и их решение
Файлы OFX структурированы, но не безупречны. Вот наиболее частые проблемы и способы их устранения:
1. Недопустимый синтаксис XML/SGML
Симптом: Ваше ПО отклоняет файл с ошибкой парсинга.
Причина: Неправильно сформированные теги, отсутствующие закрывающие теги (в файлах 2.x) или недопустимые символы в описаниях. Амперсанды (&) — наиболее распространенная проблема — они должны быть закодированы как & в XML, но часто остаются как есть в названиях вроде "AT&T".
Решение: Откройте файл в текстовом редакторе и замените одиночные & на &. Также проверьте наличие незакрытых тегов, если файл версии 2.x.
2. Отсутствующие или дублирующиеся FITID
Симптом: Импорт создает дублирующиеся транзакции, или ПО сообщает об отсутствующих идентификаторах.
Причина: Некоторые инструменты конвертации генерируют одинаковый FITID для каждой транзакции (например, 0 или 1) или полностью пропускают тег.
Решение: Каждый FITID должен быть уникальным в пределах файла. Распространенный шаблон объединяет дату и последовательный счетчик: 20260215001, 20260215002 и т. д. Отредактируйте FITID-заполнители в текстовом редакторе перед импортом.
3. Неправильный формат даты
Симптом: Транзакции отображаются с неправильными датами, или ПО показывает даты из 1900 или 2099 года.
Причина: Значение DTPOSTED не соответствует формату ГГГГММДДЧЧММСС. ГГГГММДД (без времени) допустимо, но ДД/ММ/ГГГГ или ММ-ДД-ГГГГ приведут к ошибкам парсинга.
Решение: Убедитесь, что все значения DTPOSTED используют формат ГГГГММДД или ГГГГММДДЧЧММСС. Оба варианта — 20260215 и 20260215120000 — допустимы.
4. Проблемы с кодировкой символов
Симптом: Описания транзакций отображаются как искаженные символы, вопросительные знаки или отсутствующие диакритические знаки.
Причина: Заголовок файла объявляет одну кодировку (обычно USASCII или UTF-8), но фактическое содержимое использует другую кодировку. Это особенно часто встречается в международных банковских выписках, содержащих не-ASCII символы.
Решение: Измените заголовок ENCODING на соответствующий фактической кодировке файла. Для международных выписок с диакритическими знаками UTF-8 является наиболее безопасным выбором. Некоторое устаревшее ПО требует USASCII без специальных символов.
5. Совместимость версий (1.x против 2.x)
Симптом: ПО, ожидающее OFX 2.x, отклоняет файл 1.x, или наоборот.
Причина: OFX 1.x использует разметку SGML (теги не требуют закрытия), в то время как 2.x использует полноценный XML (все теги должны быть открыты и закрыты). Парсеры, созданные для одной версии, могут не справиться с другой.
Решение: Большинство современного бухгалтерского ПО обрабатывает обе версии. Если ваше нет, конвертируйте между версиями, добавляя закрывающие теги (1.x в 2.x) или удаляя их (2.x в 1.x). Поиск и замена в текстовом редакторе справятся с этим для небольших файлов.
Часто задаваемые вопросы
Что означает OFX?
OFX расшифровывается как Open Financial Exchange — открытый стандарт для электронного обмена финансовыми данными между финансовыми учреждениями и конечными приложениями, поддерживаемый Financial Data Exchange (FDX).
OFX — это то же самое, что и QBO?
Почти. QBO — это брендированная версия OFX от Intuit для QuickBooks. Структура данных идентична — QBO добавляет тег INTU.BID для идентификации банка и использует расширение .qbo. Вы часто можете переименовать .ofx в .qbo, и QuickBooks примет его.
Могу ли я открыть файл OFX в Excel?
Не напрямую как структурированные данные. Excel откроет файл как текстовый, показывая необработанную разметку SGML/XML. Чтобы просмотреть данные OFX в Excel, вам нужно либо сначала конвертировать их в CSV или XLSX, либо использовать сторонний надстройку, которая парсит теги OFX в столбцы электронной таблицы.
Что лучше для Xero — OFX или CSV?
OFX лучше для Xero. Он импортируется автоматически без сопоставления столбцов, включает обнаружение дубликатов на основе FITID, использует однозначный формат даты и содержит метаданные счета. Собственная документация Xero рекомендует OFX вместо CSV для ручного импорта банковских выписок.
Предоставляют ли банки загрузку OFX?
Некоторые предоставляют, но это непоследовательно. Крупные банки в США, Великобритании и Австралии могут предлагать загрузку OFX или QFX для недавних транзакций (обычно за последние 90 дней). Многие мелкие банки, кредитные союзы и международные учреждения предоставляют только PDF-выписки. Для исторических данных за пределами окна загрузки конвертация PDF обычно является единственным вариантом.
Безопасен ли OFX?
Спецификация OFX включает положения об шифровании SSL/TLS во время передачи и аутентификации на основе сертификатов для прямых соединений. Однако файл OFX, сохраненный на диске, представляет собой обычный текст — он содержит номера счетов и детали транзакций в читаемом виде. Обращайтесь с файлами OFX так же осторожно, как с любым финансовым документом.
В чем разница между OFX 1.x и 2.x?
OFX 1.x использует разметку SGML (теги не требуют закрытия), в то время как OFX 2.x использует полноценный XML (все теги должны быть открыты и закрыты). Содержимое данных одинаково — разница синтаксическая. Версия 1.6 остается наиболее широко генерируемым форматом. Большинство современного бухгалтерского ПО парсит обе версии без проблем.
Могу ли я редактировать файл OFX вручную?
Да. Файлы OFX — это обычный текст, и их можно редактировать в любом текстовом редакторе. Вы можете исправлять описания, корректировать суммы, добавлять недостающие FITID или изменять даты. Просто сохраняйте структуру тегов — незакрытый или несоответствующий тег приведет к сбоям импорта. Для файлов OFX 2.x убедитесь, что каждый открывающий тег имеет соответствующий закрывающий тег.