Track your users in Transaction Data

This page explains how to track a user’s progress during the Open Banking (OB) journey and how to determine when the journey is completed.

Tracking relies on two concepts:

  • Session state: the status of a single aggregation attempt (one journey run)
  • userJourneyState: the customer’s progress across the overall OB flow

Algoan recommends the following approach for production integrations:

  1. Redirect the user to the OB journey
  2. Wait for the redirect back to your application (see “Handle users after OB”)
  3. Use the session/customer status for monitoring and troubleshooting

Most integrators do not need to continuously poll state while the user is inside the journey.

Session and customer states are primarily useful for monitoring, product analytics, and fallback handling.

state property

A session represents one attempt to complete the OB journey.

You can retrieve a session state using the GET /session-data endpoint :

Bash
Copy

Here are the different state values :

state valueWhat it meansWhat you should do
IN_PROGRESSThe user is currently in the OB journeyWait.
SUCCESSThe user successfully completed the OB journeyContinue your flow. Wait for analysis webhook before fetching data.
EXITThe user has left the OB journeyOffer a retry to the user or continue with an alternative to OB if you have one.
ERRORThe user has encountered an errorYou can check stateErrors object in session-data for additional information on the error. You can offer a retry or continue with an alternative to OB if you have one.
EXPIREDUser has been inactive for more than 30 minutesCreate a new session and restart the journey.

userJourneyState property

userJourneyState describes where the user is in the Open Banking journey, independently of the technical session lifecycle.

It is exposed at two levels:

  • Session level: reflects the progression of a specific aggregation attempt
  • Customer level: reflects the progression of the most advanced session for the customer

Session-level

At session level, userJourneyState indicates how far the user progressed within that specific session.

This is useful when:

  • monitoring a live aggregation attempt
  • debugging a specific session
  • understanding why a session did not complete
Bash
Copy

The response includes both:

  • state (technical session lifecycle)
  • userJourneyState (functional journey progression)

Customer-level

At customer level, userJourneyState represents the most advanced journey state reached by the customer across all sessions.

It is derived from the customer’s sessions and:

  • does not decrease if a later session exits or fails earlier
  • reflects the best progression achieved so far

This is useful when:

  • building global funnels
  • deciding whether a user has already completed the OB journey
  • avoiding regression in user status
Bash
Copy

How to use UserJourneyState correctly

Use caseRecommended source
Debug a specific attemptSession-level userJourneyState
Monitor live progressionSession-level userJourneyState
Build conversion funnelsCustomer-level userJourneyState

Values of userJourneyState

userJourneyState valueDescription
CUSTOMER_CREATEDThe customer is created
STARTEDThe user has arrived on TD
BANK_SELECTEDThe user has selected a bank
QR_CODE_SCANNEDThe user has scanned the QR code to continue the process on his mobile
AGGREGATION_STARTEDThe user has been redirected to bank website/app
AGGREGATION_FINISHED_SUCCESSThe user has been redirected to TD successfully
AGGREGATION_FINISHED_ERRORThe user has been redirected to TD with error
FINISHED_SUCCESSThe user has been redirected to the defined redirect_uri after at least one successful aggregation.
FINISHED_ERRORThe user has been redirected to the defined redirect_uri without successful aggregation.
ANALYSIS_SUCCESSThe analysis has been created and completed
ANALYSIS_ERRORThe analysis has been created and error

We may add new states in the future, it's important that your implementation takes that into consideration

When is the Open Banking journey complete?

The Open Banking journey is considered complete when the session state is SUCCESS.

However, a successful journey does not mean that the transaction analysis is completed or successful.

It is possible to have:

  • state = SUCCESS
  • userJourneyState = ANALYSIS_ERROR

To know when transaction data is ready, Algoan recommends listening to the analysis_completed webhook.

See the Fetch analysis page for more information.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard
  Last updated