Account
Per entrambi, TPP e FPP, la risposta ottenuta a seguito di una richiesta degli account è esattamente la stessa ed è descritta di seguito.
Le API di richiesta invece variano leggermente; per i dettagli di implementazione è possibile fare riferimento alla documentazione specifica.
La risposta sarà un array di account e ogni elemento sarà simile al seguente esempio:
{
"accountId": "1243",
"bankId": "2",
"bankProfileId": "132",
"userId": "12",
"alias": null,
"bicCode": "ABXXXXXX",
"cashType": null,
"currency": "EUR",
"deletedDatetime": null,
"details": "",
"displayName": "",
"isDeleted": false,
"consentEndDateTime": "2023-01-01T22:59:59.000+0000",
"consentStatus": "VALID",
"lastBalances": [
{
"amount": {
"currency": "EUR",
"value": 0
},
"amountInEuro": {
"currency": "EUR",
"value": 0
},
"balanceId": "",
"balancePriority": 0,
"balanceTimePeriod": "",
"balanceType": "",
"deletedDatetime": "2021-06-14T09:25:14.605Z",
"exchangeRate": 0,
"isCreditLimitIncluded": true,
"lastChangeDatetime": "2021-06-14T09:25:14.605Z",
"lastCommittedTransaction": "",
"referenceDate": "2021-06-14T09:25:14.605Z",
"retrievedDatetime": "2021-06-14T09:25:14.605Z",
"type": ""
}
],
"lastUpdatedDatetime": "2019-09-15T09:00:01.000Z",
"linkedAccounts": null,
"name": null,
"ownerName": "MARIO ROSSI",
"productName": "STANDARD PERSONAL CASH ACCOUNT",
"reference": null,
"retrievedDatetime": "2019-09-14T09:14:12.000Z",
"subsidiaryValues": [
{
"currency": "EUR",
"reference": null,
"value": "IT32FXXXXXYYYYYKKKKKKKKKKKK",
"valueType": "IBAN"
}
],
"synchronizationStatus": {
"balances": {
"hasActiveConsent": true,
"isSynchronized": true,
"lastSynchronizedDatetime": "2019-09-15T09:00:01.000Z",
"wasInLastConsent": true
},
"transactions": {
"hasActiveConsent": true,
"isSynchronized": true,
"lastSynchronizedDatetime": "2019-09-15T09:00:03.000Z",
"wasInLastConsent": true
}
},
"tppUid": "100000",
"usage": "PERSONAL",
"value": "IT32FXXXXXYYYYYKKKKKKKKKKKK",
"valueType": "IBAN"
}
Ogni elemento dell’elenco rappresenta un account utente e contiene informazioni relative all’account, all’utente e una serie di informazioni di contesto aggiunte da Fabrick che arricchiscono il modello:
- accountId: ID univoco dell’account configurato da Fabrick
- bankId: ID univoco della banca
- bankProfileId: solo per TPP, ID univoco del bankProfile
- userId: ID univoco dell’utente
- alias: stringa opzionale che può essere utilizzata dall’utente finale (tramite TPP o FPP) per impostare un alias personalizzato
- bicCode: codice BIC
- cashType: da ignorare. Codice ISO 20022 (ExternalCashAccountType1Code) attualmente non restituito
- currency: valuta locale dell’account
- details: specificità dell’account (quasi mai restituito dalle banche)
- displayName: nome account definito dall’utente nell’Online Banking
- consentEndDateTime: data di scadenza del consenso
- consentStatus: stato del consenso
- lastBalances: informazioni di saldo
- lastUpdatedDatetime: ultima sincronizzazione con ASPSP
- linkedAccounts: conto associato per transazioni pendenti
- name: nome account assegnato dall’ASPSP
- ownerName: intestatario
- productName: nome prodotto assegnato dalla banca
- reference: identificativo account
- retrievedDatetime: data di recupero informazioni
subsidiaryValues
Solo per TPP è possibile aggregare anche le carte.
"subsidiaryValues": [
{
"value": "IT00A12345678000AA000123456",
"valueType": "IBAN"
},
{
"value": "1234 xxxx xxxx 5678",
"valueType": "MASKED_PAN"
}
]
Esempio:
- GET Get Account restituisce IBAN
- GET Get Card restituisce maskedPan
Saldo e movimenti sono gli stessi.
synchronizationStatus
Indica lo stato di saldi e movimenti:
- hasActiveConsent: esiste un consenso attivo
- isSynchronized: indica se l’entità viene sincronizzata automaticamente (modificabile solo per TPP via PUT Update Account / PUT Update Card)
- lastSynchronizedDatetime: data ultima sincronizzazione
- wasInLastConsent: true se l’account era incluso nell’ultimo consenso scaduto
- tppUid: ID del TPP
- usage: PRIVATE (Retail) o BUSINESS (Corporate)
- value: numero conto / carta anonimizzata
- valueType: IBAN, MASKED_PAN o WALLET
Se il cliente ha associato una carta a PayPal, il saldo restituito sarà 0 perché riferito al wallet. I movimenti sono visibili ma con informazioni ridotte.
Scheduler saldi e movimenti
Le informazioni relative ai saldi e ai movimenti per ciascun consenso in stato VALID vengono aggiornate automaticamente 4 volte al giorno utilizzando gli accessi non presidiati consentiti dalla normativa. Poiché sono possibili al massimo 4 chiamate al giorno per ciascun consenso e tipo di richiesta, come Fabrick abbiamo preferito concentrare le fasi di sincronizzazione durante la giornata, in modo che il PSU possa avere i movimenti sempre aggiornati nei momenti di maggiore utilizzo del servizio:
- 08:30: transazioni e saldi
- 11:30: transazioni e saldi
- 14:30: transazioni e saldi
- 17:30: transazioni e saldi
Ovviamente si tratta di fasce orarie la cui durata è di circa 90 minuti. Questo perché le banche non consentono un elevato parallelismo delle chiamate, quindi Fabrick è costretto a serializzare le richieste di aggiornamento per tutti i singoli conti.
Tradotto con DeepL.com (versione gratuita)