# Caricamento dati Clienti/Fornitori

Permette il caricamento di nuovi dati di clienti e/o fornitori per una data coppia item/transmitter sotto forma di CSV.

### API

<p class="callout info">\[POST\] ​[/api​/v1​/customer-data](https://risk-assessment-write-test.agyo.io/swagger/#/Financial%20Statements/post_api_v1_customer_data)</p>

#### Headers

Gli header richiesti dalla chiamata sono gli [header standard di TSDigital](https://digital-docs.ts-paas.com/books/integrazione-e-utilizzo-api-tsdigital/page/linee-guida-generali-api-ts-digital "Linee guida Generali API TS-Digital").

Il `Content-Type` deve essere `application/json`

#### Body

Il body della richiesta deve avere il seguente formato:

```JSON
{
  "transmitterId": "string",
  "itemId": "string",
  "document": "string",
  "documentType": "CUSTOMER" | "SUPPLIER"
}
```

Dove:

- **transmitterId**: identificativo dell'item che sta caricando i dati
- **itemId**: identificativo dell'item per il quale stanno venendo caricati i dati
- **document**: contenuto del CSV, codificato in Base64
- **documentType**: tipologia di documento, può essere uno di due valori 
    - **CUSTOMER**: indica che i dati caricati fanno riferimento a clienti
    - **SUPPLIER**: indica che i dati caricati fanno riferimento a fornitori

#### Successo

In caso di successo, l'API risponde con il codice HTTP **200,** con il seguente body:

```JSON
{
  "id": "string"
}
```

Dove **id** è l'identificativo univoco dei dati appena caricati.

#### Errore

In caso di errore, l'API ritorna un body nel formato:

```JSON
{
  "message": "string"
}
```

Dove **message** è un messaggio che indica la ragione dell'errore.

L'API può rispondere con i seguenti codici d'errore:

- **400**: una (o più) parti della richiesta non rispettano lo schema specificato (es: header obbligatorio mancante, parametro obbligatorio del body mancante, ecc.)
- **401**: non è stato fornito un token d'autenticazione, o il token d'autenticazione fornito è scaduto
- **403**: l'utente che ha effettuato la richiesta non ha i permessi necessari per portarla a termine
- **500**: si è verificato un errore inaspettato nel completare la richiesta
- **502**: è stato impossibile completare l'upload dei dati verso il servizio che si occupa di conservare i dati