Additional Attributes (addlAttr)
The addlAttr field in sna.dispatch() carries additional attributes that SNA needs for accurate latency measurement, billing, and correlation across the AA-FIP and AA-FIU interfaces. Which attributes apply depends on the API and the interface.
Structure
All values below are synthetic and for illustration only.
"addlAttr": {
"eventTime": "2026-01-01T10:00:00.000Z",
"consentTypes": ["PROFILE", "SUMMARY", "TRANSACTIONS"],
"cnsCorId": "consent-uuid-test-001",
"fiuCnsId": "fiu-consent-id-test-001",
"ssnCorId": "session-uuid-test-001",
"fiuSsnId": "fiu-session-id-test-001",
"fiFetchEncDataLen": 2131
}Send only the attributes that apply to the API being dispatched.
Applicability
AA-FIU Interface
/Consent
Required
Optional
/Consent/handle
Required
Optional
/Consent/fetch
Required
Optional
/Consent/Notification (AA → FIU)
Required
Optional
/FI/request
Required
Required
Optional
/FI/Notification (AA → FIU)
Required
Optional
/FI/fetch
Required
Optional
Conditional (response only)
/Consent/Notification (FIU → AA)
Required
/FI/Notification (FIU → AA)
Required
/Heartbeat
Required
AA-FIP Interface
/Consent
Required
Optional
Optional
/Consent/Notification (FIP → AA)
Required
Optional
Optional
/FI/request
Required
For future use
Optional
Optional
/FI/Notification (FIP → AA)
Required
Optional
Optional
/FI/fetch
Required
Optional
Optional
Conditional (response only)
All other AA-FIP APIs
Required
Each attribute applies to both the request and the response of the API, unless marked otherwise.
📌 Optional attributes are for future use. Conditional means required only when
encryptedFIis redacted.
eventTime
Required on every sna.dispatch() call, on both interfaces.
What to send: The UTC timestamp, in ISO 8601 format with milliseconds, at which the AA:
received a request (
requestIn) or response (responseIn), oris sending a request (
requestOut) or response (responseOut).
Why: SNA calculates latencies from the AA's own timestamps. This keeps latency measurement accurate and independent of whether the peer's clock is in sync.
consentTypes
Required on /FI/request on the AA-FIU interface. On the AA-FIP interface, it is for future use.
What to send: The array of consent types from the consentTypes field of the approved, signed consent that the AA returned to the FIU in the /Consent/fetch response.
Why: SNA uses the consent types to determine whether a data fetch is for transactions or only for profile and summary, since these may be billed differently. SNA does not store consents for long periods, so it relies on the AA to provide this context with each data fetch.
cnsCorId (Consent Correlation ID)
Optional. For future use.
What to send: A UUID that the AA creates when it first receives a /Consent request from an FIU. It is different from the consent ID. Send the same value on all consent APIs related to that consent, on both interfaces.
Why: In future, this may be used to map a consent requested by an FIU from the AA to the corresponding consent sent by the AA to the FIP. AAs can send either cnsCorId or fiuCnsId.
fiuCnsId (FIU Consent ID)
Optional. For future use. AA-FIP interface only.
What to send: The consent ID from the FIU side, sent on the consent APIs to and from the FIP.
Why: Serves the same purpose as cnsCorId. If you already send cnsCorId, this is not required.
ssnCorId (Session Correlation ID)
Optional. For future use.
What to send: A UUID that the AA creates when it first receives an /FI/request from an FIU. It is different from the session ID. Send the same value on all data-fetch APIs related to that session, on both interfaces.
Why: In future, this may be used to map a data fetch by an FIU from the AA to the corresponding data fetch by the AA from the FIP. AAs can send either ssnCorId or fiuSsnId.
fiuSsnId (FIU Session ID)
Optional. For future use. AA-FIP interface only.
What to send: The session ID from the FIU side, sent on the data-fetch APIs to and from the FIP.
Why: Serves the same purpose as ssnCorId. If you already send ssnCorId, this is not required.
fiFetchEncDataLen (FI Fetch Encrypted Data Length)
Conditional. Required only when the encryptedFI field is redacted. Applies to /FI/fetch responses on both interfaces.
What to send: The length of the original encryptedFI string in the /FI/fetch response.
Why: SNA uses the length of encryptedFI to calculate the volume of data exchanged. AAs that prefer not to share the encrypted payload with SNA can redact or mask encryptedFI in the body and send its length here instead. Continue to send the rest of the body as usual.
Last updated
Was this helpful?