silarhi / qif-library
A PHP library to parse and write QIF (Quicken Interchange Format) files
Requires
- php: >=8.2
Requires (Dev)
- ergebnis/composer-normalize: ^2.54.0
- friendsofphp/php-cs-fixer: ^3.95.27
- phpstan/extension-installer: ^1.4.3
- phpstan/phpstan: ^2.3.1
- phpstan/phpstan-strict-rules: ^2.1.0
- phpunit/phpunit: ^11.5.57 || ^12.5.38 || ^13.4.1
- rector/rector: ^2.7.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-14 07:31:42 UTC
README
QIF Library
A PHP library to parse and write QIF files.
Read Quicken Interchange Format exports into typed PHP objects, or generate QIF files from your own transactions.
Features
- Parser: reads the date, amount, memo, cleared status, payee, address, category and splits of every transaction
- Writer: builds QIF output from
Transactionobjects, splits, memo and address included - Typed results: dates as
DateTimeImmutable, amounts asfloat, account types and cleared status as enums - No silent guesses: impossible dates (
31/02/2023) and ambiguous amounts (1,234) throw aParseExceptioninstead of being rolled over or misread, with the line where they are - Both number conventions:
1,234.50and1.234,50, detected per amount or set explicitly - Day- or month-first dates:
d/m/Yby default,m/d/Yon demand, read and written; ISO dates always - No dependencies: plain PHP, Windows and Unix line endings, UTF-8 BOM stripped
Requirements
- PHP 8.2+
Installation
composer require silarhi/qif-library
Quick start
use Silarhi\Qif\Enums\Types; use Silarhi\Qif\Parser; use Silarhi\Qif\Transaction; use Silarhi\Qif\Writer; // Parse foreach (Parser::parseFile('/path/to/export.qif')->getTransactions() as $transaction) { $transaction->getDate(); // ?DateTimeImmutable $transaction->getAmount(); // ?float $transaction->getDescription(); // ?string, the payee } // Write $writer = new Writer(); $writer->addTransaction( (new Transaction(Types::Bank)) ->setDate(new DateTimeImmutable('2026-01-31')) ->setDescription('Acme Corp') ->setAmount(2400) ->setCategory('Income:Salary') ); $writer->saveToFile('/path/to/export.qif');
Documentation
Everything else is on qif-library.silarhi.dev:
- Installation and quick start
- Guides: parsing QIF files (with dates and amounts), writing QIF files, error handling
- Reference: classes, enums and QIF fields, exceptions
- Upgrading from
mimographix/qif-library, 1.x, 2.x or 3.x
Contributing
See CONTRIBUTING.md. Release notes are in CHANGELOG.md.
Credits
This library started as a fork of mimographix/qif-library by Mário Čechovič.
License
MIT License. See LICENSE for details.
Built with care by SILARHI.
If QIF Library saves you time, consider giving it a star on GitHub.