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:
- Ett komplett textil-DPP-schema inklusive AGEC:s obligatoriska kedja och ESPR:s opt-in.
- En live-förhandsvisning inuti skapandeformuläret som omedelbart flaggar AGEC-överträdelser och greenwashing.
- 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/validatereturnerar nu ett extra fälteu_compliancemedcompliant,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
drafttilllive. - Knappen Förhandsvisa EU-påverkan.
Gränssnittet visar omedelbart, utan att spara passet:
- Nya felkort (t.ex.
TEXTILE_AGEC_REQUIREDpå fältsökvägentextile_data.country_weaving_knitting). - En greenwashing-varning som eskalerar från
warningtillerroreftersom 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:
- 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.
- Frikoppla dataarbete från efterlevnadsarbete. Efterlevnad behöver inte längre jaga varje datafel — kör simulatorn en gång, filtrera rent, öppna ärenden.
- 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 nyaeu_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
- Textil-DPP-dokumentation — schema, mikroplastregel, ESPR opt-in
- EU-efterlevnadsdokumentation — regelkatalog, live-förhandsvisning, simulator
- Börja gratis — gratisplan, dashboard + API
- Följ på GitHub — issues, SDK-releaser, roadmap
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.