فرمت 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 را به عنوان زبان مشترک دادههای مالی در نظر بگیرید. بانکها آن را صحبت میکنند. نرمافزارهای حسابداری آن را میخوانند. و برخلاف CSV -- که فقط ردیفها و ستونهایی بدون معنای ذاتی است -- OFX فراداده ساختاریافتهای را حمل میکند که به نرمافزار دریافتکننده دقیقاً میگوید هر بخش از داده چه چیزی را نشان میدهد.
تاریخچه OFX
OFX در سال ۱۹۹۷ توسط مایکروسافت، Intuit و CheckFree متولد شد. هر کدام استاندارد رقابتی خود را داشتند -- مایکروسافت 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 و سایر اسناد مالیاتی منتقل شده بین مؤسسات مالی و نرمافزارهای مالیاتی.
- صورتحسابهای وام -- سوابق تراکنش وام مسکن، وام خودرو و وام شخصی و اطلاعات مانده.
برای اکثر حسابداران و دفترداران، 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>
کالبد شکافی فایل
فایل دارای سه بخش اصلی است:
۱. بلوک هدر -- خطوط متن ساده در بالا (قبل از <OFX>) نسخه OFX، رمزگذاری و تنظیمات امنیتی را اعلام میکنند. این XML نیست -- این یک هدر ساده کلید-مقدار است که تجزیهکنندهها قبل از پردازش بدنه SGML/XML آن را میخوانند.
۲. پاسخ ورود به سیستم (SIGNONMSGSRSV1) -- فراداده احراز هویت و سرور. CODE با مقدار 0 به معنی موفقیت است. اکثر فایلهای وارد شده از مقادیر جایگزین در اینجا استفاده میکنند.
۳. پاسخ صورتحساب (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 (YYYYMMDDHHMMSS) |
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 (شناسه تراکنش مؤسسه مالی) مهمترین تگ در یک فایل OFX از دیدگاه حسابداری است. این یک شناسه منحصر به فرد است که به هر تراکنش اختصاص داده میشود و امکان تشخیص موارد تکراری را فراهم میکند.
هنگامی که یک فایل OFX را به Xero، GnuCash یا هر نرمافزار سازگار دیگری وارد میکنید، تمام FITID هایی را که دیده است ذخیره میکند. اگر همان فایل را دوباره وارد کنید، نرمافزار هر FITID را با پایگاه داده خود مقایسه کرده و موارد تکراری را به طور خودکار حذف میکند.
این مزیت اصلی OFX نسبت به CSV است. با CSV، هیچ شناسه منحصر به فردی وجود ندارد -- اگر همان فایل را دو بار وارد کنید، ورودیهای تکراری خواهید داشت که باید به صورت دستی آنها را پاک کنید.
OFX در مقابل CSV
هر دو فرمت میتوانند تراکنشهای بانکی را به نرمافزار حسابداری منتقل کنند. OFX از نظر ساختار برتر است؛ CSV از نظر انعطافپذیری.
چرا OFX برای وارد کردن به حسابداری بهتر است
| ویژگی | OFX | CSV |
|---|---|---|
| نگاشت ستون | خودکار -- تگها معنی را تعریف میکنند | دستی -- شما هر ستون را اختصاص میدهید |
| تشخیص موارد تکراری | بله (مبتنی بر FITID) | خیر -- وارد کردن مجدد باعث ایجاد موارد تکراری میشود |
| فرمت تاریخ | بدون ابهام (YYYYMMDDHHMMSS) | بسته به منطقه متفاوت است -- DD/MM/YYYY در مقابل MM/DD/YYYY |
| مدیریت مبلغ | مقادیر با علامت به همراه TRNTYPE | باید علامتها، نمادها و جداکنندهها را تجزیه کند |
| شناسایی حساب | جاسازی شده (شماره مسیریابی + شماره حساب) | گنجانده نشده است |
| تأیید مانده | مانده پایانی گنجانده شده است | معمولاً گنجانده نشده است |
| انواع تراکنش | دارای نوع (DEBIT, CREDIT, CHECK, و غیره) | متن آزاد یا غایب |
| فایلهای چند حسابی | در یک فایل پشتیبانی میشود | نیاز به فایلهای جداگانه دارد |
فرمت تاریخ به تنهایی ساعتها عیبیابی را صرفهجویی میکند. با CSV، 01/02/2026 مبهم است -- دوم ژانویه یا اول فوریه؟ OFX این مشکل را با YYYYMMDDHHMMSS برطرف میکند. 20260201120000 همیشه اول فوریه ۲۰۲۶ است.
چه زمانی CSV انتخاب بهتری است
CSV مزایای قابل قبولی دارد:
- ویرایش دادهها -- میتوانید یک CSV را در اکسل باز کنید، خطاها را اصلاح کنید، دستهبندیها را اضافه کنید و دوباره ذخیره کنید. فایلهای OFX نیاز به ویرایشگر متن و دانش ساختار تگ دارند.
- تحلیل اکسل -- اگر نیاز به اجرای فرمولها، جداول محوری یا نمودارها بر روی دادههای تراکنش دارید، 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 | بلوک اختیاری 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 خود را انتخاب کنید. حداکثر ۱۰۰۰ تراکنش در هر فایل.
MYOB (پشتیبانی کامل)
MYOB برای وارد کردن فید بانکی، OFX را میپذیرد. فرآیند مشابه Xero است -- فایل را در حساب بانکی مربوطه آپلود کنید و تراکنشها در فید بانکی برای تطبیق و دستهبندی ظاهر میشوند.
GnuCash (رایگان، منبع باز)
GnuCash از طریق کتابخانه libofx وارد کردن OFX داخلی دارد. این یکی از بهترین گزینههای رایگان برای پردازش فایلهای 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 را برای تراکنشهای اخیر (معمولاً ۹۰ روز گذشته) ارائه میدهند، اما برای دادههای تاریخی، حسابهای بسته شده، یا بانکهایی که گزینههای صادرات دیجیتال ندارند، شما با PDF گیر کردهاید.
مبدل صورتحساب بانکی PDFSub تراکنشها را از صورتحسابهای بانکی PDF استخراج کرده و فایلهای OFX معتبر با ساختار مناسب تولید میکند. خروجی شامل FITIDهای منحصربهفرد برای هر تراکنش، فرمت تاریخ صحیح YYYYMMDD، مبالغ امضاشده با انواع تراکنش مناسب، و فراداده حساب -- همه آنچه نرمافزار حسابداری برای وارد کردن تمیز نیاز دارد -- میباشد.
این مبدل با صورتحسابهای بیش از ۲۰,۰۰۰ بانک به ۱۳۳ زبان کار میکند. PDFهای دیجیتال (صورتحسابهای مبتنی بر متن) در مرورگر شما پردازش میشوند -- فایل هرگز دستگاه شما را ترک نمیکند. صورتحسابهای اسکن شده یا سنگین از تصاویر از طریق استخراج هوش مصنوعی سمت سرور مسیریابی میشوند.
پلنها از ۱۵ دلار در ماه شروع میشوند، با تبدیل صورتحساب بانکی ۲۹ دلار در ماه (پلن تجاری + افزونه BSC، ۵۰۰ صفحه). تمام پلنهای پولی شامل دوره آزمایشی رایگان ۷ روزه هستند. برای یک راهنمای کامل وارد کردن فایلهای OFX حاصل به Xero، راهنمای وارد کردن صورتحساب بانکی Xero را ببینید [/blog/import-bank-statements-xero].