Back to all articles Payments

Open banking data freshness: an enterprise control architecture

Open banking data freshness should be defined by the action the data needs to support. This architecture helps enterprise teams control retrieval, lineage, stale evidence and downstream decisions.

Asima
Open banking data freshness: an enterprise control architecture

Define freshness as a business decision

An Open Banking connection can be active while its latest usable evidence is too old for the next business action. A balance shown in a budgeting dashboard, a transaction used in affordability analysis and an account record feeding reconciliation can each tolerate a different delay. They can also need different evidence about completeness and finality.

Start with the decision that depends on the data. Define the maximum acceptable age, the source fields that must be present, the transaction states that are permitted and the response when those conditions fail. This becomes the freshness budget for that use case.

A useful policy answers four questions:

  • which business action will consume the data;
  • which source timestamp and record state support that action;
  • how old or incomplete the evidence may become; and
  • whether the service should continue, pause, ask the user to refresh or send the case for review.

The threshold belongs to the use case. A customer-facing balance may need a visible update time and a manual refresh path. A low-risk analytical trend may use an older snapshot with clear labelling. A financially consequential decision may require a recent retrieval, defined transaction coverage and an explicit stop when those conditions cannot be proved.

Separate the clocks carried by account data

Freshness becomes manageable when the system records each relevant clock separately.

The request time shows when the enterprise or its provider asked for data. The receipt time shows when the complete response arrived. Together, they describe acquisition latency and make a timeout or partial page visible.

The source time describes the financial record itself. In the Open Banking v4.0.1 balance resource, 'DateTime' indicates the date and time of the balance.¹ For a booked transaction, BookingDateTime records when the entry was posted to the account. For an unbooked transaction, it carries the expected booking date. The field can differ from when the underlying transaction took place.²

The state time records when the enterprise last observed a change in status, mutability or content. Pending transactions are mutable. A booked transaction can also be marked mutable, so the latest retrieved version may still change.²

The consent time describes whether access remains permitted and which data clusters the user authorised. Open Banking Account Information Services depend on explicit consent and the agreed permissions.³

Store these clocks as evidence. Avoid replacing them with one generic 'updated_at' value. A single timestamp cannot explain whether the source changed, the platform fetched again, the connection remained authorised or the record became final.

Set a freshness budget for each use case

A freshness budget combines age, completeness and finality. It should be approved before engineering chooses a polling interval.

For each use case, identify the decision owner and document:

  • the maximum age of the latest successful retrieval;
  • the required source timestamp and acceptable clock skew;
  • the transaction states and mutability values that may be used;
  • the required account, balance, transaction and pagination coverage;
  • the behaviour for partial, delayed, rate-limited or unauthorised results; and
  • the customer message and operator route when the budget expires.

The budget should also define the validity period of a successful check. A decision made now may still be executed later. The system needs to know whether the evidence remains usable at execution time or must be refreshed.

Version the policy. Changes to a threshold can affect conversion, operational workload, risk and API demand. The record for each decision should identify the policy version that permitted it.

Separate connection health from data currency

Connection state answers whether access can be attempted. Data currency answers whether the evidence is recent and complete enough for its purpose. Both need their own status.

A connection may remain authorised while a bank interface is unavailable, a provider queue is delayed, a refresh job is rate-limited or one page of transactions fails. Do not infer continued processing rights from connection status. Decide whether previously obtained data may still be used through the firm's lawful basis, customer terms, processing purpose and retention policy.

Open Banking customer guidance recommends showing when data was updated and warns that people can confuse a data update with a connection update. Its preferred language includes 'Date / time updated' or a clear elapsed time.⁴ That distinction should exist in the underlying model before it appears in the interface.

Represent connection health, retrieval outcome and evidence fitness separately. A compact state model might include 'connected', 'action_required' and 'disconnected' for access; 'complete', 'partial', 'failed' and 'rate_limited' for retrieval; and 'fresh', 'ageing', 'stale' and 'unknown' for the use-case evidence gate.

The retrieval policy must reflect how access is initiated. The FCA data-exchange rule allows an Account Information Service Provider (AISP) to access information whenever the payment service user actively requests it. When the user is absent, access is limited to four times in a 24-hour period unless the AISP and account servicing payment service provider agree a higher frequency with the user's consent. The rule also connects background access to consent reconfirmation within the previous 90 days.⁵

