Title
Create new category
Edit page index title
Edit category
Edit link
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
Recommended tracking strategy
Algoan recommends the following approach for production integrations:
- Redirect the user to the OB journey
- Wait for the redirect back to your application (see “Handle users after OB”)
- 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 :
curl -sS -X GET "https://api.algoan.com/v2/sessions/$SESSION_ID/session-data" \ -H "Authorization: Bearer $ACCESS_TOKEN"Here are the different state values :
| state value | What it means | What you should do |
|---|---|---|
| IN_PROGRESS | The user is currently in the OB journey | Wait. |
| SUCCESS | The user successfully completed the OB journey | Continue your flow. Wait for analysis webhook before fetching data. |
| EXIT | The user has left the OB journey | Offer a retry to the user or continue with an alternative to OB if you have one. |
| ERROR | The user has encountered an error | You 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. |
| EXPIRED | User has been inactive for more than 30 minutes | Create 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
curl -sS -X GET "https://api.algoan.com/v2/sessions/$SESSION_ID/session-data" \ -H "Authorization: Bearer $ACCESS_TOKEN"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
curl -sS -X GET "https://api.algoan.com/v2/customers/$CUSTOMER_ID" \ -H "Authorization: Bearer $ACCESS_TOKEN"How to use UserJourneyState correctly
| Use case | Recommended source |
|---|---|
| Debug a specific attempt | Session-level userJourneyState |
| Monitor live progression | Session-level userJourneyState |
| Build conversion funnels | Customer-level userJourneyState |
Values of userJourneyState
| userJourneyState value | Description |
|---|---|
| CUSTOMER_CREATED | The customer is created |
| STARTED | The user has arrived on TD |
| BANK_SELECTED | The user has selected a bank |
| QR_CODE_SCANNED | The user has scanned the QR code to continue the process on his mobile |
| AGGREGATION_STARTED | The user has been redirected to bank website/app |
| AGGREGATION_FINISHED_SUCCESS | The user has been redirected to TD successfully |
| AGGREGATION_FINISHED_ERROR | The user has been redirected to TD with error |
| FINISHED_SUCCESS | The user has been redirected to the defined redirect_uri after at least one successful aggregation. |
| FINISHED_ERROR | The user has been redirected to the defined redirect_uri without successful aggregation. |
| ANALYSIS_SUCCESS | The analysis has been created and completed |
| ANALYSIS_ERROR | The 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.