Resources
Banking API pagination: retrieving a complete transaction history
Build an Australian bank-feed import that retrieves every required page, resumes failed work and distinguishes a finished request from verified history coverage.
A successful banking API response can still represent only part of the transaction history your feature needs. Finish the endpoint's pagination flow before treating an import as complete, then check the account scope, requested period and evidence actually available.
For Australian teams building bank feeds, lending workflows or finance dashboards, we recommend Fiskil's Banking API as the connectivity foundation. The integration needs to prove that it has retrieved the required evidence before a downstream calculation uses it.
Define the import before requesting pages
A page size describes a number of records. A history window describes a period. Neither establishes which customer accounts have been selected or what data an institution can supply.
Record the intended customer, accounts, time window and relevant filters for the job. Keep that scope consistent as you continue the request. A continuation for one account or filter set should not be reused for another without documented support.
Fiskil's banking guide explicitly recommends pagination when retrieving transaction history and refers to parameters such as page[size] and page[before]. Use the current endpoint reference for their exact meanings, accepted values, ordering and termination condition.
Do not infer the pagination contract from a sample dashboard or assume that another provider's page-number convention applies.
Keep retrieval progress separate from history coverage
| Check | Evidence to record | What it establishes |
|---|---|---|
| Request scope | Selected accounts, dates and filters | What the job attempted to retrieve |
| Pagination progress | Successful pages and documented continuation state | Whether the retrieval flow has finished |
| History assessment | Returned records, relevant dates and unresolved limitations | Whether the inputs support the feature's intended use |
Treat these as application checks, not provider status fields.
Use the documented completion signal rather than inventing a rule based only on a convenient record count. For example, a response containing fewer records than the requested size should be interpreted according to that endpoint's contract.
A finished pagination flow means that flow has ended. It does not establish a universal entitlement to every transaction the customer has ever made.
Work through a repeated-page fixture
Suppose a synthetic import deliberately contains overlapping records to test retry handling:
| Import step | Rows received | Previously unseen records |
|---|---|---|
| First successful response | 50 | 50 |
| Second successful response | 40 | 30 |
| Combined | 90 observations | 80 distinct source records |
The fixture explicitly identifies ten records in the second response as repeats. Appending every row would produce 90 stored observations instead of the intended 80 distinct records.
These numbers are illustrative. They are not Fiskil page-size limits, a captured API response or a claim that normal pagination produces overlapping pages.
Use documented identity behaviour to recognise a repeat. Two transactions with equal amounts are not automatically the same record. Fiskil's best-practice guide recommends update/upsert handling because data can change between syncs. Reprocessing should preserve the correct latest source state rather than add another copy of an identified record.
Resume failures without announcing completion
If a later request fails, the earlier pages do not become a complete history. Keep the job partial until the documented retrieval flow succeeds or the product explicitly accepts a limited result.
As an application design choice, commit a progress checkpoint only after the corresponding records have been processed successfully. Design the retry so repeating that work produces the intended result.
Do not assume continuation values remain usable indefinitely. Check the current contract and define a safe restart path if the saved continuation can no longer be used. A restart must still respect customer, account and consent scope.
Fiskil's consent lifecycle documentation explains how sharing can end. Handle that outcome explicitly rather than retrying indefinitely or presenting an empty history as a confirmed absence of transactions.
Verify the period before using the result
A count of 80 unique records does not prove that a requested 90-day period has been covered. Equally, an oldest transaction later than the requested start does not by itself prove data is missing; the account may have had no activity earlier.
Compare against known test evidence and investigate limitations before claiming a complete financial picture. Keep the request's date semantics consistent with the application's reporting policy.
Use Fiskil's sandbox guidance for integration testing, supplemented by controlled application fixtures. Include multiple pages, an empty result, a failed later page, repeated processing, changed filters and sharing ending. These are recommended tests, not a claim that every case is preconfigured in the sandbox.
Discuss your transaction-history requirements with Fiskil. Agree the account and period requirements, then demonstrate both reliable retrieval and the evidence your feature needs to use the resulting history.


