Oven i batteri-sporet leverer qr3.app nu en anden komplet DPP-kategori: tekstiler under Frankrigs Loi AGEC (Décret 2022-748) og udkastet til ESPR's delegerede retsakt. 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:
- Et komplet tekstil-DPP-skema, inklusive AGEC's obligatoriske kæde og ESPR opt-in.
- En live-forhåndsvisning inde i opret-formularen, der øjeblikkeligt markerer AGEC-overtrædelser og greenwashing.
- 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 stadig på udkaststadiet — det centrale EU-DPP-register går live 2026-07-19. 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.
- Fra 2025 gælder AGEC for tekstilsælgere med over 10 mio. € i omsætning eller over 10.000 enheder. Mindre producenter følger i 2027, og næsten alle i 2028.
- 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 i 2027.
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:
| AGEC-artikel | 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 udgør ≥ 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 kunne lancere i 2027 uden en migrering.
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/validatereturnerer nu et ekstraeu_compliance-felt medcompliant,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 "X-Workspace-Id: $WS_ID" \
-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
drafttillive. - Knap Forhåndsvis EU-effekt.
Brugerfladen viser dig øjeblikkeligt, uden at gemme passet:
- Nye fejlkort (f.eks.
TEXTILE_AGEC_REQUIREDpå feltstientextile_data.country_weaving_knitting). - En greenwashing-advarsel, der eskalerer fra
warningtilerror, 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 "X-Workspace-Id: $WS_ID" \
-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:
- 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.
- Afkobl dataarbejdet fra compliance-arbejdet. Compliance jagter ikke længere hver eneste datafejl — kør simulatoren én gang, filtrér rent, opret tickets.
- 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 nyeeu_compliance-felt uden ændringer. - Batteri-flows er uændrede.
market_countrieser valgfrit og har som standard[].
Detaljerne finder du i changeloggen og vores politik for API-versionering.
Kom godt i gang
- Dokumentation for tekstil-DPP — skema, mikroplastregel, ESPR opt-in
- Dokumentation for EU-compliance — regelkatalog, live-forhåndsvisning, simulator
- Start gratis — gratis plan, dashboard + API
- Følg med på GitHub — issues, SDK-udgivelser, roadmap
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.