Skip to content
PHP Parser for CAMT messages
Branch: master
Clone or download


Build Status Code Quality Code Coverage Total Downloads Latest Stable Version License

Library to read CAMT files. Currently only CAMT.052, CAMT.053 and CAMT.054 are supported.

Supported Versions

Camt 052

Version Supported
camt.052.001.01 ✔️
camt.052.001.02 ✔️
camt.052.001.04 ✔️

Camt 053

Version Supported
camt.053.001.02 ✔️
camt.053.001.03 ✔️
camt.053.001.04 ✔️

Camt 054

Version Supported
camt.054.001.02 ✔️
camt.054.001.04 ✔️


Requires PHP 7.0 or later. In case this is an obstacle for you, conversion should be no problem. The library is very small.

It is installable and autoloadable via Composer:

composer require genkgo/camt


To run the unit tests at the command line, run:


This library attempts to comply with PSR-1, PSR-2, and PSR-4. If you notice compliance oversights, please send a patch via pull request.

PHP-CS-Fixer is used to ensure PSR coding standards are respected.

To fix CS, run:

./vendor/bin/php-cs-fixer fix

A .php_cs.dist file in the root directory excludes vendor directory from fixing and contains coding standards level wanted (PSR-2).

Getting Started

Read a CAMT file, and loop through its statements and entries.

use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$reader = new Reader(Config::getDefault());
$message = $reader->readFile(__DIR__.'/Camt053/Stubs/camt053.v2.minimal.xml');
$statements = $message->getRecords();
foreach ($statements as $statement) {
    $entries = $statement->getEntries();

XSD validation

This library provides a XSD validation for each supported CAMT format. The validation is executed by default. But in some cases, you might want to disable it.

use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$config = Config::getDefault();

$reader = new Reader($config);


  • Found a bug? Please try to solve it yourself first and issue a pull request. If you are not able to fix it, at least give a clear description what goes wrong. We will have a look when there is time.
  • Want to see a feature added, issue a pull request and see what happens. You could also file a bug of the missing feature and we can discuss how to implement it.
You can’t perform that action at this time.