Shipment
Gestione delle spedizioni
Questo endpoint permette di gestire la creazione, recupero e la cancellazione delle spedizioni su Gsped.
get
https://api.gsped.it
/[ISTANZA]/Shipment
Shipment -GET
PHP
PYTHON
GO
C#
cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gsped.it/sandbox/Shipment?id=70059765",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => [
"x-api-key: YOUR-API-KEY"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
import http.client
conn = http.client.HTTPSConnection("api.gsped.it")
payload = ""
headers = { 'x-api-key': "YOUR-API-KEY" }
conn.request("GET", "/sandbox/Shipment?id=70059765", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.gsped.it/sandbox/Shipment?id=70059765"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "YOUR-API-KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
// Some codevar client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://api.gsped.it/sandbox/Shipment?id=70059765"),
Headers =
{
{ "x-api-key", "YOUR-API-KEY" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}
curl --request GET \
--url 'https://api.gsped.it/sandbox/Shipment?id=70059765' \
--header 'x-api-key: YOUR-API-KEY'
La chiamata Shipment Post permette di creare la spedizione.
Se l’operazione ha esito positivo, restituisce i dati della spedizione insieme alle relative etichette nei formati disponibili.
La creazione di una spedizione non necessariamente va sempre a buon fine, sia Gsped che i sistemi del corriere eseguono una serie di controlli sulla correttezza dei dati ricevuti, bisogna assicurarsi di gestire correttamente i possibili errori!
La logica da implementare per controllare l'esito delle chiamate è la seguente:
sulla risposta delle API sulla POST di creazione spedizione va innanzitutto controllato il codice di risposta HTTP, se è 400 i dati passati non hanno passato la prima serie di controlli sui dati, in quel caso il campo error contiene indicazioni sul problema riscontrato (ad esempio campi obbligatori mancanti).
Se il codice di risposta è 200 i dati hanno passato il primo livello di validazione ed è stata avviata la generazione della lettera di vettura. Andrà quindi verificato il valore del campo status, se contiene 0 la lettera di vettura è stata generata correttamente e potrà essere recuperata dai campi preposti nella risposta. Se invece il campo status è uguale a 0.6 la generazione della lettera di vettura è fallita e il campo error conterrà la descrizione dell’errore. Questo tipo di errori si può verificare per situazioni tipo cap e località non coerenti, indirizzo non accettato dai sistemi del corriere, servizio richiesto non disponibile per la località di destinazione et cetera
post
https://api.gsped.it
/[ISTANZA]/Shipment
Shipment POST
PHP
PYTHON
GO
C#
cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.gsped.it/sandbox/shipment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n \"client_id\": 390,\n \"colli\": 2,\n \"contrassegno\": 0,\n \"corriere\": 104,\n \"ddt_alpha\": \"TEST_GSPED\",\n \"ddt_num\": 12346,\n \"origine\": \"IT\",\n\t\"dropshipping\" : 0,\n \"peso\": 2.4,\n \"rcpt_addr\": \"115 E Endfield Rd\",\n \"rcpt_cap\": \"19053\",\n \"rcpt_city\": \"Feasterville Trevose\",\n \"rcpt_contact\": \"Tester\",\n \"rcpt_country_code\": \"US\",\n \"rcpt_email\": \"[email protected]\",\n \"rcpt_name\": \"TEST DESTINATARIO\",\n \"rcpt_phone\": \"2159005458\",\n \"rcpt_prov\": \"PA\",\n \"servizio\": 9,\n \"valore\": 0,\n \"valore_doganale\": 37.50,\n \"valuta\": \"EUR\",\n \"volume\": 0.0972,\n\t\"daticolli\": [\n {\n \"altezza\": 39,\n \"larghezza\": 29,\n \"lunghezza\": 43,\n \"volume\": 0.048633,\n \"peso\": 1.2\n },\n\t\t{\n \"altezza\": 39,\n \"larghezza\": 29,\n \"lunghezza\": 43,\n \"volume\": 0.048633,\n \"peso\": 1.2\n }\n ],\n \"dettagli_ordine\" : [\n {\n \"sku\" : \"PBK1\",\n \"description\": \"Cosa blu\",\n \"qty\": \"1\",\n \"barcode_riga\": \"12345464\",\n \"hs_code\": \"123456454\",\n \"prezzo_singolo\": \"12.50\",\n \"peso_riga\": \"1\"\n },{\n \"sku\" : \"PBK12\",\n \"description\": \"Cosa blu e rossa\",\n \"qty\": \"1\",\n \"barcode_riga\": \"12345465\",\n \"hs_code\": \"123456454\",\n \"prezzo_singolo\": \"25.00\",\n \"peso_riga\": \"1\"\n }\n ]\n}",
CURLOPT_HTTPHEADER => [
"x-api-key: YOUR-API-KEY"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
import http.client
conn = http.client.HTTPSConnection("api.gsped.it")
payload = json.dumps({
"client_id": 390,
"colli": 2,
"contrassegno": 0,
"corriere": 104,
"ddt_alpha": "TEST_GSPED",
"ddt_num": 12346,
"origine": "IT",
"dropshipping": 0,
"peso": 2.4,
"rcpt_addr": "115 E Endfield Rd",
"rcpt_cap": "19053",
"rcpt_city": "Feasterville Trevose",
"rcpt_contact": "Tester",
"rcpt_country_code": "US",
"rcpt_email": "[email protected]",
"rcpt_name": "TEST DESTINATARIO",
"rcpt_phone": "2159005458",
"rcpt_prov": "PA",
"servizio": 9,
"valore": 0,
"valore_doganale": 37.50,
"valuta": "EUR",
"volume": 0.0972,
"daticolli": [
{
"altezza": 39,
"larghezza": 29,
"lunghezza": 43,
"volume": 0.048633,
"peso": 1.2
},
{
"altezza": 39,
"larghezza": 29,
"lunghezza": 43,
"volume": 0.048633,
"peso": 1.2
}
],
"dettagli_ordine": [
{
"sku": "PBK1",
"description": "Cosa blu",
"qty": "1",
"barcode_riga": "12345464",
"hs_code": "123456454",
"prezzo_singolo": "12.50",
"peso_riga": "1"
},
{
"sku": "PBK12",
"description": "Cosa blu e rossa",
"qty": "1",
"barcode_riga": "12345465",
"hs_code": "123456454",
"prezzo_singolo": "25.00",
"peso_riga": "1"
}
]
})
headers = { 'x-api-key': "YOUR-API-KEY" }
conn.request("POST", "/sandbox/shipment", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.gsped.it/sandbox/shipment"
payload := strings.NewReader("{\n \"client_id\": 390,\n \"colli\": 2,\n \"contrassegno\": 0,\n \"corriere\": 104,\n \"ddt_alpha\": \"TEST_GSPED\",\n \"ddt_num\": 12346,\n \"origine\": \"IT\",\n\t\"dropshipping\" : 0,\n \"peso\": 2.4,\n \"rcpt_addr\": \"115 E Endfield Rd\",\n \"rcpt_cap\": \"19053\",\n \"rcpt_city\": \"Feasterville Trevose\",\n \"rcpt_contact\": \"Tester\",\n \"rcpt_country_code\": \"US\",\n \"rcpt_email\": \"[email protected]\",\n \"rcpt_name\": \"TEST DESTINATARIO\",\n \"rcpt_phone\": \"2159005458\",\n \"rcpt_prov\": \"PA\",\n \"servizio\": 9,\n \"valore\": 0,\n \"valore_doganale\": 37.50,\n \"valuta\": \"EUR\",\n \"volume\": 0.0972,\n\t\"daticolli\": [\n {\n \"altezza\": 39,\n \"larghezza\": 29,\n \"lunghezza\": 43,\n \"volume\": 0.048633,\n \"peso\": 1.2\n },\n\t\t{\n \"altezza\": 39,\n \"larghezza\": 29,\n \"lunghezza\": 43,\n \"volume\": 0.048633,\n \"peso\": 1.2\n }\n ],\n \"dettagli_ordine\" : [\n {\n \"sku\" : \"PBK1\",\n \"description\": \"Cosa blu\",\n \"qty\": \"1\",\n \"barcode_riga\": \"12345464\",\n \"hs_code\": \"123456454\",\n \"prezzo_singolo\": \"12.50\",\n \"peso_riga\": \"1\"\n },{\n \"sku\" : \"PBK12\",\n \"description\": \"Cosa blu e rossa\",\n \"qty\": \"1\",\n \"barcode_riga\": \"12345465\",\n \"hs_code\": \"123456454\",\n \"prezzo_singolo\": \"25.00\",\n \"peso_riga\": \"1\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "YOUR-API-KEY")