Tekstil-DPP er live: tjek EU-compliance på sekunder — før du gemmer

qr3.app understøtter nu komplette tekstilpas under Frankrigs Loi AGEC + ESPR. Nyhed: en live-validator og simulator, der markerer AGEC-overtrædelser, greenwashing og ESPR-parathed direkte i formularen — før du gemmer.

af qr3.app Team

Tekstil-DPP er live: tjek EU-compliance på sekunder — før du gemmer

Oven i batteri-sporet leverer qr3.app nu en anden komplet DPP-kategori: tekstiler under Frankrigs Loi AGEC (Décret 2022-748) med felter forberedt til den forventede, endnu ikke vedtagne delegerede retsakt under ESPR. Samtidig har vi bygget en live EU-validator ind, som kører direkte i dashboardet — før du gemmer et pas og før du lancerer et produkt på et nyt marked.

Kort fortalt — tre ting, du ikke får på typiske QR-platforme:

  1. Et komplet tekstil-DPP-skema, inklusive AGEC's obligatoriske kæde og ESPR opt-in.
  2. En live-forhåndsvisning inde i opret-formularen, der øjeblikkeligt markerer AGEC-overtrædelser og greenwashing.
  3. En compliance-simulator på detaljesiden, der besvarer: "hvad sker der, hvis jeg tilføjer Frankrig til mine markeder i morgen?"

Hvorfor tekstil-DPP'en er vigtig allerede i dag

ESPR's delegerede retsakt for tekstiler er endnu ikke vedtaget — Kommissionens arbejdsprogram planlægger foreløbigt dens vedtagelse til 2027, og dens krav gælder generelt tidligst 18 måneder efter ikrafttræden. Du kan ikke vente til da, for en del af reguleringen er allerede juridisk bindende i dag:

  • Loi AGEC (Frankrig, siden 2023-01-01): obligatorisk oprindelseskæde, advarsel om mikroplast, REACH-SVHC-gennemsigtighed, forbud mod vage miljøpåstande.
  • Siden 2025 gælder AGEC for producenter, importører og andre aktører, der bringer tekstiler på det franske marked med en årlig omsætning på over 10 mio. € fra de omfattede produkter og mindst 10.000 enheder om året (fra 2023: 50 mio. € og 25.000 enheder; fra 2024: 20 mio. € og 10.000 enheder).
  • Antallet af påbud mod greenwashing nåede et rekordniveau i Frankrig i 2024 — "naturlig", "biologisk nedbrydelig" eller "écologique" uden dokumentation er dyrere end en dokumentationssprint.

Hvis du sender tekstiler ind i EU (eller bare til Frankrig), er det billigere at få din DPP-stak på plads nu end at lave en panikmigrering, når ESPR-delegerede retsakt finder anvendelse.

Tekstil-skemaet i overblik

Vi bygger direkte på AGEC's katalog over obligatoriske felter:

