csoellinger / php-fon-webservices
PHP library to handle FinanzOnline web services.
Requires
- php: ^7.4 || ^8.0 || ^8.1
- ext-soap: *
- jasny/typecast: dev-master
Requires (Dev)
- csoellinger/dog-html-printer: ^0.3
- klitsche/dog: ^0.4
- phpstan/phpstan: ^1.4
- ramsey/devtools: ^1.7
- ramsey/devtools-lib: 1.3
- spatie/phpunit-snapshot-assertions: ^4.2
- symfony/console: ^5.4
- symfony/dotenv: ^5.4
- symfony/filesystem: ^5.4
- symfony/finder: ^5.4
- symfony/process: ^5.4
- symfony/var-dumper: ^5.4
- vimeo/psalm: ^4.22
This package is auto-updated.
Last update: 2024-10-30 01:59:35 UTC
README
PHP library to handle (BMF)FinanzOnline webservices.
About
Supported webservices for now:
- Session
- VatID check
- Databox download
- File upload
- Bank data transmission
To be done:
- Query data transmission
- Record keeping
- Cash register
Installation
Install this package as a dependency using Composer.
composer require csoellinger/php-fon-webservices
Usage
Session Webservice
This webservice is needed for all other webservices but can also be used standalone (e.g. for using it with a service which is not supported by this library at the moment). Before you can use it you need to set up a credential class with all necessary informations.
<?php $tId = 'abcd45678'; // FinanzOnline Teilnehmer-ID $tUid = 'abcd45678'; // FinanzOnline Teilnehmer-UID (if available, otherwise leave blank) $benId = 'abcd45678'; // FinanzOnline Benutzer-ID $benPin = 'abcd45678'; // FinanzOnline Benutzer-PIN $credential = new FonCredential($tId, $tUid, $benId, $benPin); // Initialize $sessionWs = new SessionWs($credential); // Login $sessionWs->login(); // Get session id $sessionId = $sessionWs->getID(); // optional: logout. Not really needed cause you will be logged off at class destruct. $sessionWs->logout();
VatID Check Webservice
Check a vat id (value added tax identification) for validity at two levels. First only return valid or not valid, second also return the company name and address if available.
// Initialize with previous created session webservice /** @var SessionWs $sessionWs */ $checkVatIdWs = new VatIdCheckWs($sessionWs); // Check at level one only returns valid var_dump($checkVatIdWs->check('ATU36975500')); /** * CSoellinger\FonWebservices\Result\VatIdCheck\ValidLevelOne * valid => (bool) true */ // At level two you also get name and address of the organisation if available var_dump($checkVatIdWs->check('ATU36975500', 2)); /** * CSoellinger\FonWebservices\Result\VatIdCheck\ValidLevelTwo * name => (string) 'McDonald's Franchise GmbH' * address => (string) 'Campus 21,Liebermannst A01601 AT-2345 Brunn am Gebirge' * valid => (bool) true */
Databox Download Webservice
// Initialize with previous created session webservice /** @var SessionWs $sessionWs */ $databoxDownloadWs = new DataboxDownloadWs($sessionWs); // Get a list of your databox $databoxList = $databoxDownloadWs->get(); var_dump($databoxList); /** * array * 0 => * CSoellinger\FonWebservices\Result\DataboxDownload\ListItem * stnr => (string) '99 999/9999' * name => (string) 'Mustermann Max' * anbringen => (string) 'STB-ZUSI' * zrvon => (string) '' * zrbis => (string) '' * datbesch => (string) '2019-07-15+02:00' * erltyp => (string) 'B' * fileart => (string) 'PDF' * ts_zust => (string) '2020-11-02T07:04:10.044+01:00' * applkey => (string) '2019-07-15-11.45.07.000000' * filebez => (string) '99_9999999_B_2008-11-20_2008-11-20-100948804630.PDF' * status => (string) '' */ // Get one entry by the applkey $entry = $databoxDownloadWs->getEntry($databoxList[0]->applkey); var_dump($entry); /** * (string) 'JVBERi0xLjQNJeLjz9MNCjYgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgNTk1Ny9PIDgvRSAxNzAzL'... */
Example(s)
The easiest way to start the examples is to start a PHP server:
php -S localhost:8005 --docroot ./public
Now open your browser and go to http://localhost:8005
Documentation
Contributing
Contributions are welcome! To contribute, please familiarize yourself with CONTRIBUTING.md.
If you found a bug or have an idea feel free to post it here on github.
Copyright and License
The csoellinger/php-fon-webservices library is free and unencumbered software released into the public domain. Please see UNLICENSE for more information.