Download the PHP package vitexsoftware/rbczpremiumapi without Composer
On this page you can find all versions of the php package vitexsoftware/rbczpremiumapi. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download vitexsoftware/rbczpremiumapi
More information about vitexsoftware/rbczpremiumapi
Files in vitexsoftware/rbczpremiumapi
Package rbczpremiumapi
Short Description ##### 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 **ClientID** that your application must send in the request as `X-IBM-Client-Id`. This is the key that grants your app access to the API. However, this may not be enough. Your application needs to use mTLS to call most operations here. Thus, you not only need _https_ but also a client certificate issued by us. The exception is two operations for FX rates that are accessible also without a client certificate. Each bank client/user can issue several certificates. Each certificate can permit different sets of operations (http methods) on different bank accounts. All this must be configured in Internet Banking first by each bank client/user (bank clients need to look under _Settings_ and do not forget to download the certificate at the last step). The certificate is downloaded in **PKCS#12** format as **\*.p12** file and protected by a password chosen by the bank client/user. Yes, your app needs the password as well to get use of the **\*p12** file for establishing mTLS connection to the bank. Client certificates issued in Internet Banking for bank clients/users have limited validity (e.g. **5 years**). However, **each year** certificates are automatically blocked and bank client/user must unblock them in Internet Banking. It is possible to do it in advance and prolong the time before the certificate is blocked. Your app should be prepared for these scenarios and it should communicate such cases to your user in advance to provide seamless service and high user-experience of your app. ##### Rate Limiting The number of requests in each API operation is limited to 10 per client per sliding second and 5000 per client per sliding day. The exception is the 'Download Statement' operation with the limits lowered to 5 per client per sliding second and 1500 per client per sliding day. This is because it transports potentially sizeable binary files. The consumer must be able to handle HTTP status 429 in case of exceeding these limits. Response headers `X-RateLimit-Limit-Second` and `X-RateLimit-Limit-Day` show the actual limits configured for the specific operation. Response headers `X-RateLimit-Remaining-Second` and `X-RateLimit-Remaining-Day` are returned to help prevent the limits from being exceeded. ##### Notes Be aware, that in certain error situations, API can return specific error structures along with 5xx status code, which is not explicitely defined below. ##### Quick Start Client Feel free to download a simple Java client that gives you quick access to our API.
License MIT
Homepage https://github.com/VitexSoftware/php-vitexsoftware-raiffeisenbank
Informations about the package rbczpremiumapi
Raiffeisenbank Premium API client library
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:
Then run composer install
Manual Installation
Download the files and include autoload.php:
Getting Started
Example environment or contents of .env file for basic library configuration
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 waits for the window to reset, up to RBAPI_RATE_MAX_WAIT_SECONDS (see below).
RateLimitExceededException extends ApiException, so any code that already catches ApiException around API calls catches rate-limit errors too, with getCode() === 429.
Set RBAPI_RATE_MAX_WAIT_SECONDS (default 300) to cap how long wait mode will ever sleep() for. The day-window reset can be up to 24h away; without a cap, wait mode would block the caller for that long. When the required wait exceeds this cap, RateLimitExceededException is thrown instead, even in wait mode.
Set RBAPI_GLOBAL_RATE_LIMIT_PER_SECOND (or pass global_rate_limit_per_second in the client config) to cap requests per second host-wide, across all certificates sharing the rate limit store — not just the one making the current request. This is disabled by default (0). It exists because RB's rate-limit response headers only ever report the remaining quota for the certificate that made the request: if the gateway enforces a shared limit above the per-certificate level (e.g. per source IP or per account-holder), many certificates can each still show plenty of per-certificate headroom while collectively exceeding that shared limit — none of them can see it coming from the headers alone. This setting is a client-side, self-tracked cap (counted by the library itself, not derived from RB's headers) rather than a fix for a specific documented RB limit, so pick a conservative value for your deployment.
Please follow the installation procedure and then run the following:
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.
Per-certificate enforcement has a blind spot: it can't see a rate limit the gateway enforces above the certificate level (e.g. per source IP or per account-holder), since RB's response headers only ever report the calling certificate's own remaining quota. RateLimiter::checkGlobalBeforeRequest() closes that gap with an opt-in, self-tracked host-wide cap (RBAPI_GLOBAL_RATE_LIMIT_PER_SECOND, see above) — counted locally by the library across all certificates sharing the store, independent of what any single certificate's headers report.
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:
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:
All versions of rbczpremiumapi with dependencies
ext-curl Version *
ext-json Version *
ext-mbstring Version *
guzzlehttp/guzzle Version ^7.4
guzzlehttp/psr7 Version ^1.8 || ^2.4
vitexsoftware/ease-core Version ^1.49