Textil-DPP är live: kontrollera EU-efterlevnad på sekunder — innan du sparar

qr3.app stöder nu kompletta textilpass enligt Frankrikes Loi AGEC + ESPR. Nytt: en live-validerare och simulator som flaggar AGEC-överträdelser, greenwashing och ESPR-mognad direkt i formuläret — innan du sparar.

av qr3.app Team

Textil-DPP är live: kontrollera EU-efterlevnad på sekunder — innan du sparar

Utöver batterispåret levererar qr3.app nu en andra komplett DPP-kategori: textil enligt Frankrikes Loi AGEC (Décret 2022-748) och utkastet till ESPR:s delegerade akt. Samtidigt har vi byggt in en live EU-validerare som körs direkt i dashboarden — innan du sparar ett pass och innan du listar en produkt på en ny marknad.

Sammanfattningsvis, tre saker du inte får på vanliga QR-plattformar:

  1. Ett komplett textil-DPP-schema inklusive AGEC:s obligatoriska kedja och ESPR:s opt-in.
  2. En live-förhandsvisning inuti skapandeformuläret som omedelbart flaggar AGEC-överträdelser och greenwashing.
  3. En efterlevnadssimulator på detaljsidan som svarar på: "vad händer om jag lägger till Frankrike bland mina marknader imorgon?"

Varför textil-DPP är viktigt redan idag

ESPR:s delegerade akt för textil är fortfarande ett utkast — det centrala EU-DPP-registret går live den 2026-07-19. Du kan inte vänta tills dess, eftersom en del av regelverket redan är rättsligt bindande idag:

  • Loi AGEC (Frankrike, sedan 2023-01-01): obligatorisk ursprungskedja, mikroplastvarning, REACH-SVHC-transparens, förbud mot vaga miljöpåståenden.
  • Från 2025 gäller AGEC för textilförsäljare med över 10 miljoner euro i omsättning eller över 10 000 enheter. Mindre tillverkare följer 2027, och nästan alla senast 2028.
  • Antalet förelägganden mot greenwashing nådde rekordnivåer i Frankrike under 2024 — "natural", "biodegradable" eller "écologique" utan bevis är dyrare än en dokumentationsinsats.

Om du skickar textilier till EU (eller bara till Frankrike) är det billigare att bygga upp din DPP-stack nu än att panikmigrera 2027.

Textilschemat i korthet

Vi bygger direkt på AGEC:s katalog över obligatoriska fält:

{
  "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
  }
}

De obligatoriska fälten täcker de fyra AGEC-regler som franska myndigheter oftast tillämpar:

AGEC-artikel Fält Vad valideraren gör
A1 fiber_composition[].recycled_pct Alla fiberandelar måste summera till 100 %
A2–A4 country_weaving_knitting / dyeing_printing / assembly Tre länder krävs så snart FR finns på marknaden
A5 contains_microplastics Tvingas till true när syntetfibrer ≥ 50 %
A6 svhc_substances[] CAS-nummer + koncentration krävs från 0,1 %

Utöver detta stöder vi valfria ESPR-fält (hållbarhet, PEF CO₂, reparations-URL, deadline för reservdelar, återvinningsbarhetsklass). När alla är ifyllda visar dashboarden ett ESPR-ready-märke — perfekt för tillverkare som investerar tid nu för att kunna leverera 2027 utan en migrering.

Live-förhandsvisning: se fel innan du sparar

Det vanliga flödet brukade vara: fyll i formuläret → spara → hoppa till detaljsidan → läs efterlevnadsfelen → gå tillbaka till formuläret. Det gör ont i samma stund som du skapar en batch.

Sedan den här releasen körs EU-valideraren utan tillstånd (stateless) direkt i skapandeformuläret:

  • POST /v1/dpp/validate returnerar nu ett extra fält eu_compliance med compliant, espr_ready, issues[] och en sammanfattning grupperad efter allvarlighetsgrad, utöver Zod-valideringen.
  • Dashboarden renderar problemen direkt under valideringspanelen, grupperade efter error / warning / info.
  • En save-guard-banner dyker upp ovanför skicka-knapparna ("2 fel och 1 varning — spara ändå?") så snart det kvarstår problem. Sparandet blockeras inte, men du ser svart på vitt vad du accepterar.

