h4kuna / fio
Read movements by json file from Fio bank and send payments.
Fund package maintenance!
h4kuna
revolut.me/milan2m/czk1000/fio
Installs: 236 615
Dependents: 2
Suggesters: 0
Security: 0
Stars: 54
Watchers: 7
Forks: 25
Open Issues: 3
Requires
- php: >=8.0
- ext-curl: *
- ext-mbstring: *
- ext-simplexml: *
- ext-xmlwriter: *
- guzzlehttp/psr7: ^2.4
- h4kuna/dir: ^0.1.3
- h4kuna/memoize: ^0.1.3
- nette/safe-stream: ^3.0
- nette/utils: ^3.0 || ^4.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.5
- nette/tester: ^2.4
- phpstan/phpstan: ^1.8
- phpstan/phpstan-strict-rules: ^1.4
- symfony/http-client: ^6.0
- tracy/tracy: ^2.9
Suggests
- guzzlehttp/guzzle: As default implementation for PSR-7, PSR-17 and PSR-18 standards.
- dev-master
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.x-dev
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.1
- v1.2.0
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-adamzelycz-master
This package is auto-updated.
Last update: 2024-11-02 13:58:24 UTC
README
Support Fio API. Read is provided via json file.
Versions
Here is changlog
Nette framework
Follow this extension.
Installation to project by composer
$ composer require h4kuna/fio
Not implemented
- 5.3.1.7: STA (MT940)
- 5.3.2: Transakce z POS terminálů nebo platební brány obchodníka
- 6.4.2: pain.008 (příkazy k inkasu)
- only json for read movements
- only xml for import
How to use
Here is example and run via cli. This script require account.ini in same directory, whose looks like.
[my-account] account = 123456789 token = abcdefghijklmn [wife-account] account = 987654321 token = zyxuvtsrfd
FioFactory class help you create instances of classes FioPay and FioRead.
use h4kuna\Fio; $fioFactory = new Fio\FioFactory(parse_ini_file($ini, true)); $fioRead = $fioFactory->createFioRead('my-account'); $fioPay = $fioFactory->createFioPay('wife-account'); $fioRead2 = $fioFactory->createFioRead(); // first in list is default, [my-account]
You can use different config bud keep structure of php array
[ 'my-alias' => [ 'account' => '123456789', 'token' => 'abcdefg' ], 'next-alias' => [ 'account' => '987654321', 'token' => 'tuvwxyz' ] ]
Reading
Keep on mind, all items like variable symbol, constant symbol and specific symbol can to have zeros from left side.
Read range between date.
use h4kuna\Fio; /* @var $fioRead Fio\FioRead */ /* @var $list Fio\Read\TransactionList */ $list = $fioRead->movements(/* $from, $to */); // default is last week foreach ($list as $transaction) { /* @var $transaction Fio\Read\Transaction */ var_dump($transaction->moveId); foreach ($transaction as $property => $value) { var_dump($property, $value); } } var_dump($list->getInfo());
You can download transaction by id of year.
use h4kuna\Fio; /* @var $fioRead Fio\FioRead */ /* @var $list Fio\Read\TransactionList */ $list = $fioRead->movementId(2, 2015); // second transaction of year 2015
Very useful method where download last transactions.
After download it automatic set new break point.
use h4kuna\Fio; /* @var $fioRead Fio\FioRead */ /* @var $list Fio\Read\TransactionList */ $list = $fioRead->lastDownload(); // same use like above var_dump($list->getInfo()->idLastDownload);
Change your break point.
By date.
$fioRead->setLastDate('1986-12-30'); $list = $fioRead->lastDownload(); var_dump($list->getInfo()->idLastDownload);
By movement ID.
$fioRead->setLastId(123456789); $list = $fioRead->lastDownload(); var_dump($list->getInfo()->idLastDownload); // 123456789
Tip: You can define own TransactionFactory and create instance and add to Read\Json::__construct()
Payment (writing)
Api has three response languages, default is set cs. For change:
/* @var $fioPay h4kuna\Fio\FioPay */ $fioPay->setLanguage('en');
For send request is method send whose accept, file path to your xml or abo file or instance of class Property.
$myFile = '/path/to/my/xml/or/abo/file.xml'; // file extension is important $fioPay->send($myFile);
Object pay only to czech or slovak:
/* @var $national Fio\Pay\Payment\National */ $national = $fioPay->createNational($amount, $accountTo); $national->setVariableSymbol($vs); /* set next payment property $national->set* */ $fioPay->send();
Euro zone payment:
/* @var $euro Fio\Pay\Payment\Euro */ $euro = $fioPay->createEuro($amount, $accountTo, $name); $euro->setVariableSymbol($vs); /* set next payment property $euro->set* */ $fioPay->send();
International payment:
/* @var $international Fio\Pay\Payment\International */ $international = $fioPay->createInternational($amount, $accountTo, $bic, $name, $street, $city, $country, $info); $international->setRemittanceInfo2('foo'); /* set next payment property $international->set* */ $fioPay->send();
Send more payments in one request:
foreach($pamentsRows as $row) { /* @var $national Fio\Pay\Payment\National */ $national = $fioPay->createNational($row->amount, $row->accountTo); $national->setVariableSymbol($row->vs); } $fioPay->send();