Přejít na zadávání transakcí | Changelog | Přejít na hlavní stránku Fio API třídy
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).
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 (SimpleXML se používá jen pro karetní transakce). Samozřejmostí jsou komentáře jednotlivých metod PHPDoc, díky kterým je použití třídy ještě snazší.
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']."");
}
$fioapi = new FioApi\FioApiDownload('TOKEN');
Úprava ve verzi 2.2 – certifikát nemá opodstatnění při stahování transakcí
Pro stažení dat jsou připraveny metody začínající na „download“. Tyto metody data stáhnou, zatím je nevypisují.
$fioapi->downloadByPeriod(new DateTime('-1 month'), new DateTime());
Pozn.: Není možné zadávat konkrétní čas, bere se v úvahu pouze datum.
$fioapi->downloadLast();
$fioapi->downloadStatement(2014, 2);
$fioapi->downloadMerchant(new DateTime('-1 month'), new DateTime());
Pozn.: Není možné zadávat konkrétní čas, bere se v úvahu pouze datum. Získaná data v hlavičce i v getTransactions mají trochu jinou strukuru, než pohyby na účtu – vysvětleno dále
$fioapi->downloadLastStatement();
Pozn.: Data získáte v hlavičce (dále), po této metodě již nevoláte getTransactions()
Metody začínající na „get“ vrací stažená data. Tyto metody volejte až po stažení dat, jinak se logicky nic nevrátí (tedy vrátí se prázdný Array()).
$header=$fioapi->getHeader();
Výsledkem je pole v následující struktuře. Podrobné vysvětlivky jsou na konci této stránky.
Týká se metod downloadByPeriod, downloadLast, downloadStatement
Array
(
[accountId] => 1234567890
[bankId] => 2010
[currency] => CZK
[iban] => CZ12345678901234567890
[bic] => FIOBCZPPXXX
[openingBalance] => 1000.25
[closingBalance] => 2000.35
[dateStart] => DateTime Object
(
[date] => 2013-09-13 00:00:00
[timezone_type] => 3
[timezone] => Europe/Prague
)
[dateEnd] => DateTime Object
(
[date] => 2014-02-13 00:00:00
[timezone_type] => 3
[timezone] => Europe/Prague
)
[yearList] =>
[idList] =>
[idFrom] => 3537322837
[idTo] => 3572047687
[idLastDownload] =>
)
Týká se metody downloadMerchant
Array
(
[accountId] => 1234567890
[bankId] => 2010
[currency] => CZK
[iban] => CZ5020100000002900072500
[bic] => FIOBCZPPXXX
[dateStart] => DateTime Object
(
[date] => 2019-07-13 00:00:00.000000
[timezone_type] => 3
[timezone] => Europe/Prague
)
[dateEnd] => DateTime Object
(
[date] => 2020-07-13 00:00:00.000000
[timezone_type] => 3
[timezone] => Europe/Prague
)
)
Týká se metody downloadLastStatement
Array
(
[yearList] => 2020
[idList] => 1
)
$header=$fioapi->getTransactions();
Týká se metod downloadByPeriod, downloadLast, downloadStatement
Podrobné vysvětlivky jsou na konci této stránky.
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
(
...
)
)
Týká se metod downloadByPeriod, downloadLast, downloadStatement
Výpis pouze některých (zadefinovaných) hodnot každé transakce.
$header=$fioapi->getTransactionsSimple();
Výstupem je pole:
Array
(
[0] => Array
(
[amount] => 29
[currency] => CZK
[variableSymbol] =>
)
[1] => Array
(
...
)
K čemu to je dobré? Můžete jednoduše kontrolovat, zda byla nějaká platba připsána na účet:
$order=array('amount'=>79,'currency'=>'CZK','variableSymbol'=>368228316);
if(in_array($order,$fioapi->getTransactionsSimple())){
echo('zaplaceno');
}
Výchozí nastavení je, že jsou v tomto zjednodušeném výpisu částka, měna a variabilní symbol. Toto můžete změnit metodou, kterou volejte ideálně před stažením dat:
$fioapi->setArraySimple(array('amount','date'));
Podrobné vysvětlivky jsou na konci této stránky.
Array
(
[0] => Array
(
[operationId] => 8216165940
[orderId] => 9277937165
[date] => DateTime Object
(
[date] => 2020-10-05 00:00:00
[timezone_type] => 3
[timezone] => Europe/Prague
)
[amount] => 4700
[note] =>
[branchName] => Provozovna Ječná
[transactionId] => 28
[deviceId] => 00203O999999 1
[transactionDateTime] => DateTime Object
(
[date] => 2020-10-05 15:01:00
[timezone_type] => 3
[timezone] => Europe/Prague
)
[autorizationNumber] => 997476
[cardNumber] => 553553******5553
[transactionAmount] => 200
[transactionCurrency] => CZK
[type] => ON_US
[cardIssuer] => MASTERCARD
[totalFees] => 20
[fioFee] => 5
[interchangeFee] => 5
[cardAsosiationFee] => 10
[settlement] => true
[settlementDate] => DateTime Object
(
[date] => 2020-10-05 00:00:00
[timezone_type] => 3
[timezone] => Europe/Prague
)
)
[1] => Array
(
...
)
)
Nastavení zarážky slouží k označení transakce nebo dne, od kterého se budou stahovat transakce metodou downloadLast().
Označuje ID transakce, které bylo jako poslední úspěšně zpracováno při předchozím zpracování. Při následném použití metody downloadLast() se stáhnou transakce, které následují po označené transakci.
$fioapi->setLastId(1234567);
Označuje první den, které nebyl úspěšně zpracován. Při následném použití metody downloadLast() se stáhnou transakce, které proběhly v označený den a v následující dny.
$fioapi->setLastDate(new DateTime('-1 day'));
Výjimky odchytávejte přes FioApi\FioApiException. Častou výjimkou je časté stahování/zadávání transakcí. FIO banka umožňuje přístup do API s jedním tokenem pouze každých 30 sekund.
Metody můžete řetězit. Např.
print_r($fioapi->setLastId(3537322837)->downloadLast()->getTransactionsSimple());
proměnná | popis | příklad |
---|---|---|
accountId | číslo účtu | 1234562 |
bankId | číslo banky | 2010 |
currency | měna účtu dle standardu ISO 4217 | CZK |
iban | mezinárodní číslo bankovního účtu dle standardu ISO 13616 | CZ7820100000000001234562 |
bic | bankovní identifikační kód dle standardu ISO 9362 | FIOBCZPPXXX |
openingBalance | počáteční zůstatek na účtu na počátku zvoleného období | 123.20 |
closingBalance | konečný zůstatek na účtu na konci zvoleného období | 123.22 |
dateStart | počátek zvoleného období | objekt Datetime() |
dateEnd | konec zvoleného období | objekt Datetime() |
yearList | rok zvoleného výpisu | 2012 |
idList | číslo zvoleného výpisu | 1 |
idFrom | číslo prvního pohybu v daném výběru | 1158152824 |
idTo | číslo posledního pohybu v daném výběru | 1158152824 |
idLastDownload | číslo posledního úspěšně staženého pohybu | 1158152824 |
Podrobnější informace o formátu najdete na https://www.fio.cz/…ovnictvi.pdf
proměnná | popis | příklad |
---|---|---|
transactionId | jedinečné číslo ID pohybu | 1158152824 |
instructionId | číslo příkazu | 2102382863 |
date | datum pohybu | objekt Datetime |
amount | velikost přijaté/odeslané částky | 12225.25 |
currency | měna přijaté /odeslané částky dle standardu ISO 4217 | EUR |
account | číslo protiúčtu | 2212–2000000699 |
accountName | název protiúčtu | Béďa Trávníček |
bankCode | číslo banky protiúčtu | 2010 |
bankName | název banky protiúčtu | Fio banka, a.s. |
constantSymbol | konstantní symbol | 0558 |
variableSymbol | variabilní symbol | 1234567890 |
specificSymbol | specifický symbol | 1234567890 |
user_note | uživatelská identifikace | Nákup: PENNY MARKET s.r.o., Jaromer, CZ |
message | zpráva pro příjemce | Libovolný text, který se zobrazí příjemci platby |
type | typ operace | Platba převodem uvnitř banky |
performed | oprávněná osoba, která zadala příkaz | Béďa Trávníček |
specification | upřesňující informace k pohybu. Zpravidla to bývá kurz | 15.90 EUR |
comment | upřesňující informace | Hračky pro děti v PENNY MARKET |
bic | bankovní identifikační kód banky protiúčtu dle standardu ISO 9362 | UNCRITMMXXX |
Podrobnější informace o formátu najdete na https://www.fio.cz/…ovnictvi.pdf
proměnná | popis | příklad |
---|---|---|
operationId | jedinečné číslo pohybu karetní transakce | 8216165940 |
orderId | jedinečné číslo příkazu karetní transakce | 9277937165 |
date | datum provedení | objekt Datetime |
amount | suma transakcí v hromadné dávce | 4700 |
note | poznámka – upřesňující informace o transakci | Zaúčtování POS terminálů MasterCard, Operace ON-US |
branchName | identifikace pobočky | Provozovna Ječná |
transactionId | jedinečné identifikační číslo transakce | 28 |
deviceId | číslo zařízení – identifikace platebního terminálu/brány | 00203O999999 1 |
transactionDateTime | datum a čas transakce | objekt Datetime |
autorizationNumber | jedinečné autorizační číslo transakce | 997476 |
cardNumber | číslo karty ve zkráceném tvaru | 553553******5553 |
transactionAmount | objem dané transakce | 200 |
transactionCurrency | měna transakce dle standardu ISO 4217 | CZK |
type | typ transakce, ON_US – kartou Fio / DOMESTIC – českou kartou / FOREIGN – zahraniční kartou | ON_US |
cardIssuer | vystavitel karty | MASTERCARD |
totalFees | celkové poplatek spojený s transakcí | 20 |
fioFee | poplatek Fio spojený s transakcí | 5 |
interchangeFee | mezibankovní poplatek spojený s transakcí | 5 |
cardAsosiationFee | poplatek karetní asociace spojený s transakcí | 10 |
settlement | zaúčtování pohybu true/false | true |
settlementDate | datum zaúčtování | objekt Datetime |
Podrobnější informace o formátu najdete na https://www.fio.cz/…ovnictvi.pdf