Four background accesses do not create a universal six-hour service promise. The requests may be scheduled around the customer's use case, account-provider behaviour and processing windows. A failed attempt, partial response or late-posting transaction can also leave the evidence outside the freshness budget.

Design the acquisition service around explicit triggers:

  • a user requests current information;
  • a scheduled refresh becomes due under the use-case policy;
  • an expiring freshness budget requires another permitted attempt;
  • an operator authorises recovery after a failure; or
  • a downstream action requests stronger evidence than the cache currently holds.

Each trigger should pass through consent, access-frequency, concurrency and provider-policy checks. Record why the request was permitted and whether the user was present.

Store lineage with every account snapshot

Data lineage makes freshness explainable. Keep the raw provider response or an auditable representation where the processing and retention policy allows it. Alongside the normalised record, preserve:

  • account, consent, provider and account-provider identifiers;
  • request, receipt and source timestamps;
  • correlation identifiers and retrieval attempt ID;
  • endpoint, API version, page and filter window;
  • transaction status, booking time and mutability;
  • completeness checks and any missing pages;
  • the freshness-policy version and computed evidence state; and
  • the reason for any blocked or degraded downstream action.

The Open Banking profile requires an 'x-fapi-interaction-id' response header, using the supplied value or one generated by the account provider.⁶ Carry that identifier into operational evidence. It can connect an internal retrieval attempt to provider or bank investigation without turning it into the business record's identity.

A normalised model should preserve raw source meaning. Keep provider-specific fields and codes when they affect status, timing or interpretation. Normalisation helps downstream teams work consistently, while lineage lets them return to the evidence when a mapping is disputed.

Reconcile mutable transaction records over time

Transaction ingestion is an update process. The Standard states that some fields may change before a transaction reaches an eventual immutable state. It identifies pending records as mutable and allows booked records to carry an explicit mutable value.²

Use a controlled overlap window when retrieving transactions. The window gives the system another chance to observe late records and changes to records seen previously. Its size should be based on measured account-provider behaviour and the business use case.

Merge records through stable identifiers where they exist. Where an identifier is conditional or changes across states, retain the source versions and use a documented match policy. Amount, booking time and description can support a candidate match. They rarely provide sufficient proof on their own when several similar transactions are possible.

Changes should remain visible. Record the previous value, new value, observation time and matching evidence. When a mutable transaction has already influenced a downstream decision, route the change to the team that owns the consequence.

The open banking payment reconciliation architecture provides the related financial-control model. Freshness determines whether the current evidence may be used. Reconciliation determines how that evidence is matched, posted and resolved.

Treat refresh as a controlled workload

At enterprise scale, refresh is a scheduling and capacity problem. Cohorts can align around payroll dates, reporting periods, lending checks or customer login patterns. A scheduler should distribute that demand across time and protect shared workers from one degraded institution or provider.

The Open Banking profile documents HTTP 429 for excessive requests. It also defines optional 'Retry-After' and rate-limit headers, while directing implementers to account-provider developer portals for policy details.⁶ Respect those signals. Add bounded retries with jitter, account-level concurrency controls and a circuit breaker for repeated failures.

Pagination belongs inside the completeness boundary. A successful first page cannot establish a complete transaction window when later pages fail. Track the expected sequence, received pages and final watermark. Commit the snapshot only when its required coverage is complete, or store it explicitly as partial.

The August 2026 dashboard from Open Banking Limited reports 2,971.3 million successful API calls, a 99.56 per cent successful-call rate and a 324 millisecond average response time. Its response-time data for the month came from nine providers and 19 brands.⁷ Those figures show the scale of the underlying interfaces. An enterprise still needs its own measures for provider processing, page completion, normalisation, cache age and downstream delivery.

Gate downstream action by evidence state

Compute freshness at the moment of use. A snapshot that passed when stored may cross its age limit before a later job consumes it.

The evidence gate should evaluate the use-case policy against retrieval outcome, source time, consent state, record mutability and completeness. Return an explicit result such as 'permitted', 'permitted_with_disclosure', 'refresh_required', 'manual_review' or 'blocked'.

Keep the decision deterministic and auditable. Record every input, the policy version and the result. A downstream service should consume the gate rather than recreate freshness logic from a timestamp.

