Fio API – PHP třída

Fio banka už nějaký čas umožňuje přístup přes své API pro stahování transakcí a o něco menší dobu umožňuje zadávání transakcí, které následně klient musí v internetovém bankovnictví potvrdit (SMS kódem nebo s využitím certifikátu).

Za účelem usnadnění stahování a zadávání transakcí pro webové aplikace jsem vytvořil PHP třídu, která funguje v české i ve slovenské Fio bance. Nabízím následující varianty:

Ceny jsou konečné, nejsem plátce DPH. Ceny platí pro jeden projekt, pokud byste chtěli používat třídu ve více svých projektech, dejte mi vědět. Zakoupením licence získáte zdarma i budoucí aktualizace třídy.

Máte zájem o třídu? Chcete pomoct s implementací? Kontaktujte mě!

Reference

„Vše funguje naprosto bez problémů.“ Jan Válek – VašeCigareta.cz

„Rychlá komunikace a předání. Třída je hezky napsaná a zdokumentovaná. Vše proběhlo bez problému, děkujeme.“ ProfiRest.cz

„Třídu používáme na čtení plateb a jsme maximálně spokojeni.“ Silicon River s.r.o.

„Se třídou nejsou žádné problémy. Pro nás funguje vše jak má.“ 3solutions, spol. s r.o.

Aktuální verze třídy je 2.2, vydána 13. 7. 2020. Podívejte se na changelog.
Pokud Vám máte koupenou licenci dřívější verze a chcete novou verzi, kontaktujte mě, prosím. O důležitých změnách informuji všechny zákazníky.

S PHP třídou se pracuje velmi jednoduše. Podívejte se!

Pro připojení této třídy k FIO bance potřebujete token, který získáte v internetovém bankovnictví (Informace o účtu → Správa účtu přes API → Nastavení API). Token si můžete vygenerovat buď pouze pro čtení, nebo pro čtení i zadávání transakcí.

Chraňte svůj soubor nebo uložená data s konfigurací k API proti jejich zneužití, zejména proti odcizení, okopírování apod. Zneužitím Vašich konfiguračních údajů (zejména tokenu) může jiná osoba předstírat Vaši identitu a zadávat pokyny Vaším jménem či získávat informace o pohybech. Zneužití souboru s konfigurací nebo dat Vám může způsobit škodu.

PHP třída využívá knihovny CURL, SSL a SimpleXML. Bez toho ji na svém serveru nerozjedete. Samozřejmostí jsou komentáře jednotlivých metod PHPDoc, díky kterým je použití třídy ještě snazší.

Podívejte se do podrobné dokumentace.

Quick start – stahování transakcí

Stažení transakcí za poslední měsíc:

require_once 'fioapi.class.php';
require_once 'fioapidownload.class.php';

try {
    $fioapi = new FioApi\FioApiDownload('TOKEN');
    $fioapi->downloadByPeriod(new DateTime('-1 month'), new DateTime());

    print_r($fioapi->getTransactions());

} catch (FioApi\FioApiException $e) {
    echo 'Exception '.$e->getCode().': '.$e->getMessage();
}

Vypíše se pole, které obsahuje všechny transakce (pohyby na účtu) za poslední měsíc. Pole vypadá podobně jako toto:

Array
(
    [0] => Array
        (
            [transactionId] => 3541843462
            [instructionId] => 4066058524
            [date] => DateTime Object
                (
                    [date] => 2013-10-05 00:00:00
                    [timezone_type] => 3
                    [timezone] => Europe/Prague
                )

            [amount] => -100
            [currency] => CZK
            [account] => 1234567890
            [accountName] =>
            [bankCode] => 0100
            [bankName] => Komerční banka a.s.
            [constantSymbol] => 1234
            [variableSymbol] => 1234
            [specificSymbol] =>
            [user_note] => uživatelská identifikace
            [message] =>
            [type] => Bezhotovostní platba
            [performed] =>
            [specification] =>
            [comment] => komentář
            [bic] =>
        )
    [1] => Array
        (
            ...
        )
)

Jednotlivé transakce samozřejmě můžeme procházet:

foreach($fioapi->getTransactions() as $transaction){
    echo($transaction['date']->format('d.m.Y')." ".$transaction['amount']."");
}

Quick start – zadávání transakcí

Zadání standardní domácí transakce. Zadávat naráz můžete i více transakcí, zadávat můžete i zahraniční nebo euro (Target2) transakce.

require_once 'fioapi.class.php';
require_once 'fioapiupload.class.php';

try {
    $fioapi = new FioApi\FioApiUpload('TOKEN');

    $transaction=new FioApi\DomesticTransaction();
    $transaction->setAccountFrom(2900072500)
                ->setAccountTo(2900072746)
                ->setBankCode(2010)
                ->setAmount(200)
                ->setCurrency('CZK')
                ->setDate(new Datetime());

    $result=$fioapi->addTransaction($transaction)
                   ->upload();

    print_r($result);


} catch (FioApi\FioApiException $e) {
    echo 'Exception '.$e->getCode().': '.$e->getMessage();
}

Výsledkem je následující pole:

Array
(
    [status] => ok
    [transactions] => Array
        (
            [0] => Array
                (
                    [status] => ok
                    [message] => OK
                )

        )

)

Následně stačí už jen potvrdit (podepsat) transakce v internetovém bankovnictví (Přehledy – K podpisu).

Zaujalo Vás to? Podívejte se do podrobné dokumentace: