Skip to content

PERLUR/php-fio-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fio API PHP implemention Build Status Build Status Windows

Latest Stable Version Total Downloads License Coverage Status

Fio bank REST API implementation in PHP. It allows you to download and iterate through account balance changes.

There is a Symfony Bundle for using this library in a Symfony app.

Usage

  1. Install the latest version with composer require mhujer/fio-api-php
  2. Create a token in the ebanking (Nastavení / API)
  3. Use it according to the example bellow and check the docblocks

Downloading

<?php
require_once 'vendor/autoload.php';

$downloader = new FioApi\Downloader('TOKEN@todo');
$transactionList = $downloader->downloadSince(new \DateTime('-1 week'));

foreach ($transactionList->getTransactions() as $transaction) {
    var_dump($transaction); //object with getters
}

Uploading

Domestic payment (in Czechia)

<?php
require_once 'vendor/autoload.php';

$token = get_your_fio_token();
$uploader = new FioApi\Uploader($token);
// currency, iban, bic is not needed
$account = new FioApi\Account('XXXXXXXXXX', 'ZZZZ', NULL, NULL, NULL);
$tx = Transaction::create((object) [
    'accountNumber' => 'YYYYYYYYYY',
    'bankCode' => 'WWWW',
    'date' => new \DateTime('2016-07-20'),
    'amount' => 6.66,
    'currency' => 'CZK',
    'userMessage' => 'money wasting',
    'comment' => 'fioapi.test'
]);

$builder = new FioApi\DomesticPaymentBuilder();
$request = $builder->build($account, [$tx]);
$response = $uploader->sendRequest($request);

echo $response->getStatus();

European payments

<?php
require_once __DIR__ . '/../vendor/autoload.php';

$token = get_your_fio_token();
$uploader = new FioApi\Uploader($token);
$account = new FioApi\Account('XXXXXXXXXX', 'YYYY', null, null, null);
$tx = FioApi\Transaction::create((object) [
    'accountNumber' => 'XXXXXXXXXXXXXXXX',
    'bankCode'      => 'WWWWWWWWWW',
    'date'          => new DateTime('2016-05-30'),
    'amount'        => 66.5,
    'currency'      => 'EUR',
    'userMessage'   => 'Donation for poor ones',
    'comment'       => 'fioapi.test',
    'benefName'     => 'Something Finland Oy',
    'benefCountry'  => 'FI',
]);

$builder = new FioApi\EuroPaymentBuilder();
$request = $builder->build($account, [$tx]);
$response = $uploader->sendRequest($request);

echo $response->getStatus();
echo "\n";

International payments (outside EU)

<?php
require_once __DIR__ . '/../vendor/autoload.php';

$token = get_your_fio_token();
$uploader = new FioApi\Uploader($token);
$account = new FioApi\Account('XXXXXXXXXX', 'YYYY', null, null, null);
$tx = FioApi\Transaction::create((object) [
    'accountNumber' => 'XXXXXXXXXXXXXXXX',
    'bankCode'      => 'WWWWWWWWWW',
    'date'          => new DateTime('2016-05-30'),
    'amount'        => 2,
    'currency'      => 'USD',
    'userMessage'   => 'Donation for homelesses at 6th Street',
    'comment'       => 'fioapi.test',
    'benefName'     => 'John Doe',
    'benefStreet'   => '6th Street',
    'benefCity'     => 'San Francisco, CA',
    'benefCountry'  => 'US',
]);

$builder = new FioApi\InternationalPaymentBuilder();
$request = $builder->build($account, [$tx]);
$response = $uploader->sendRequest($request);

echo $response->getStatus();
echo "\n";

Requirements

Fio API PHP works with PHP 5.5, PHP 5.6 or PHP 7.

Submitting bugs and feature requests

Bugs and feature request are tracked on GitHub

Author

Martin Hujer - mhujer@gmail.com - https://www.martinhujer.cz

Changelog

2.2.0 (2016-03-13)

2.1.0 (2016-03-12)

  • #1: updated default GeoTrust certificate (@soukiii)
  • #1: added specification field in transaction (@soukiii)

2.0.0 (2015-06-14)

  • upgraded to Guzzle 6
  • support for PHP 5.4 dropped (as Guzzle 6 requires PHP 5.5+)

1.0.3 (2015-06-14)

  • updated root certificate (Root 3) as the Fio changed it on 2014-05-26

1.0.0 (2015-04-05)

  • initial release