PHP library to handle (BMF)FinanzOnline webservices.
Supported webservices for now:
- Session
- VatID check
- Databox download
- File upload
- Bank data transmission
To be done:
- Query data transmission
- Record keeping
- Cash register
Install this package as a dependency using Composer.
composer require csoellinger/php-fon-webservices
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();
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
*/
// 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'...
*/
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
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.
The csoellinger/php-fon-webservices library is free and unencumbered software released into the public domain. Please see UNLICENSE for more information.