# 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](/spedizioni-e-dintorni/refreshqr.md)
{% 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="/files/OdvFDgtfTba9wRn5ZlJv" 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>101</td><td>GLS</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>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.gsped.com/spedizioni-e-dintorni/shipment/shipment-objects/qrcode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
