Consents / Insights Data Webhook

For general webhook mechanics (response requirements, security, IP whitelisting, troubleshooting), see Webhooks - Async Updates. This page covers the webhook events fired for the Account Information Service (AIS) — both the raw-data consent flow (ais/user) and the processed-insights flow (view_ais/user, i.e. VIEW).

Consent lifecycle events

A consent (ais/user or view_ais/user) fires several distinct events over its lifetime, not just one status-change event. All share the same base payload — user, consent (consent ID), flow (flow ID), and context (if you set one) — plus event-specific fields listed below.

ConsentStatusChanged

Fired on every status transition.

Additional payload fields: currentStatus, previousStatus, consentStatusChanged (timestamp of the change, may be null), validUntil, isContinuation (true if this consent continues a previous one), deletionReason (only present if applicable).

Consent statuses

StatusMeaning
receivedReceived, not yet approved
validValid — data can be fetched
rejectedRejected
expiredExpired
revokedByPsuRevoked by the user
terminatedByTppTerminated by you
suspendedByASPSPSuspended by the bank
partiallyAuthorisedPartially approved (multi-level)
waitingForInitialFetchWaiting for first data fetch
initialFetchFailedFirst fetch failed
noAnswerNo status received within two weeks

UserDataIsAvailable

Fired once the initial data pull for a consent completes — this is your signal that data is actually ready, distinct from the consent simply being valid.

Additional payload fields: fetchedAccounts (array of account references successfully pulled), failedToFetchAccounts (array of account references that failed).

ConsentAboutToExpire

Fired once, ahead of a consent's validUntil (mirrors MandateAboutToExpire on the Mandate side).

Additional payload field: validUntil.

ConsentNotAccessed

Fired if a valid consent's data hasn't been accessed by you within a configured period — a nudge that you have live access you aren't using.

Additional payload fields: validFrom, validUntil, consentTerminationDate.

DataRefreshComplete

A TPP-wide event (not tied to a specific user or consent) — payload only contains tpp.

What to do on receipt

Once ConsentStatusChanged reports valid (or you receive UserDataIsAvailable), fetch data via the AIS API (/tpp/v1/users/USERID/accounts, /cards, /loans, /savings, /securities) using a Bearer token obtained via a JWT with srv: "ais/tpp".


UserInsightReady (VIEW)

Fired once a user's insights report finishes computing after a view_ais/user consent flow.

{
  "event": "UserInsightReady",
  "payload": { "user": "Useridentifier@test", "tpp": "test" },
  "timestamp": "2024-04-08T05:01:12.981118+00:00"
}

What to do on receipt

Call GET /tpp/v1/users/USERID/insights (or open the VIEW dashboard link) to retrieve the report. Response includes, where configured for your plan: income, expense, deposit, security, externalInvestmentOrSavings, loan, creditLimit, salary, children, financialEvents (nsfEvents, warningEvents, loanPaymentDelayEvents, closedLoanPaymentDelayEvents, unemploymentPaymentEvents, technicalCheckBounceEvents), businessReportsAnalysis, monthlyFees, creditScore.

⚠️ Don't restrict against a strict schema — additional fields may be present, and sections only appear if configured in your plan. For the full response reference, use Feezback's Swagger / the Aggregate Data API spec.


AIS vs VIEW — quick reference

ais/user (AIS)view_ais/user (VIEW)
ResultRaw data access (accounts, transactions)Processed financial analysis (insights)
WebhookConsent lifecycle events (above)UserInsightReady
Data retrievalAIS API endpoints (/accounts, /transactions, etc.)/insights endpoint
Access token srvais/tppais/tpp

Did this page help you?