# Documenti

<p class="callout warning">Il path parameter `token` è l'identificativo univoco risultante dalla creazione di una Payment Request</p>

#### Preview di un documento

Permette di ricevere la preview di uno specifico documento contenuto in una payment request precedentemente configurata

```
[GET] /public/paymentRequest/{token}/documents/{documentId}/preview
[GET] /paymentRequest/{token}/documents/{documentId}/preview ?
```

Possibili parametri:

- `type`: tipologia di visualizzazione voluta

Nella **response** l'API ritorna:

XML del documento, HTML o PDF in base alla preview richiesta

##### Formati disponibili per tipologia di file

<table border="1" id="bkmrk-%C2%A0-assosw-ade-assoswp" style="border-collapse: collapse; width: 100%; height: 137px;"><tbody><tr style="height: 29px;"><td style="width: 16.1377%; height: 29px;"> </td><td class="align-center" style="width: 13.2979%; height: 29px; background-color: #d0e0e3;">**ASSOSW**</td><td class="align-center" style="width: 14.0388%; height: 29px; background-color: #d0e0e3;">**ADE**</td><td class="align-center" style="width: 14.0387%; height: 29px; background-color: #d0e0e3;">**ASSOSWPDF**</td><td class="align-center" style="width: 14.7796%; height: 29px; background-color: #d0e0e3;">**ADEPDF**</td><td class="align-center" style="width: 14.0388%; height: 29px; background-color: #d0e0e3;">**RAW**</td><td class="align-center" style="width: 13.6684%; height: 29px; background-color: #d0e0e3;">**BASE64**</td></tr><tr style="height: 56px;"><td class="align-center" style="width: 16.1377%; height: 56px; background-color: #f4cccc;">**AGYO\_INVOICE**</td><td class="align-center" style="width: 13.2979%; height: 56px;">✅

Fallback

</td><td class="align-center" style="width: 14.0388%; height: 56px;">✅</td><td class="align-center" style="width: 14.0387%; height: 56px;">✅</td><td class="align-center" style="width: 14.7796%; height: 56px;">✅</td><td class="align-center" style="width: 14.0388%; height: 56px;">✅</td><td class="align-center" style="width: 13.6684%; height: 56px;">❌</td></tr><tr style="height: 52px;"><td class="align-center" style="width: 16.1377%; height: 52px; background-color: #f4cccc;">**DOC\_STORE\_DOCUMENT**</td><td class="align-center" style="width: 13.2979%; height: 52px;">❌</td><td class="align-center" style="width: 14.0388%; height: 52px;">❌</td><td class="align-center" style="width: 14.0387%; height: 52px;">❌</td><td class="align-center" style="width: 14.7796%; height: 52px;">❌</td><td class="align-center" style="width: 14.0388%; height: 52px;">✅

Fallback

</td><td class="align-center" style="width: 13.6684%; height: 52px;">✅</td></tr></tbody></table>

Se si richiede un formato non valido per la tipologia di documento richiesta, verrà applicato il formato di fallback

<p class="callout warning">Nel caso di Formato **BASE64**, ritorna esattamente la stessa struttura del Doc Store ovvero con anteposta la stringa `data:application/pdf;base64,`</p>

<p class="callout info">L'api **public** segue il comportamento del flag **allowDownloadBeforePayment.** Se impostato a **false** in fase di creazione richiesta, il documento non può essere mostrato prima che il pagamento sia completato. L'api **autenticata**, invece, permette di visionare in qualunque momento il documento in oggetto.</p>

#### Download di un documento

Permette di ricevere la preview di uno specifico documento contenuto in una payment request precedentemente configurata

```
[GET] /public/paymentRequest/{token}/documents/{documentId}/download
[GET] /paymentRequest/{token}/documents/{documentId}/download ?
```

Possibili parametri:

- `format`: tipologia di visualizzazione voluta

Nella **response** l'API ritorna:

**XML** del documento, **PDF** o **stringa base64** in base al formato richiesto

##### Formati disponibili per tipologia di file

<table border="1" id="bkmrk-%C2%A0-xml-pdf-assosw-bas" style="border-collapse: collapse; width: 100%; height: 99px;"><tbody><tr style="height: 29px;"><td style="width: 16.6667%; height: 29px; border-style: solid;"> </td><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #d0e0e3;">**XML**</td><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #d0e0e3;">**PDF**</td><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #d0e0e3;">**ASSOSW**</td><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #d0e0e3;">**BASE64**</td><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #d0e0e3;">**RAW**</td></tr><tr style="height: 41px;"><td class="align-center" style="width: 16.6667%; height: 41px; background-color: #f4cccc;">**AGYO\_INVOICE**</td><td class="align-center" style="width: 16.6667%; height: 41px;">✅</td><td class="align-center" style="width: 16.6667%; height: 41px;">✅</td><td class="align-center" style="width: 16.6667%; height: 41px;">✅

Fallback

</td><td class="align-center" style="width: 16.6667%; height: 41px;">❌</td><td class="align-center" style="width: 16.6667%; height: 41px;">❌</td></tr><tr style="height: 29px;"><td class="align-center" style="width: 16.6667%; height: 29px; background-color: #f4cccc;">**DOC\_STORE\_DOCUMENT**</td><td class="align-center" style="width: 16.6667%; height: 29px;">❌</td><td class="align-center" style="width: 16.6667%; height: 29px;">❌</td><td class="align-center" style="width: 16.6667%; height: 29px;">❌</td><td class="align-center" style="width: 16.6667%; height: 29px;">✅</td><td class="align-center" style="width: 16.6667%; height: 29px;">✅

Fallback

</td></tr></tbody></table>

Se si richiede un formato non valido per la tipologia di documento richiesta, verrà applicato il formato di fallback

<p class="callout warning">Nel caso di Formato **BASE64**, ritorna esattamente la stessa struttura del Doc Store ovvero in formato [DataURI](https://en.wikipedia.org/wiki/Data_URI_scheme) con anteposta la stringa `data:application/pdf;base64,` </p>

<p class="callout info">L'api **public** segue il comportamento del flag **allowDownloadBeforePayment.** Se impostato a **false** in fase di creazione richiesta, il documento non può essere scaricato prima che il pagamento sia completato. L'api **autenticata**, invece, permette di scaricare in qualunque momento il documento in oggetto.</p>

#### Upload documento Payment Container tramite TS Document Store

Proxy che permette di caricare un documento su **TS Document Store**, senza preoccuparsi di possedere un token tecnico dedicato

```
[POST] /documentStore ?
```

Request Body (multipart/form-data):

- `ownerId`: ownerId con identificativo TS Digital del creditore
- `transmitterId`: transmitterId con identificativo TS Digital
- `file`: binary del file da caricare (max 10mb)

#### Upload documento Payment Container tramite TS Document Store (Base64)

Proxy che permette di caricare un documento su **TS Document Store**, senza la necessità di possedere un token tecnico dedicato.

```
[POST] /documentStore/base64 ?
```

Nella **request** abbiamo:

- `ownerId`: ownerId con identificativo TS Digital del creditore
- `transmitterId`: transmitterId con identificativo TS Digital
- `file`: base64 con formato [DataURI](https://en.wikipedia.org/wiki/Data_URI_scheme) ---&gt; **data:application/pdf;base64,file\_content\_in\_base\_64**