Skip to navigation

Get Session Results

View as Markdown

Retrieve what the session connected: your customer’s financial position, the banks it came from, and the consent behind it.

What you get:

  • data — the financial position, in the same shape as the Direct Executions global position: one list per family you asked for (accounts, cards, deposits, loans, investments, direct debits) and the customer profile. A family you did not ask for is absent.
  • Documents a bank delivered sit inside the record they belong to — the receipt under a direct debit, in its attachments — and each one downloads with Download Attachments.
  • connections — each bank connection that finished, by connection id, with the engine that ran it. Only finished connections count: data never includes what a connection still running has read so far.
  • retrieved_features — the features those connections delivered.
  • consent — what your customer agreed to and the proof of it.
  • messages — what the session found while it ran (below).

Key technical details:

  • 200 or 202. 200 means the session is finished and these results are final; 202 means it is still open, and the body — the same shape — holds what the finished connections returned so far.
  • One gate for the data. data and retrieved_features are served while the session is open or once it ended COMPLETED. A session that ended any other way has no data, and its retrieved_features is empty; its messages are always served.
  • Not started (412). An open session your customer has not opened yet has nothing to read. A session that closed without being opened answers with its final results.
  • Rate limit (429). One read every 5 seconds per session.
  • Concurrency lock (504). The read holds the session; if it cannot within a few seconds, retry.

The customer profile, and identities that do not agree

The profile is the one the first connection returned. Your customer chooses their own credentials for each bank, so two banks may describe different people — a shared account, a relative’s login. When another connected bank disagrees about who your customer is, the session raises a crossed_identity flag at ["data", "customer", "profile"] and a profile_identity_mismatch warning: the profile is still the first one, and the flag is what tells you the banks were not unanimous. Route it to whatever decides when a case needs a second look.

messages

FieldWhat it is
typeflag, warning, error or info
message_idThe stable name of the situation — automate on this, never on the wording
locationWhere in this document the message applies, as a loc list; empty for the session as a whole
messageA human-readable description, when there is one
date_createdWhen it was first detected

A flag never means something failed on our side: it is something about your customer or their data that deserves a decision on yours. warning and error describe how the reading went.

This endpoint needs to be executed with an app secret, so should always be used in server side without exposing the secret to customers.

Authentication

X-APP-SECRETstring
Application Secret

Path parameters

session_idstringRequiredformat: "object-id"
The session, as its creation returned it

Response

200 OK
FINAL results: the session is finished and nothing more is coming.

is_closedboolean

Whether the session is over. false means these are the results gathered so far, and more may come.

status_codeenum
The status of the session.
cursorenum
The last screen the end user reached.
Allowed values:
connectionsmap from strings to strings

The entities that connected, by execution id, with the engine that read each one. Only connections that finished are listed; with tokenized_access, these are the ids to exchange the ticket with.

consentobjectOptional
What the end user consented to, and the proof of it. Absent when the session showed no consent screen.
retrieved_featureslist of enumsOptional
The features some connection actually delivered.
dataobjectOptional

Everything the connections read, merged into one financial position. Absent when the session ended without results: cancelled by the end user, failed or timed out.

messageslist of objectsOptionalDefaults to []

What the session has to say about itself and about the data it read, oldest first. Most sessions say nothing. A situation is reported once however many times it occurred: automate on message_id, and treat message as text for a person.

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
412
Precondition Failed Error
422
Unprocessable Entity Error
429
Too Many Requests Error
504
Gateway Timeout Error