Il DPP tessile è online: verifica la conformità UE in pochi secondi — prima di salvare

qr3.app ora supporta i passaporti tessili completi previsti dalla Loi AGEC francese e dall'ESPR. Novità: un validatore e un simulatore in tempo reale che segnalano violazioni AGEC, greenwashing e prontezza ESPR direttamente nel form — prima di salvare.

di qr3.app Team

Il DPP tessile è online: verifica la conformità UE in pochi secondi — prima di salvare

Oltre alla categoria delle batterie, qr3.app introduce ora una seconda categoria DPP completa: i prodotti tessili secondo la Loi AGEC francese (Décret 2022-748) e la bozza dell'atto delegato ESPR. Allo stesso tempo abbiamo integrato un validatore UE in tempo reale che gira direttamente nella dashboard — prima di salvare un passaporto e prima di mettere in vendita un prodotto in un nuovo mercato.

In sintesi, tre cose che le piattaforme QR tradizionali non offrono:

  1. Uno schema DPP tessile completo, comprensivo della catena obbligatoria AGEC e dell'opt-in ESPR.
  2. Un'anteprima in tempo reale all'interno del form di creazione che segnala istantaneamente violazioni AGEC e greenwashing.
  3. Un simulatore di conformità nella pagina di dettaglio che risponde alla domanda: "che cosa succede se domani aggiungo la Francia ai miei mercati?"

Perché il DPP tessile è importante già oggi

L'atto delegato ESPR per i tessili è ancora in fase di bozza — il registro centrale EU DPP entra in funzione il 2026-07-19. Non puoi però aspettare fino ad allora, perché una parte della normativa è già giuridicamente vincolante oggi:

  • Loi AGEC (Francia, dal 2023-01-01): catena di origine obbligatoria, avviso sulle microplastiche, trasparenza REACH-SVHC, divieto di affermazioni ambientali vaghe.
  • Dal 2025 la AGEC si applica ai venditori di prodotti tessili con fatturato superiore a 10 milioni di euro oppure oltre 10.000 unità. I produttori più piccoli seguiranno nel 2027 e, di fatto, quasi tutti entro il 2028.
  • Le diffide per greenwashing hanno raggiunto un volume record in Francia nel 2024 — "naturale", "biodegradabile" o "écologique" senza prove costa più caro di una sessione intensiva di documentazione.

Se spedisci prodotti tessili nell'UE (o anche solo in Francia), allestire ora il tuo stack DPP è più conveniente di una migrazione affannosa nel 2027.

Lo schema tessile in breve

Costruiamo direttamente sul catalogo dei campi obbligatori AGEC:

{
  "category": "textile",
  "gtin": "04012345678901",
  "product_name": "Organic Cotton T-Shirt",
  "manufacturer": "EcoWear GmbH",
  "origin_country": "PT",
  "market_countries": ["DE", "AT", "FR"],
  "textile_data": {
    "fiber_composition": [
      { "material": "cotton", "percentage": 95, "origin_country": "TR", "recycled_pct": 0 },
      { "material": "elastane", "percentage": 5, "origin_country": "IT", "recycled_pct": 0 }
    ],
    "country_weaving_knitting": "PT",
    "country_dyeing_printing": "PT",
    "country_assembly": "PT",
    "contains_microplastics": false
  }
}

I campi obbligatori coprono le quattro regole AGEC che le autorità francesi fanno rispettare più di frequente:

Articolo AGEC Campo Cosa fa il validatore
A1 fiber_composition[].recycled_pct Tutte le percentuali delle fibre devono sommare al 100%
A2–A4 country_weaving_knitting / dyeing_printing / assembly Tre paesi richiesti ogni volta che FR è tra i mercati
A5 contains_microplastics Forzato a true quando le fibre sintetiche sono ≥ 50%
A6 svhc_substances[] Numero CAS + concentrazione richiesti a partire dallo 0,1%

In aggiunta supportiamo campi ESPR opzionali (durabilità, PEF CO₂, URL di riparazione, scadenza per i ricambi, classe di riciclabilità). Quando sono tutti compilati, la dashboard mostra un badge ESPR-ready — perfetto per i produttori che investono tempo ora per essere pronti nel 2027 senza dover affrontare una migrazione.

Anteprima in tempo reale: vedi gli errori prima di salvare

Il flusso tipico era: compili il form → salvi → passi alla pagina di dettaglio → leggi gli errori di conformità → torni al form. Una sofferenza nel momento in cui stai creando un lotto.

A partire da questa release, il validatore UE gira in modalità stateless all'interno del form di creazione:

  • POST /v1/dpp/validate restituisce ora un campo aggiuntivo eu_compliance con compliant, espr_ready, issues[] e un riepilogo raggruppato per gravità, oltre alla validazione Zod.
  • La dashboard mostra i problemi direttamente sotto il pannello di validazione, raggruppati per error / warning / info.
  • Un banner save-guard compare sopra i pulsanti di invio ("2 errori e 1 avviso — salvare comunque?") ogni volta che restano dei problemi. Il salvataggio non viene bloccato, ma vedi nero su bianco che cosa stai accettando.

Per te come sviluppatore questo significa: puoi usare il validatore ovunque — nel tuo flusso di import, in un controllo CI, in un hook di un agente Cursor.

curl -X POST https://qr3.app/v1/dpp/validate \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-Workspace-Id: $WS_ID" \
  -H "Content-Type: application/json" \
  -d @textile-payload.json | jq '.data.eu_compliance.summary'

Il simulatore di conformità: "e se aggiungessi la Francia?"

La funzionalità che desideravo di più in prima persona è il simulatore di conformità nella pagina di dettaglio di un DPP esistente. Scenario tipico:

Hai 500 passaporti tessili nel sistema, tutti per il mercato tedesco. Arriva il commerciale: "Ci espandiamo in Francia il mese prossimo." Domanda: quali dei tuoi passaporti vanno improvvisamente fuori norma rispetto alla AGEC?

Apri un passaporto nella dashboard e nella sezione di conformità UE compare una nuova scheda: Simulatore di conformità.

  • Clicca il chip FR (accanto ai preset DE/AT/FR/IT/ES/NL) oppure digita un codice ISO personalizzato.
  • Opzionale: cambia lo stato da draft a live.
  • Pulsante Anteprima impatto UE.

L'interfaccia ti mostra istantaneamente, senza salvare il passaporto:

  • Nuove schede di errore (ad esempio TEXTILE_AGEC_REQUIRED sul percorso del campo textile_data.country_weaving_knitting).
  • Un avviso di greenwashing che passa da warning a error perché FR è tra i mercati.
  • Un tag preview.changed_fields che indica con precisione quali campi cambierebbero.

Quando sei soddisfatto, Salva modifiche invia il delta tramite PUT /v1/dpp/:id. In caso contrario — Reset, e non è successo nulla.

Dietro le quinte tutto questo è un unico nuovo endpoint:

curl -X POST https://qr3.app/v1/dpp/$DPP_ID/validate-update \
  -H "Authorization: Bearer $API_KEY" \
  -H "X-Workspace-Id: $WS_ID" \
  -H "Content-Type: application/json" \
  -d '{ "market_countries": ["DE", "FR"], "status": "live" }'

Il worker unisce la patch in memoria con il DPP esistente ed esegue il validatore UE sul risultato — senza alcun accesso in scrittura. È ammesso un body vuoto, che restituisce il verdetto attuale.

Perché questo è molto più di un "bello da avere"

Tre motivi per cui il simulatore non è un gadget:

  1. Verifica pre-vendita per l'espansione di mercato. Il commerciale può rispondere in 60 secondi su quali prodotti sono pronti per la FR e quanto costerebbe un rollout.
  2. Disaccoppia le operazioni sui dati da quelle di conformità. Il team conformità non deve più rincorrere ogni difetto nei dati — esegui il simulatore una volta, filtra in modo pulito, apri i ticket.
  3. Adatto agli agenti AI. L'endpoint ha esattamente la stessa forma di POST /v1/dpp/validate. Un agente Cursor o Claude può richiamarlo direttamente da un task come "trova i passaporti pronti per la FR" — senza uno script intermedio.

Sempre API-first

Tutto ciò che è visibile nella dashboard è raggiungibile via API:

  • POST /v1/dpp/validate — validatore stateless per i flussi di creazione.
  • POST /v1/dpp/:id/validate-update — validatore stateless per gli aggiornamenti parziali (il simulatore).
  • GET /v1/dpp/:id/eu-compliance — controllo persistente per i passaporti esistenti (ottimo per la CI).
  • POST /v1/dpp/import — import massivo CSV/XLSX con i nuovi template tessili (GET /v1/dpp/import/templates/textile?format=xlsx).
  • GET /01/{GTIN}/21/{SERIAL} — vista consumer con il box di avviso AGEC sulle microplastiche, la catena di origine, la lista SVHC e la sezione sulla durabilità.

Tutti e tre gli endpoint del validatore restituiscono la stessa struttura EuComplianceResult. Così sviluppi il raggruppamento dei problemi e il rendering della gravità una volta sola.

Garanzia non-breaking

Tutto ciò che fa parte di questa release è additivo:

  • I client esistenti di POST /v1/dpp/validate possono ignorare il nuovo campo eu_compliance senza alcuna modifica.
  • I flussi delle batterie restano invariati.
  • market_countries è opzionale e ha come valore predefinito [].

I dettagli sono nel changelog e nella nostra policy di versioning dell'API.

Come iniziare

Se hai un ampio catalogo di passaporti tessili o devi valutare il rischio AGEC/Francia, contattaci — siamo attrezzati per clienti pilota con un numero di SKU compreso tra 500 e 50.000.