API Limitations
Parallel command limit
Kontomatik API enforces a limit on the number of simultaneous command executions across various endpoints. The following commands share the same execution pool:
- Default Import Command
- Reuse Multiple Access
- Owner Upload Command
- PDF Parsing Commands (Statements and Confirmations Parsing)
- Advanced Import Commands (deprecated) (each command counts separately)
At any given time, only 8 of these commands may be actively processed. If your system attempts to initiate more than 8 of such commands in parallel, the API will reject the request with the JobsQuotaExceeded error.
This limitation is in place to:
- protect the platform from excessive load;
- detect integration issues, such as duplicated or unnecessary import calls;
- prevent accidental command spamming caused by misconfigured scheduling logic;
- address restrictions imposed by the bank’s throughput.
In most production integrations, this limit does not cause operational issues - even with large user volumes - as long as the import flow is queued or staggered properly.
Best practices
To avoid hitting the JobsQuotaExceeded limit:
- implement a command queue that ensures no more than 8 import-related commands are running at the same time;
- distribute command execution over time instead of triggering imports in bulk;
- monitor active job count, and delay or defer commands if the system is near the concurrency limit;
- retry the same request after a short delay (e.g. 10–15 seconds);
- if needed, progressively increase the delay between retries, but make sure to not repeat requests indefinitely;
- avoid immediate retries after a failure, as they are likely to be rejected again.
PDF Parsing constraints
Limitations described in this section apply primarily to Statements Parsing. Transaction Confirmations Parsing, contain only a single transaction and are much smaller in size - in practice, they rarely cause issues related to file size, timeout, or parser limits.
Limits
- Max file size: 25 MB
- Connection timeout: 2 minutes
- Average parser throughput: ~350 transactions per second (varies by bank and file structure)
Large files may fail even if under the size limit, especially when they contain complex formatting or thousands of transactions. Parsing time is influenced by layout consistency, bank-specific formats, and file origin.
Best practices
- Avoid uploading merged or scanned documents.
- Queue PDF uploads to stay within the concurrency limits. Each API request containing a PDF counts toward the 8-command execution cap, and starting too many at once may result in a
JobsQuotaExceedederror. - In case of timeout or job quota errors, retry the request after a short delay. If the issue persists, gradually increase the delay between attempts.
Daily token imports limit (Multiple Access)
In compliance with PSD2 regulation, a data import for a given bank account may be triggered up to 4 times per 24-hour period.
This limit applies per bank account, and if the same account is accessed using Multiple Access tokens, the 4-request limit is shared across all of them.
Once this limit is reached, any further attempt to initiate a session via ReuseMultipleAccess will be rejected with the MultipleAccessLimitExceeded error.
- This limit is enforced by the bank and cannot be bypassed.
- Retrying the request will not succeed until 24 hours have passed from the 4th to last import attempt.
- The limit may include both successful and failed import attempts, depending on bank implementation.
Best practices
To avoid reaching the session and command execution limits:
- Implement a queue or scheduler to control the number of active imports at any given time.
- Stagger or sequence Reuse Multiple Access calls and their resulting imports, especially when handling large batches of users.
- Avoid triggering imports for the same bank account via multiple tokens at once.
- Avoid calling Reuse Multiple Access and then Default Import Command in parallel, all of them count toward the shared limit of 8 simultaneous command executions. Reaching this limit will result in the
JobsQuotaExceedederror.
If a MultipleAccessLimitExceeded error is returned:
- Do not retry immediately - the limit is enforced for 24 hours and cannot be bypassed.
- Suppress retries for the affected user until the 24-hour window resets.