secupay/camt-parser

Library to read CAMT files (XML containing bank statements).

Installs: 20

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 75

pkg:composer/secupay/camt-parser

0.1.0 2026-02-20 12:25 UTC

README

Build Status Code Coverage Total Downloads Latest Stable Version License

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

Difference to original camt-parser:

  • [BREAKING] EntryTransactionDetail->amountDetails is no longer a Money object of the transaction amount but a new DTO with transactionAmount (Money) and instructedAmount (Money)
      // before:
      $amount = $entry->getAmountDetails()->getAmount();
      
      // now:
      $amount = $entry->getAmountDetails()->getTransactionAmount()->getAmount();

Supported Versions

Camt 052

Version Supported
camt.052.001.01 ✔️
camt.052.001.02 ✔️
camt.052.001.03
camt.052.001.04 ✔️
camt.052.001.05
camt.052.001.06 ✔️
camt.052.001.08 ✔️
camt.052.001.10
camt.052.001.11

Camt 053

Version Supported
camt.053.001.01
camt.053.001.02 ✔️
camt.053.001.03 ✔️
camt.053.001.04 ✔️
camt.053.001.05
camt.053.001.06
camt.053.001.08 ✔️
camt.053.001.10
camt.053.001.11

Camt 054

Version Supported
camt.054.001.01
camt.054.001.02 ✔️
camt.054.001.03
camt.054.001.04 ✔️
camt.054.001.05
camt.054.001.06
camt.054.001.08 ✔️
camt.054.001.10
camt.054.001.11

Installation

It is installable and autoloadable via Composer:

composer require genkgo/camt

Getting Started

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

<?php
use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$reader = new Reader(Config::getDefault());
$message = $reader->readFile('test/data/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.

<?php
use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$config = Config::getDefault();
$config->disableXsdValidation();

$reader = new Reader($config);

Contributing

  • 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.

Quality

To check that everything is as it should be, run:

composer check

To fix code style, run:

composer check

How to release

  1. Create an annotated tag
    1. git tag -a 1.2.3
    2. Tag subject must be the version number, eg: 1.2.3
    3. Tag body must be a copy-paste of the changelog entries
  2. Push tag with git push --tags, then GitHub Actions will create a GitHub release automatically