# Conti

### Aggregazione conti e carte

#### Descrizione

Consente di recuperare le informazioni aggregate di saldo e movimenti relativi a conti corrente e carte di credito tramite il servizio di TS Pay. La SCA è unica ma va rinnovata periodicamente, in genere ogni 90 giorni.

---

#### [Informazioni conti collegati](https://ts-pay-gateway-test.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API/getLinkedAccounts)

Restituisce l'elenco dei prodotti (conti e carte) collegati, comprensivo di saldo disponibile e informazioni relative al consenso.

```
[GET] /{itemId}/linked-accounts
```

Nella **response** l'API fornisce:

- `accountId` id del conto/carta
- `iban` iban del conto (se il prodotto è un conto corrente)
- `maskedPan` numero della carta mascherato (se il prodotto è una carta)
- `currency` valuta di conto
- `providerId` id del provider (ASPSP)
- `bankName` nome della banca
- `productCode` codice del prodotto
- `lastBalance` saldo 
    - `amount` importo (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)
    - `currency` valuta
- `lastBalanceDate` data di riferimento del saldo
- `accountNature` natura del conto
- `consentId` id del consenso
- `consentExpireDate` data di scadenza del consenso
- `lastRefreshStatus` stato ultimo aggiornamento
- `lastRefreshDate` data ultimo aggiornamento

---

#### [Informazioni conti collegati o precedentemente utilizzati](https://ts-pay-gateway-test.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API/getAccounts)

Restituisce l'elenco dei prodotti (solo conti) collegati o precedentemente utilizzati. I primi comprensivi di saldo disponibile e informazioni relative al consenso.

```
[GET] /{itemId}/accounts
```

Nella **response** l'API fornisce:

- `accountId` id del conto/carta (solo per conti collegati)
- `iban` iban del conto
- `currency` valuta di conto
- `providerId` id del provider (ASPSP)
- `bankName` nome della banca
- `productCode` codice del prodotto
- `lastBalance` saldo (solo per conti collegati) 
    - `amount` importo (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)
    - `currency` valuta
- `lastBalanceDate` data di riferimento del saldo (solo per conti collegati)

---

#### [Informazioni movimenti](https://ts-pay-gateway-test.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API/getTransactions)

Restituisce le informazioni relative alle transazioni dei conti collegati.

```
[GET] /{itemId}/transactions
```

I **parametri** richiesti sono:

- `dateFrom` data inizio movimenti (opzionale)
- `dateTo` data fine movimenti (opzionale)
- `bookingStatus` stato del movimento (booked o pending) (opzionale)
- `accounts` accounts per i quali mostrare i movimenti (opzionale)

Nella **response** l'API fornisce:

- `accountId` identifica il conto a cui la transazione fa riferimento
- `bookingStatus` stato del movimento (booked o pending)
- `bookingDate` data del movimento
- `remittanceInformationUnstructured` descrizione del movimento
- `transactionAmount` importo movimento   
    
    - `amount` importo (espresso come numero intero in cui le ultime due cifre compongono la parte decimale)
    - `currency` valuta
- `valueDate` data valuta

---

#### [Aggiornamento dati di un conto](https://ts-pay-gateway-test.agyo.io/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/API/refreshAccount)

Una volta collegato un conto/carta è necessario fare un aggiornamento dei dati, per scaricare transazioni e saldi. Questa operazione è schedulata tutte le notti, ma si può anche eseguire a richiesta tramite la seguente API. Va fatta per tutti gli account collegati con quel determinato consenso.

```
[POST] /{itemId}/accounts/{accountId}/refresh
```

I **parametri** richiesti sono:

- `accountId` path variable - identifica il conto

Nel corpo della **request** in particolare abbiamo:

- `psuIpAddress` IP del client che effettua la richiesta (è richiesto un indirizzo IP valido)

Nella **response** l'API fornisce:

- `accountId` identifica il conto
- `status` stato dell'operazione di refresh (tipicamente "*updating*")