vitexsoftware / rbczpremiumapi
##### API Overview - Accounts list and balance - Transaction overview (also for saving accounts) - Payments import - Statement list and download - FX rates ##### Authentication Before making a call to Premium API, you need to register your app at our _Developer portal_. This is where you get the **
Package info
github.com/VitexSoftware/php-vitexsoftware-rbczpremiumapi
pkg:composer/vitexsoftware/rbczpremiumapi
Requires
- php: >= 8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- guzzlehttp/guzzle: ^7.10
- guzzlehttp/psr7: ^1.8 || ^2.4
- vitexsoftware/ease-core: ^1.49
Requires (Dev)
- ergebnis/composer-normalize: ^2.48
- ergebnis/php-cs-fixer-config: ^6.56
- friendsofphp/php-cs-fixer: ^3.89
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^8.0 || ^9.6
This package is auto-updated.
Last update: 2026-07-16 16:04:56 UTC
README
php client library for rbczpremiumapi
Installation & Usage
Requirements
Should with PHP 8+.
Composer
To install the bindings via Composer, add the following to composer.json:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/VitexSoftware/php-vitexsoftware-rbczpremiumapi.git"
}
],
"require": {
"vitexsoftware/php-vitexsoftware-rbczpremiumapi": "*@dev"
}
}
Then run composer install
Manual Installation
Download the files and include autoload.php:
<?php require_once('/path/to/Raiffeisenbank Premium API client library/vendor/autoload.php');
Getting Started
Example environment or contents of .env file for basic library configuration
CERT_FILE=examples/test_cert.p12
CERT_PASS=test12345678
XIBMCLIENTID=FbboLD2r1WHDRcuKS4wWUbSRHxlDloWL
API_DEBUG=True
Set the RBAPI_RATE_LIMIT_JSON_FILE to override default /tmp/rbczpremiumapi_rates.json
Set the RBAPI_RATE_LIMIT_LOCK_DIR to override the default directory (system temp dir) used for the per-certificate lock files that serialize concurrent requests.
When the RBAPI_RATE_WAIT_MODE is not set, the RateLimitExceededException is throwed. The 'true' value wait till the next day, to continue.
Please follow the installation procedure and then run the following:
<?php require_once(__DIR__ . '/vendor/autoload.php'); $apiInstance = new VitexSoftware\Raiffeisenbank\Api\DownloadStatementApi( // If you want use custom http client, pass your client which implements // `GuzzleHttp\ClientInterface`. // This is optional, Internal `ApiClient` will be used as default. // Else you must call setXIBMClientId($lientID) and $this->setSUIPAddress($clientPubIP) // methods to set API call properly new \VitexSoftware\Raiffeisenbank\ApiClient(['clientpubip'=> \VitexSoftware\Raiffeisenbank\ApiClient::getPublicIP() ,'debug'=>true]) ); $xRequestId = 'xRequestId_example'; // string | Unique request id provided by consumer application for reference and auditing. $acceptLanguage = 'acceptLanguage_example'; // string | The Accept-Language request HTTP header is used to determine document language. Supported languages are `cs` and `en`. $requestBody = new \VitexSoftware\Raiffeisenbank\Model\DownloadStatementRequest(); // \VitexSoftware\Raiffeisenbank\Model\DownloadStatementRequest try { $result = $apiInstance->downloadStatement( $xRequestId, $acceptLanguage, $requestBody, $pSUIPAddress); print_r($result); } catch (Exception $e) { echo 'Exception when calling DownloadStatementApi->downloadStatement: ', $e->getMessage(), PHP_EOL; }
API Endpoints
All URIs are relative to https://api.rb.cz
| Class | Method | HTTP request | Description |
|---|---|---|---|
| DownloadStatementApi | downloadStatement | POST /rbcz/premium/api/accounts/statements/download | |
| GetAccountBalanceApi | getBalance | GET /rbcz/premium/api/accounts/{accountNumber}/balance | |
| GetAccountsApi | getAccounts | GET /rbcz/premium/api/accounts | |
| GetBatchDetailApi | getBatchDetail | GET /rbcz/premium/api/payments/batches/{batchFileId} | |
| GetFxRatesApi | getFxRates | GET /rbcz/premium/api/fxrates/{currencyCode} | |
| GetFxRatesListApi | getFxRatesList | GET /rbcz/premium/api/fxrates | |
| GetStatementListApi | getStatements | POST /rbcz/premium/api/accounts/statements | |
| GetTransactionListApi | getTransactionList | GET /rbcz/premium/api/accounts/{accountNumber}/{currencyCode}/transactions | |
| UploadPaymentsApi | importPayments | POST /rbcz/premium/api/payments/batches |
Models
- CurrencyListSimple
- DownloadStatementRequest
- ExchangeRate
- ExchangeRateList
- GetAccounts200Response
- GetAccounts200ResponseAccountsInner
- GetBalance200Response
- GetBalance200ResponseCurrencyFoldersInner
- GetBalance200ResponseCurrencyFoldersInnerBalancesInner
- GetBalance401Response
- GetBalance403Response
- GetBalance404Response
- GetBalance429Response
- GetBatchDetail200Response
- GetBatchDetail200ResponseBatchItemsInner
- GetBatchDetail200ResponseBatchItemsInnerAccountInfo
- GetBatchDetail400Response
- GetStatements200Response
- GetStatements200ResponseStatementsInner
- GetStatements400Response
- GetStatementsRequest
- GetTransactionList200Response
- GetTransactionList200ResponseTransactionsInner
- GetTransactionList200ResponseTransactionsInnerAmount
- GetTransactionList200ResponseTransactionsInnerBankTransactionCode
- GetTransactionList200ResponseTransactionsInnerEntryDetails
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetails
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsInstructedAmount
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsReferences
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedParties
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesCounterParty
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesCounterPartyAccount
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesCounterPartyOrganisationIdentification
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesCounterPartyOrganisationIdentificationPostalAddress
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesCounterPartyPostalAddress
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesIntermediaryInstitution
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesIntermediaryInstitutionPostalAddress
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRelatedPartiesUltimateCounterParty
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRemittanceInformation
- GetTransactionList200ResponseTransactionsInnerEntryDetailsTransactionDetailsRemittanceInformationCreditorReferenceInformation
- GetTransactionList400Response
- ImportPayments200Response
- ImportPayments400Response
- ImportPayments413Response
- ImportPayments415Response
Authorization
All endpoints do not require authorization.
Rate Limiting
This library implements a rate limiting mechanism in the VitexSoftware\Raiffeisenbank\RateLimit namespace. It automatically tracks and respects API rate limits using response headers, and can pause or throw exceptions if limits are exceeded.
- RateLimiter: Handles rate limit logic and enforces waiting or error on limit exceed.
- RateLimitStoreInterface: Interface for storing rate limit state per client and window (second/day).
- SqlDialect: Interface for SQL dialects used in rate limit storage implementations.
ApiClient::send() recovers the HTTP response from Guzzle's RequestException on 4xx/5xx status codes (Guzzle's default http_errors behavior would otherwise throw before the 429 handling ever runs), so a 429 always reaches the rate-limit logic instead of leaking a raw Guzzle exception.
Rate limits are enforced per certificate. Since several independent processes (e.g. one per bank account under the same company certificate) can call the API concurrently using the same certificate, ApiClient::send() serializes the whole check-send-update cycle per certificate fingerprint with an exclusive file lock (RateLimiter::acquireLock()/releaseLock()), preventing concurrent processes from racing past each other's stale rate-limit counters and all landing in the same request window.
The rate limiting mechanism ensures compliance with the API's restrictions and helps prevent accidental overuse. See the source code in lib/RateLimit/ for details and extension options.
Tests
To run the tests, use:
composer install vendor/bin/phpunit
Author
About this package
This PHP package is automatically generated by the OpenAPI Generator project:
- API version:
1.1.20240910- Package version:
1.3.1
- Package version:
- Build package:
org.openapitools.codegen.languages.PhpClientCodegen
Library is Used by: