> For the complete documentation index, see [llms.txt](https://apidocs.gsped.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.gsped.com/spedizioni-e-dintorni/shipment/casi-duso/riforma-doganale-ue-2026.md).

# Riforma doganale UE 2026

Codici prodotto (PID) e tipo di destinatario per le spedizioni importate nell'UE

Con la riforma doganale UE 2026 alcuni corrieri richiedono, per le spedizioni di basso valore da fuori UE verso destinatari nell'UE, i codici identificativi di ogni prodotto spedito (Product Identifier, PID).

I codici si indicano su ogni riga di [dettagli\_ordine](/spedizioni-e-dintorni/shipment/shipment-objects/dettagli_ordine.md), oppure nelle `rows` di [Orders](/gestione-ordini/orders.md), nell'oggetto `extra_data.pid`.

```json
{
    "rcpt_type": 1,
    "dettagli_ordine": [
        {
            "sku": "PBK1",
            "description": "Cosa blu",
            "qty": "1",
            "um": "PCS",
            "barcode_riga": "8001234567890",
            "hs_code": "123456454",
            "prezzo_singolo": "12.50",
            "peso_riga": "1",
            "country_of_origin": "CN",
            "extra_data": {
                "pid": {
                    "merchant": "PBK1-BLU",
                    "manufacturer": "MF-001",
                    "standardized": "8001234567890",
                    "broker": "BRK-001"
                }
            }
        }
    ]
}
```

Rispetto alla chiamata originale della [Shipment POST](/spedizioni-e-dintorni/shipment.md#shipment-post) si aggiungono questi campi con relativa descrizione

<table data-full-width="true"><thead><tr><th width="330">Campo</th><th width="104" data-type="checkbox">Required</th><th width="87">Type</th><th>Descrizione</th></tr></thead><tbody><tr><td>rcpt_type</td><td>false</td><td>int</td><td>Tipo di destinatario:<br>- 1 : Privato<br>- 2 : Azienda<br>Se non indicato vale 0 (non indicato)</td></tr><tr><td>dettagli_ordine.extra_data.pid.merchant</td><td>false</td><td>string</td><td>Codice venditore del prodotto, max 100 char<br>Se non indicato viene usato lo sku della riga, se manca il barcode_riga</td></tr><tr><td>dettagli_ordine.extra_data.pid.manufacturer</td><td>false</td><td>string</td><td>Codice produttore del prodotto, max 100 char</td></tr><tr><td>dettagli_ordine.extra_data.pid.standardized</td><td>false</td><td>string</td><td>Codice EAN/GTIN del prodotto: GTIN-8, GTIN-12, GTIN-13, GTIN-14 o ISBN-10 con cifra di controllo valida, spazi e trattini vengono rimossi<br>Se non indicato viene usato il barcode_riga, solo se è un GTIN valido</td></tr><tr><td>dettagli_ordine.extra_data.pid.broker</td><td>false</td><td>string</td><td>Codice broker, max 64 char</td></tr></tbody></table>

{% hint style="info" %}
`extra_data` può essere inviato come oggetto o come stringa JSON.\
Chiavi diverse da quelle indicate o codici non validi vengono rifiutati con errore 400.\
Un codice vuoto o `null` cancella il codice salvato, le altre chiavi di `extra_data` non vengono modificate.
{% endhint %}

## Spedizioni soggette ai controlli

I controlli vengono eseguiti per i corrieri DHL, Spring e FedEx sulle spedizioni con:

* destinatario privato o non indicato (`rcpt_type` 1 o 0)
* mittente fuori UE e destinatario nell'UE
* valore fino a 150 €, i valori in altra valuta vengono convertiti in euro con il cambio del giorno

Le spedizioni di reso sono escluse e non trasmettono i codici prodotto.

## Errori

Con destinatario privato (`rcpt_type` 1), se un codice indicato nella richiesta supera la lunghezza accettata dal corriere la spedizione va in errore (status 0.6) e il campo `error` riporta la riga da correggere sull'ordine.

```
ERRORE - Codice prodotto più lungo di quanto accetta il corriere, correggerlo sull'ordine: riga 2 (sku PBK1): codice venditore di 41 caratteri, limite 35
```

| Corriere | Lunghezza massima |
| -------- | ----------------- |
| DHL      | 35 char           |
| Spring   | 64 char           |

{% hint style="info" %}
I codici ricavati da sku o barcode\_riga non bloccano la spedizione: vengono troncati dal corriere e segnalati negli avvisi.
{% endhint %}

## Avvisi

Le risposte di [Shipment](/spedizioni-e-dintorni/shipment.md) POST, GET e PATCH, di [Order To Shipment](/gestione-ordini/order-to-shipment.md) e di [BulkShipment - closeMaster](/spedizioni-e-dintorni/spedizioni-consolidate/bulkshipment-closemaster.md) contengono il campo `warnings`, sempre presente, con gli avvisi che non bloccano la spedizione.

```json
"warnings": [
    {
        "code": "PID_MISSING",
        "row": 0,
        "sku": "PBK1",
        "message": "riga 1 (sku PBK1): manca il codice produttore"
    }
]
```

<table data-full-width="true"><thead><tr><th width="178">Campo</th><th width="87">Type</th><th>Descrizione</th></tr></thead><tbody><tr><td>code</td><td>string</td><td>Codice dell'avviso</td></tr><tr><td>row</td><td>int</td><td>Indice della riga ordine partendo da 0, null per gli avvisi sulla spedizione</td></tr><tr><td>sku</td><td>string</td><td>SKU della riga, null per gli avvisi sulla spedizione</td></tr><tr><td>message</td><td>string</td><td>Descrizione dell'avviso</td></tr></tbody></table>

<table data-full-width="true"><thead><tr><th width="250">Codice</th><th>Descrizione</th></tr></thead><tbody><tr><td>PID_TOO_LONG</td><td>Il codice supera la lunghezza accettata dal corriere e verrà troncato</td></tr><tr><td>PID_MISSING</td><td>Manca un codice richiesto dal corriere:<br>- DHL e Spring: codice venditore e codice produttore<br>- Spring: codice broker per le spedizioni verso gli USA</td></tr><tr><td>VALUE_MISSING</td><td>Valore della spedizione mancante, controlli non eseguiti</td></tr><tr><td>VALUE_NOT_VERIFIABLE</td><td>Valore non convertibile in euro, controlli non eseguiti</td></tr><tr><td>COUNTRY_NOT_VERIFIABLE</td><td>Paese di partenza o di arrivo non verificabile, controlli non eseguiti</td></tr></tbody></table>

## Dati trasmessi ai corrieri

| Corriere | Dati trasmessi                                                                                                                          |
| -------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| DHL      | Codice venditore, codice produttore e codice EAN/GTIN, max 35 char. Nelle spedizioni consolidate la master riceve le righe delle figlie |
| FedEx    | Codice venditore, codice produttore e codice EAN/GTIN, se manca il codice EAN/GTIN viene inviato NA                                     |
| Spring   | Tutti i codici, max 64 char, vedi [Spring](/spedizioni-e-dintorni/shipment/corrieri/spring.md)                                          |
| Asendia  | Codice EAN/GTIN, vedi [Asendia](/spedizioni-e-dintorni/shipment/corrieri/asendia.md)                                                    |

{% hint style="info" %}
La fattura proforma generata da Gsped riporta i codici venditore, produttore ed EAN/GTIN quando sono stati indicati.
{% endhint %}
