pavolbiely / tatrabanka-api
Tatra Banka - Open banking TB - REST API Client
dev-master
2018-01-27 13:28 UTC
Requires
- php: >=7.1
- nette/tester: 2.0.x
This package is auto-updated.
Last update: 2025-03-17 10:42:04 UTC
README
PHP REST API Client for Tatra Banka's Open Banking TB.
Sign up at developer.tatrabanka.sk to get access to the API.
Installation
Use composer to install this package.
Example of usage
Accounts API
Ask for the OAuth2 authorization
use TatraBankaApi\Accounts; $clientId = ''; $clientSecret = ''; $redirectUri = ''; $tb = new Accounts($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); header('Location: ' . $tb->getAuthorizationUrl());
Exchange the OAuth2 authorization code for an access token
use TatraBankaApi\Accounts; use TatraBankaApi\TatraBankaApiException; $clientId = ''; $clientSecret = ''; $redirectUri = ''; try { $tb = new Accounts($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); $tb->requestAccessToken($_GET['code']); // using authorization_code grand type } catch (TatraBankaApiException $e) { // ... }
General usage
use TatraBankaApi\Accounts; use TatraBankaApi\TatraBankaApiException; $clientId = ''; $clientSecret = ''; $redirectUri = ''; try { $tb = new Accounts($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); if ($tb->isAuthorized()) { // The operation provides the relevant data about bank customer's accounts in form of a list. print_r($tb->getAccounts()); // The operation provides the relevant data from a bank customer's account identified by IBAN. print_r($tb->postAccountInfo('SK0511000000002600000054')); // The list of financial transactions perfomed on a customer's bank account withing a date period. print_r($tb->postTransactions('SK0511000000002600000054', Accounts::STATUS_ALL, new \DateTime('-1 month'), new \DateTime('now'), 1, 10)); } } catch (TatraBankaApiException $e) { // ... }
Payments API
Get the OAuth2 access token and prepare the payment instructions
use TatraBankaApi\Payments; use TatraBankaApi\PaymentAmount; use TatraBankaApi\PaymentParticipant; use TatraBankaApi\TatraBankaApiException; $clientId = ''; $clientSecret = ''; $redirectUri = ''; try { $tb = new Payments($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); $tb->requestAccessToken(); // using client_credentials grand type $debtor = new PaymentParticipant('John Doe', 'SK0511000000002600000054'); $creditor = new PaymentParticipant('John Doe', 'DE89370400440532013000'); $amount = new PaymentAmount(100.15); $response = $tb->postPaymentSba(md5(uniqid('', true)), $debtor, $creditor, $amount, new \DateTime('tomorrow'), new \DateTime('now'), '/VS123/SS456/KS0308', 'Test'); $authUrl = $tb->getAuthorizationUrl(['orderId' => $response->orderId]); header('Location: ' . $authUrl); exit; } catch (TatraBankaApiException $e) { // ... }
Exchange the OAuth2 authorization code for an access token and submit the payment
use TatraBankaApi\Payments; use TatraBankaApi\TatraBankaApiException; $clientId = ''; $clientSecret = ''; $redirectUri = ''; try { $tb = new Payments($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); $tb->requestAccessToken($_GET['code']); // using authorization_code grand type print_r($tb->postPaymentSubmission()); } catch (TatraBankaApiException $e) { // ... }
Get payment status
use TatraBankaApi\Payments; use TatraBankaApi\TatraBankaApiException; $clientId = ''; $clientSecret = ''; $redirectUri = ''; $orderId = ''; // order ID is generated by the postPaymentSba method try { $tb = new Payments($clientId, $clientSecret, $redirectUri); $tb->useSandbox(true); $tb->requestAccessToken(); // using client_credentials grand type print_r($tb->getPaymentStatus(['orderId' => $orderId])); } catch (TatraBankaApiException $e) { // ... }
How to run tests?
Tests are build with Nette Tester. You can run it like this:
php -f tester ./ -c php.ini-mac --coverage coverage.html --coverage-src ../src
Minimum requirements
- PHP 7.1+
- php-curl
License
MIT License (c) Pavol Biely
Read the provided LICENSE file for details.