Choose the fallback deliberately. A dashboard may display the last known balance with a clear update time. An affordability decision may pause for a user-present refresh. A reconciliation process may place an item in an owned exception queue. A customer-support view may show both the last complete snapshot and the current retrieval incident.

The open banking consent management architecture supplies the access-state foundation. The evidence gate should consume consent status without treating it as proof of currency.

Discovery call
Planning an open banking project?
Speak to Asima about infrastructure, compliance, commercial models and delivery options.

Explain freshness clearly to users

People need enough information to judge the evidence they are seeing. Show the date and time of the last complete update. Use a status that matches the data state, and give the next available action when the evidence is delayed.

Avoid promising real-time data unless the complete path has been measured and the promise can be met. Explain when a pending transaction may change. If a user-present refresh is required, state what it will update and whether authentication may be needed.

Open Banking data-management guidance emphasises clarity, control and transparency throughout the data lifecycle. It also says the guidance creates no new legal obligations and points firms to the underlying requirements.⁸ Use it to strengthen product communication alongside the firm's own legal and regulatory assessment.

Monitor data fitness across the full journey

Transport success is one measure. Data fitness needs a wider set.

Track snapshot age at use, source-time lag, partial-page rate, mutable-record change rate, background-access consumption, user-refresh completion, rate-limit incidence, stale-data blocks and time to recover a usable snapshot. Segment the measures by account provider, provider route, endpoint, product journey and customer cohort.

Define service-level objectives around the customer outcome. A high API success rate can coexist with stale evidence when scheduled work is delayed or downstream processing fails. Conversely, a temporary retrieval incident may have limited customer impact when a valid cached snapshot remains inside the use-case budget.

Use the Open Banking API testing strategy to turn these measures into acceptance gates and regression scenarios. Where more than one provider is used, the multi-provider routing architecture can preserve route-specific acquisition evidence and common downstream controls.

Test stale-data paths before launch

Test the service with delayed balances, pending transactions that change, booked transactions marked mutable, expired freshness budgets, partial pagination, consent expiry, 401 responses, 429 responses, timeouts and a provider recovery that returns older data than the current cache.

Verify every downstream action. A dashboard should display the correct update time. An automated decision should pause when its evidence gate fails. An operator should see the source, age, completeness and next permitted recovery step. Audit evidence should show which policy version produced the result.

Include sustained-load tests for refresh cohorts and recovery surges. Confirm that retries remain bounded and that one slow institution cannot exhaust the shared queue. Test clock skew, daylight-saving changes and time-zone conversion around policy boundaries.

Provider contracts and proof-of-concept evidence should support the operating design. The open banking provider RFP scorecard explains how to turn test evidence, service commitments and exit readiness into an enforceable selection.

Assign ownership and introduce controls in stages

Give freshness policy a named product owner. Engineering should own acquisition and lineage controls. Operations should own stale-data incidents and recovery queues. Risk, compliance, finance or credit teams should approve the thresholds that affect their decisions. Customer-support teams need a readable explanation of the current evidence state.

Begin with one consequential use case and one complete source-to-action path. Capture all clocks and lineage without changing customer behaviour. Measure the existing age distribution and failure modes. Add the evidence gate in observation mode, compare its decisions with current operations, then introduce blocking or disclosure controls through a monitored cohort.

Review the policy when the use case, provider, account coverage, Standard, access rules or downstream risk changes. Freshness is part of the product contract. Once its evidence and actions are explicit, teams can improve speed without losing control over what the data can safely support.

Footnotes

  1. Open Banking Limited, Balance resource and `DateTime` field in v4.0.1. Balances v4.0.1
  2. Open Banking Limited, transaction booking time and mutability guidance in v4.0.1. Transactions v4.0.1
  3. Open Banking Limited, explicit consent and permission clusters for Account Information Services. Account Information Services
  4. Open Banking Limited, customer-facing language for data update times and connections. Common Terminology: Preferred Terms and Language
  5. Financial Conduct Authority, user-present and background account-information access conditions. Article 36 Data exchanges
  6. Open Banking Limited, correlation, user-presence and rate-limit behaviour. Open Banking Read-Write API Profile v4.0.1
  7. Open Banking Limited, August 2026 account-provider API performance reporting. API performance stats
  8. Open Banking Limited, customer clarity, control and transparency across the data lifecycle. Data management
Payments