För dig som utvecklare betyder det: du kan ta in valideraren var som helst — i ditt eget importflöde, i en CI-kontroll, i en Cursor-agent-hook.

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'

Efterlevnadssimulatorn: "vad händer om jag lägger till Frankrike?"

Funktionen jag personligen önskade mig mest är efterlevnadssimulatorn på detaljsidan för ett befintligt DPP. Typiskt scenario:

Du har 500 textilpass i systemet, alla för den tyska marknaden. Säljaren kommer in: "Vi expanderar till Frankrike nästa månad." Frågan: vilka av dina pass bryter plötsligt mot AGEC?

Öppna ett pass i dashboarden så dyker ett nytt kort upp under EU-efterlevnadssektionen: Efterlevnadssimulator.

  • Klicka på chippen FR (bredvid förinställningarna DE/AT/FR/IT/ES/NL) eller skriv in en egen ISO-kod.
  • Valfritt: växla status från draft till live.
  • Knappen Förhandsvisa EU-påverkan.

Gränssnittet visar omedelbart, utan att spara passet:

  • Nya felkort (t.ex. TEXTILE_AGEC_REQUIRED på fältsökvägen textile_data.country_weaving_knitting).
  • En greenwashing-varning som eskalerar från warning till error eftersom FR finns på marknaden.
  • En preview.changed_fields-tagg som exakt pekar ut vilka fält som skulle ändras.

När du är nöjd skickar Spara ändringar ut deltat via PUT /v1/dpp/:id. Om inte — Återställ, och ingenting hände.

Under huven är detta en enda ny 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" }'

Workern slår samman patchen i minnet med det befintliga DPP:et och kör EU-valideraren över resultatet — utan skrivåtkomst. En tom body är tillåten och returnerar det aktuella utlåtandet.

Varför detta är mer än en "nice to have"

Tre skäl till att simulatorn inte är en gimmick:

  1. Förhandskontroll inför marknadsexpansion. Sälj kan på 60 sekunder svara på vilka produkter som är FR-redo och hur dyr en lansering skulle bli.
  2. Frikoppla dataarbete från efterlevnadsarbete. Efterlevnad behöver inte längre jaga varje datafel — kör simulatorn en gång, filtrera rent, öppna ärenden.
  3. AI-agent-vänligt. Endpointen har exakt samma form som POST /v1/dpp/validate. En Cursor- eller Claude-agent kan anropa den direkt från en uppgift som "hitta FR-redo pass" — utan ett miniskript däremellan.

Fortfarande API-first

Allt som syns i dashboarden går att nå via API:et:

  • POST /v1/dpp/validate — stateless validerare för skapandeflöden.
  • POST /v1/dpp/:id/validate-update — stateless validerare för partiella uppdateringar (simulatorn).
  • GET /v1/dpp/:id/eu-compliance — beständig kontroll för befintliga pass (perfekt för CI).
  • POST /v1/dpp/import — CSV/XLSX-massimport med nya textilmallar (GET /v1/dpp/import/templates/textile?format=xlsx).
  • GET /01/{GTIN}/21/{SERIAL} — konsumentvy med AGEC:s mikroplastvarningsruta, ursprungskedja, SVHC-lista, hållbarhetssektion.

Alla tre validerings-endpoints returnerar samma EuComplianceResult-form. Så du bygger gruppering av problem och rendering av allvarlighetsgrad exakt en gång.

Garanti om icke-brytande ändringar

Allt i den här releasen är additivt:

  • Befintliga POST /v1/dpp/validate-klienter kan ignorera det nya eu_compliance-fältet utan ändringar.
  • Batteriflödena är oförändrade.
  • market_countries är valfritt och har standardvärdet [].

Detaljerna finns i changeloggen och vår policy för API-versionering.

Kom igång

Om du har en stor katalog med textilpass eller behöver granska AGEC-/Frankrike-risk, prata med oss — vi är redo för pilotkunder mellan 500 och 50 000 SKU:er.