# qrCode

## Descrizione

Oggetto contenente informazioni per mostrare, per alcuni [corrieri abilitati](#corrieri-abilitati), un QrCode multifunzionalità.

{% hint style="warning" %}
L'**etichetta** deve avere lunghezza minima di **10x18 cm** anziché le normali 10x15 cm
{% endhint %}

```json
"qrCode":{
  "url":"XXXXXX", // QR code di questo url
  "post_upload":{ // crea 1 oggetto S3 sul bucket su cui poi verrà fatto PUT oggetto
    "file_type" :"PDF" // nome univoco deciso da Gsped (id spedizione)
  },
  "registrazione_esito":true
}
```

Questo oggetto ha un solo modo per volta di essere valorizzato.

<table data-full-width="true"><thead><tr><th width="212">Campo</th><th width="109" data-type="checkbox">Required</th><th width="107">Codifica</th><th>Descrizione</th></tr></thead><tbody><tr><td>url</td><td>false</td><td>string</td><td>Url fisso da mostrare nel qrCode</td></tr><tr><td>post_upload</td><td>false</td><td>object</td><td>Contenitore di chiavi per creare un oggetto S3 sul bucket su cui poi verrà fatto PUT per valorizzarlo</td></tr><tr><td>post_upload.file_type</td><td>false</td><td>string</td><td>L'estensione del file che verrà poi caricato</td></tr><tr><td>registrazione_esito</td><td>false</td><td>bool</td><td>Crea un qrCode che rimanda ad una pagina in cui chi ha accesso (normalmente l'autista che vede l'etichetta) può modificare lo stato della spedizione su Gsped.</td></tr></tbody></table>

1. Si inserisce direttamente l'*url* che si vuole esplicitare sul QrCode&#x20;
2. Si compila solamente la parte *post\_upload* inserendo l'estensione del file che verrà caricato in un secondo momento.
3. Si valorizza *registrazione\_esito* per creare un url di modifica status spedizione.

{% hint style="danger" %}
**Le varie modalità non sono compatibili, quindi sono da usare in modo esclusivo.**
{% endhint %}

### **Dettagli post\_upload**

**Nel caso di post\_upload**, in risposta alla SHIPMENT POST vi verrà fornito un url (dentro l'oggetto qrCode) al quale fare l'upload nel momento in cui avrete il file a disposizione.&#x20;

```json
"qrCode": [
    {
        "putUrl": "XXX", // Url pur il PUT
        "url":"XXX" // Url per il GET, presente nel barcode
    }
]
```

Ecco un esempio di upload:&#x20;

```bash
curl -X PUT -T "/path/to/file" "Gsped upload url"
```

Per una questione di pulizia e coerenza il nome del file deve essere l'ID GSPED della spedizione appena creata comprensivo di estensione file, ad esempio 12345.pdf

{% hint style="warning" %}
I link hanno validità di 7 giorni\
Nel caso siano scaduti possono essere rinnovati tramite [apposito endpoint API](https://apidocs.gsped.com/spedizioni-e-dintorni/refreshqr)
{% endhint %}

### Dettagli registrazione\_esito

La pagina a cui avrà accesso chi atterrerà sulla pagina del qrCode avrà questo aspetto e potrà segnalare i seguenti stati:

<figure><img src="https://3771308577-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lpn0WrP4qkhuX2DmzB4%2Fuploads%2F6fq7PWlmTgO5CTXy9d9Q%2Fesempio_esito.png?alt=media&#x26;token=e49bbfd4-155a-48ae-9e64-7c3e073ba253" alt=""><figcaption></figcaption></figure>

### Protezione attraverso Pin Code

{% hint style="warning" %}
**ATTENZIONE :**&#x20;

Questa funzionalità è in fase di sviluppo. Indicativamente sarà disponibile dopo la prima metà del mese di Agosto 2025
{% endhint %}

E' possibile proteggere il propio QR Code da accessi non desiderati attraverso l'utilizzo di un PIN Code.

Indipendetemente dalla tipologia di utilizzo, basterà aggiungere il parametro **pin\_code** con il codice desiderato.

In questo modo alla lettura del QR Code, verrà richiesto di inserire il PIN Code per poter procedere.

Questo codice dovrà avere una lunghezza minima di 6 caratteri ed una lunghezza massima di 32.

Di seguito alcuni esempi :&#x20;

```json
"qrCode":{
  "url":"XXXXXX",
  "pin_code": "test1234"
}
```

```json
"qrCode":{
  "post_upload":{
    "file_type" :"PDF"
  },
  "pin_code": "test1234"
}
```

```json
"qrCode":{
  "registrazione_esito":true,
  "pin_code": "test1234"
}
```

## Corrieri abilitati

<table><thead><tr><th width="127">ID</th><th>Corriere</th></tr></thead><tbody><tr><td>1</td><td>BRT</td></tr><tr><td>2</td><td>TNT</td></tr><tr><td>19</td><td>Poste Delivery Business Inviosystem</td></tr><tr><td>70</td><td>Dummy1</td></tr><tr><td>71</td><td>Dummy2</td></tr><tr><td>72</td><td>Dummy3</td></tr><tr><td>73</td><td>Dummy4</td></tr><tr><td>74</td><td>Dummy5</td></tr><tr><td>75</td><td>Dummy6</td></tr><tr><td>76</td><td>Dummy7</td></tr><tr><td>77</td><td>Dummy8</td></tr><tr><td>78</td><td>Dummy9</td></tr><tr><td>79</td><td>Dummy10</td></tr><tr><td>90</td><td>Italsempione</td></tr><tr><td>91</td><td>Logisticando</td></tr><tr><td>92</td><td>CSILogistica</td></tr><tr><td>93</td><td>Ribosped</td></tr><tr><td>94</td><td>Zust - Tiesse</td></tr><tr><td>95</td><td>Lynx</td></tr><tr><td>97</td><td>Speditalia</td></tr><tr><td>104</td><td>DHL</td></tr><tr><td>131</td><td>Fercam</td></tr><tr><td>182</td><td>DHL WLA</td></tr></tbody></table>
