PHPackages                             beccha/ofxparser - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. beccha/ofxparser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

beccha/ofxparser
================

OFX file parser

v2.1.0(2y ago)012.2k↑25%[5 PRs](https://github.com/beccha/ofxparser/pulls)MITPHPPHP ~7.4|^8.0|^8.1

Since Oct 7Pushed 1y agoCompare

[ Source](https://github.com/beccha/ofxparser)[ Packagist](https://packagist.org/packages/beccha/ofxparser)[ RSS](/packages/beccha-ofxparser/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (10)Used By (0)

OFX Parser
==========

[](#ofx-parser)

[![Tests](https://github.com/beccha/ofxparser/actions/workflows/test.yml/badge.svg)](https://github.com/beccha/ofxparser/actions/workflows/test.yml)[![Lint](https://github.com/beccha/ofxparser/actions/workflows/lint.yml/badge.svg)](https://github.com/beccha/ofxparser/actions/workflows/lint.yml)[![Security](https://github.com/beccha/ofxparser/actions/workflows/security.yml/badge.svg)](https://github.com/beccha/ofxparser/actions/workflows/security.yml)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/746f3662561011ac594a44f6b25fe667dac88c6e4b93a6289feeb558416b7a53/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6265636368612f6f66787061727365722f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/beccha/ofxparser/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/b1d8257c421e9298948611581ae710098cd536df3a1bc8e1186582d84c9697ba/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6265636368612f6f66787061727365722f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/beccha/ofxparser/?branch=master)[![Build Status](https://camo.githubusercontent.com/7102551c92f640b7e49f1f3a49fb11f4996222db91dd375b20a133cb13ad5c8f/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6265636368612f6f66787061727365722f6261646765732f6275696c642e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/beccha/ofxparser/build-status/master)[![Code Intelligence Status](https://camo.githubusercontent.com/a82d4ced012d93044672b58236e556b87905a68e1d6493016746073f44fe0181/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6265636368612f6f66787061727365722f6261646765732f636f64652d696e74656c6c6967656e63652e7376673f623d6d6173746572)](https://scrutinizer-ci.com/code-intelligence)

This is a fork of [oriatec/ofxparser](https://github.com/oriatec/ofxparser). However, the compatibilty with this library was not preserved.

---

OFX Parser is a PHP library designed to parse an OFX file downloaded from a financial institution into simple PHP objects.

Here are the OFX [Specifications](https://financialdataexchange.org/common/Uploaded%20files/OFX%20files/OFX%20Banking%20Specification%20v2.3.pdf).

Installation
------------

[](#installation)

Simply require the package using [Composer](https://getcomposer.org/):

```
$ composer require beccha/ofxparser
```

Usage
-----

[](#usage)

You can access the nodes in your OFX file as follows:

```
$ofxParser = new \Beccha\OfxParser\Parser();
$ofx = $ofxParser->loadFromFile('/path/to/your/bankstatement.ofx');

$bankAccounts = $ofx->getBankAccounts();
$firstBankAccount = $bankAccounts[0];

// Get the statement start and end dates
$startDate = $firstBankAccount->getStatement()->getStartDate();
$endDate = $firstBankAccount->getStatement()->getEndDate();

// Get the statement transactions for the account
$transactions = $firstBankAccount->getStatement()->getTransactions();
```

Contribute
----------

[](#contribute)

### Requirements

[](#requirements)

You must have docker installed on your system.

### Installation

[](#installation-1)

Clone this repository on your system

```
git clone https://github.com/beccha/ofxparser.git
```

Start and build a docker container with php7.4:

```
make start
```

Deploy Composer packages:

```
make init
```

Launch unit tests:

```
make unit
```

### Other commands

[](#other-commands)

Access shell:

```
make shell
```

Please make sure to check the quality of your code before submitting a pull request:

```
make quality-check
```

Full list of commands in the Makefile at the root of the project.

Fork &amp; Credits
------------------

[](#fork--credits)

This is a fork of [oriatec/ofxparser](https://github.com/oriatec/ofxparser), itself forked of [okonst/ofxparser](https://github.com/okonst/ofxparser), [asgrim/ofxparser](https://github.com/asgrim/ofxparser). Intended to be framework independent.

Loosely based on the ruby [ofx-parser by Andrew A. Smith](https://github.com/aasmith/ofx-parser).

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance26

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~101 days

Total

3

Last Release

751d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/29e51231e957529052bf61dd8a84d8821fb73c693cba5459536e22606a13adcc?d=identicon)[beccha](/maintainers/beccha)

---

Top Contributors

[![beccha](https://avatars.githubusercontent.com/u/832077?v=4)](https://github.com/beccha "beccha (87 commits)")[![asgrim](https://avatars.githubusercontent.com/u/496145?v=4)](https://github.com/asgrim "asgrim (72 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (35 commits)")[![loweoj](https://avatars.githubusercontent.com/u/915917?v=4)](https://github.com/loweoj "loweoj (12 commits)")[![Thibaud-DT](https://avatars.githubusercontent.com/u/9258596?v=4)](https://github.com/Thibaud-DT "Thibaud-DT (10 commits)")[![ambroisemaupate](https://avatars.githubusercontent.com/u/380026?v=4)](https://github.com/ambroisemaupate "ambroisemaupate (8 commits)")[![moleculezz](https://avatars.githubusercontent.com/u/118499?v=4)](https://github.com/moleculezz "moleculezz (7 commits)")[![okonst](https://avatars.githubusercontent.com/u/30949266?v=4)](https://github.com/okonst "okonst (5 commits)")[![nicolasrabier](https://avatars.githubusercontent.com/u/2274443?v=4)](https://github.com/nicolasrabier "nicolasrabier (4 commits)")[![gitmathias](https://avatars.githubusercontent.com/u/365221?v=4)](https://github.com/gitmathias "gitmathias (4 commits)")[![hucharal](https://avatars.githubusercontent.com/u/6876338?v=4)](https://github.com/hucharal "hucharal (4 commits)")[![diegoricardo](https://avatars.githubusercontent.com/u/2482691?v=4)](https://github.com/diegoricardo "diegoricardo (4 commits)")[![fernando-nery](https://avatars.githubusercontent.com/u/15134576?v=4)](https://github.com/fernando-nery "fernando-nery (2 commits)")[![renatomb](https://avatars.githubusercontent.com/u/30217311?v=4)](https://github.com/renatomb "renatomb (2 commits)")[![gwennael-jean](https://avatars.githubusercontent.com/u/4457236?v=4)](https://github.com/gwennael-jean "gwennael-jean (2 commits)")[![valorin](https://avatars.githubusercontent.com/u/897369?v=4)](https://github.com/valorin "valorin (1 commits)")[![gammamatrix](https://avatars.githubusercontent.com/u/524724?v=4)](https://github.com/gammamatrix "gammamatrix (1 commits)")[![jacques](https://avatars.githubusercontent.com/u/2543?v=4)](https://github.com/jacques "jacques (1 commits)")[![jpswade](https://avatars.githubusercontent.com/u/1087963?v=4)](https://github.com/jpswade "jpswade (1 commits)")[![oceanapplications](https://avatars.githubusercontent.com/u/2704923?v=4)](https://github.com/oceanapplications "oceanapplications (1 commits)")

---

Tags

parserfinanceofxopen financial exchange

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/beccha-ofxparser/health.svg)

```
[![Health](https://phpackages.com/badges/beccha-ofxparser/health.svg)](https://phpackages.com/packages/beccha-ofxparser)
```

###  Alternatives

[nikic/php-parser

A PHP parser written in PHP

17.4k902.6M1.8k](/packages/nikic-php-parser)[doctrine/lexer

PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.

11.2k910.8M118](/packages/doctrine-lexer)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[matomo/device-detector

The Universal Device Detection library, that parses User Agents and detects devices (desktop, tablet, mobile, tv, cars, console, etc.), clients (browsers, media players, mobile apps, feed readers, libraries, etc), operating systems, devices, brands and models.

3.5k23.5M111](/packages/matomo-device-detector)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
