# Etichette in 5 minuti

Ingredienti:

* apikey (fornita dal team di Gsped)
* nome dell'istanza dedicata (fornita dal team di Gsped)
* client\_id (fornito dal team di Gsped)

L'url da chiamare sarà **<https://api.gsped.it/nomeistanza/shipment>** con metodo POST, il body della chiamata conterrà il payload, andranno impostati gli header Content-Type e Accept a application/json e andrà valorizzato l'header X-API-KEY con la stringa comunicata dal team di Gsped&#x20;

Esempio di payload minimale, corriere e servizio andranno specificati usando i valori indicati nella pagina [Corrieri e servizi](https://apidocs.gsped.com/overview/corrieri-e-servizi)

```json
{
    "client_id": 390,
    "corriere": 101,
    "servizio": 0,
    "ddt_alpha": "rifmittente",
    "peso": 3.0,
    "colli": 1,
    "rcpt_name":"Mario Rossi",
    "rcpt_addr":"Piazza Castello 1",
    "rcpt_cap":"10121",
    "rcpt_city":"Torino",
    "rcpt_prov":"TO",
    "rcpt_country_code":"IT"
}
```

Sulla risposta andrà prima controllato lo status code:

se è **400** i dati inviati **NON hanno passato i controlli preliminari** prima della creazione della spedizione e nel campo **error** ci sono i dettagli dell'errore

se è **200** i dati inviati sono stati accettati ed è stata avviata la comunicazione con il corriere per creare la spedizione, in questo caso andrà verificato il valore del campo **status** nella risposta

Il campo **status** può assumere due valori:

**Status 0.6** il corriere NON ha accettato i dati e la spedizione non è stata creata, il campo **error** contiene il messaggio d'errore restituito dal corriere (ad esempio cap non coerente con il nome del comune oppure servizio non disponibile per la destinazione)

{% hint style="info" %}
Ogni corriere usa un proprio sistema per la validazione degli indirizzi, indirizzi corretti possono essere segnalati come errati se il corriere ha degli errori nel proprio database.

Non necessariamente un indirizzo trovato su google maps sarà accettato da un corriere qualsiasi.
{% endhint %}

**Status 0** il corriere ha accettato i dati e generato la spedizione, gli array label-pdf, label-jpg e label-zpl conterranno le etichette da applicare sui colli (jpg e pdf sono codificati in base64, i formati restituiti dipendono dal settaggio del clientid e dal corriere)

Nella risposta compare anche il campo **id** che contiene l'identificatore univoco della spedizione per Gsped, questo dato è essenziale per l'operazione di conferma della spedizione.

{% hint style="info" %}
**NOTA BENE :**&#x20;

Normalmente, i corrieri forniscono le etichette in due formati : PDF e ZPL.

Alcuni corrieri forniscono entrambi i formati, mentre altri forniscono un solo formato.

Tipicamente il formato del etichetta in PDF restituita dal corriere è A4 mentre l'etichetta ZPL è di dimensione 10x15cm a 203dpi
{% endhint %}

### Ultimo passaggio....

Prima dell'affidamento al corriere dei colli andrà infine eseguita una chiamata all'indirizzo <https://api.gsped.it/nomeistanza/shipmentConfirm> passando gli **id** delle spedizioni affidate e valorizzando gli header come indicato in precedenza.

Esempio di payload per la shipmentConfirm

```json
{
  "id": [
    "12345",
    "12346",
    "12347"
  ]
}
```

{% hint style="info" %}
L'operazione di conferma è essenziale per la corretta gestione delle spedizioni da parte del corriere!
{% endhint %}