{
  "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 obligatoriske felter dækker de fire AGEC-regler, som de franske myndigheder oftest håndhæver:

Intern kontrol-ID Felt Hvad validatoren gør
A1 fiber_composition[].recycled_pct Alle fiberprocenter skal samlet give 100 %
A2–A4 country_weaving_knitting / dyeing_printing / assembly Tre lande kræves, så snart FR er på markedslisten
A5 contains_microplastics Tvinges til true, når syntetiske fibre overstiger 50 %
A6 svhc_substances[] CAS-nummer + koncentration kræves fra 0,1 %

Oven i det understøtter vi valgfrie ESPR-felter (holdbarhed, PEF CO₂, reparations-URL, deadline for reservedele, genanvendelsesklasse). Når alle er udfyldt, viser dashboardet et ESPR-ready-mærke — perfekt for producenter, der investerer tid nu for at være klar uden en migrering, når ESPR's delegerede retsakt finder anvendelse.

Live-forhåndsvisning: se fejl, før du gemmer

Det typiske flow plejede at være: udfyld formularen → gem → hop til detaljesiden → læs compliance-fejlene → tilbage til formularen. Det gør ondt i det øjeblik, du opretter et batch.

Siden denne udgivelse kører EU-validatoren statelessly inde i opret-formularen:

  • POST /v1/dpp/validate returnerer nu et ekstra eu_compliance-felt med compliant, espr_ready, issues[] og et resumé grupperet efter alvorlighedsgrad, ud over Zod-valideringen.
  • Dashboardet viser issues direkte under valideringspanelet, grupperet efter fejl / advarsel / info.
  • Et gem-vagt-banner dukker op over send-knapperne ("2 fejl og 1 advarsel — gem alligevel?"), når der stadig er issues. Gemningen er ikke blokeret, men du ser sort på hvidt, hvad du accepterer.

For dig som udvikler betyder det: du kan bruge validatoren overalt — inde i dit eget importflow, i et CI-tjek, i et Cursor-agent-hook.

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

Compliance-simulatoren: "hvad nu hvis jeg tilføjer Frankrig?"

Den funktion, jeg personligt ønskede mig mest, er compliance-simulatoren på detaljesiden for et eksisterende DPP. Typisk scenarie:

Du har 500 tekstilpas i systemet, alle til det tyske marked. Salg kommer ind: "Vi ekspanderer til Frankrig i næste måned." Spørgsmål: hvilke af dine pas bryder pludselig AGEC?

Åbn et pas i dashboardet, og et nyt kort dukker op under EU-compliance-sektionen: Compliance-simulator.

  • Klik på chippen FR (ved siden af presets DE/AT/FR/IT/ES/NL) eller indtast en brugerdefineret ISO-kode.
  • Valgfrit: skift status fra draft til live.
  • Knap Forhåndsvis EU-effekt.

Brugerfladen viser dig øjeblikkeligt, uden at gemme passet:

  • Nye fejlkort (f.eks. TEXTILE_AGEC_REQUIRED på feltstien textile_data.country_weaving_knitting).
  • En greenwashing-advarsel, der eskalerer fra warning til error, fordi FR er på markedslisten.
  • Et preview.changed_fields-tag, der præcist udpeger, hvilke felter der ville ændre sig.

Når du er tilfreds, sender Gem ændringer deltaen videre via PUT /v1/dpp/:id. Hvis ikke — Nulstil, og intet skete.

Under motorhjelmen er dette ét nyt endpoint:

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

Workeren fletter patchet sammen med det eksisterende DPP i hukommelsen og kører EU-validatoren over resultatet — uden skriveadgang. En tom body er tilladt og returnerer den aktuelle vurdering.

Hvorfor det er mere end et "nice to have"

Tre grunde til, at simulatoren ikke er en gimmick:

  1. Pre-sales-tjek til markedsekspansion. Salg kan på 60 sekunder svare på, hvilke produkter der er FR-klare, og hvor dyr en udrulning ville være.
  2. Afkobl dataarbejdet fra compliance-arbejdet. Compliance jagter ikke længere hver eneste datafejl — kør simulatoren én gang, filtrér rent, opret tickets.
  3. AI-agent-venligt. Endpointet har præcis samme form som POST /v1/dpp/validate. En Cursor- eller Claude-agent kan kalde det direkte fra en opgave som "find FR-klare pas" — uden et mini-script imellem.

Stadig API-first

Alt, der er synligt i dashboardet, kan nås via API'et:

  • POST /v1/dpp/validate — stateless validator til opret-flows.
  • POST /v1/dpp/:id/validate-update — stateless validator til delvise opdateringer (simulatoren).
  • GET /v1/dpp/:id/eu-compliance — vedvarende tjek af eksisterende pas (perfekt til CI).
  • POST /v1/dpp/import — bulk-import via CSV/XLSX med nye tekstilskabeloner (GET /v1/dpp/import/templates/textile?format=xlsx).
  • GET /01/{GTIN}/21/{SERIAL} — forbrugervisning med AGEC-mikroplastadvarselsboks, oprindelseskæde, SVHC-liste og holdbarhedssektion.

Alle tre validator-endpoints returnerer den samme EuComplianceResult-form. Så du bygger gruppering af issues og rendering af alvorlighedsgrader præcis én gang.

Garanti uden breaking changes

Alt i denne udgivelse er additivt:

  • Eksisterende POST /v1/dpp/validate-klienter kan ignorere det nye eu_compliance-felt uden ændringer.
  • Batteri-flows er uændrede.
  • market_countries er valgfrit og har som standard [].

Detaljerne finder du i changeloggen og vores politik for API-versionering.

Kom godt i gang

Hvis du har et stort katalog af tekstilpas eller har brug for at revidere din AGEC-/Frankrig-risiko, så tag fat i os — vi er klar til pilotkunder mellem 500 og 50.000 SKU'er.