This is a simple web browser frontend to convert Schwab Brokerage transaction history in JSON format to OFX.

It is built using Fengari to call the Lua library, schwab2ofx.

Login to your Schwab account and download your transaction history in JSON format.

Click the "Choose File" button and select your downloaded JSON file.

This app will create an OFX file and save it to your browser's download folder.

I wrote this because I was happily using DirectConnect/OFX at TD Ameritrade with SEE Finance, and then Schwab took over and terminated support for both DirectConnect and OFX. I learned Schwab killed these features for their own customers about 4 years ago.

I was looking for some workaround. You can download Schwab transactions in CSV, JSON, or XML if you directly log into your account. I looked for other tools that could convert this to OFX, but the only one that came close was csv2ofx, but it doesn't support brokerage transactions, only banking. I didn't know OFX, but I decided I would try to learn it and convert from JSON to OFX.

I learned basic OFX and wrote the schwab2ofx library in 2 days, and spent another half-day learning Fengari and how to build this UI. So there is a lot of room for this program to be better.

I tested this exclusively with SEE Finance, but it will probably work with other personal financial software that support OFX, such as GnuCash and MoneyDance.

I tested with a lot of transaction types, including more exotic things such as options trades, short sales, and foreign taxes. But since I only have access to my own data sets and Schwab does not document their schema, there may be transaction types that are unimplemented.

This is supposed to be a client-only application (i.e. this application converts your data directly inside your web browser on your computer and does not upload your data to a server for processing).

This code is open source and also comes with a command line version.

The GitHub repository is at https://github.com/ewmailing/Schwab2ofx/.