Bovenop de battery-lane levert qr3.app nu een tweede volledige DPP-categorie: textiel onder de Franse Loi AGEC (Décret 2022-748) en het ontwerp van de ESPR delegated act. Tegelijk hebben we een live EU-validator ingebouwd die binnen het dashboard draait — voordat je een paspoort opslaat en voordat je een product in een nieuwe markt aanbiedt.
TL;DR, drie dingen die je op gangbare QR-platformen niet krijgt:
- Een volledig textiel-DPP-schema inclusief de verplichte AGEC-keten en ESPR-opt-in.
- Een live preview in het aanmaakformulier die AGEC-overtredingen en greenwashing direct signaleert.
- Een compliance-simulator op de detailpagina die de vraag beantwoordt: "wat gebeurt er als ik morgen Frankrijk aan mijn markten toevoeg?"
Waarom het textiel-DPP er vandaag al toe doet
De ESPR textile delegated act is nog in ontwerp — het centrale EU DPP-register gaat live op 2026-07-19. Tot dan wachten is geen optie, want een deel van de regelgeving is vandaag al juridisch bindend:
- Loi AGEC (Frankrijk, sinds 2023-01-01): verplichte herkomstketen, microplastics-waarschuwing, REACH-SVHC-transparantie en een verbod op vage milieuclaims.
- Vanaf 2025 geldt AGEC voor textielverkopers met >€10M omzet of >10.000 stuks. Kleinere fabrikanten volgen in 2027 en vrijwel iedereen tegen 2028.
- Sommatiebrieven tegen greenwashing bereikten in Frankrijk in 2024 een recordaantal — "natuurlijk", "biologisch afbreekbaar" of "écologique" zonder bewijs is duurder dan een documentatiesprint.
Verkoop je textiel naar de EU (of zelfs alleen naar Frankrijk), dan is je DPP-stack nu opzetten goedkoper dan in 2027 in paniek migreren.
Het textielschema in één oogopslag
We bouwen direct voort op de catalogus van verplichte AGEC-velden:
{
"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 verplichte velden dekken de vier AGEC-regels die de Franse autoriteiten het vaakst handhaven:
| AGEC-artikel | Veld | Wat de validator doet |
|---|---|---|
| A1 | fiber_composition[].recycled_pct |
Alle vezelpercentages moeten samen 100% zijn |
| A2–A4 | country_weaving_knitting / dyeing_printing / assembly |
Drie landen verplicht zodra FR in de markt zit |
| A5 | contains_microplastics |
Geforceerd op true bij synthetische vezels ≥ 50% |
| A6 | svhc_substances[] |
CAS-nummer + concentratie verplicht vanaf 0,1% |
Daarbovenop ondersteunen we optionele ESPR-velden (duurzaamheid, PEF CO₂, reparatie-URL, deadline voor reserveonderdelen, recyclebaarheidsklasse). Zijn ze allemaal ingevuld, dan toont het dashboard een ESPR-ready-badge — perfect voor fabrikanten die nu tijd investeren om in 2027 zonder migratie live te gaan.
Live preview: zie fouten voordat je opslaat
De gebruikelijke flow was: formulier invullen → opslaan → naar de detailpagina springen → compliancefouten lezen → terug naar het formulier. Dat doet pijn op het moment dat je een batch aanmaakt.
Sinds deze release draait de EU-validator stateless binnen het aanmaakformulier:
POST /v1/dpp/validategeeft nu een extra veldeu_complianceterug metcompliant,espr_ready,issues[]en een samenvatting gegroepeerd per ernst, naast de Zod-validatie.- Het dashboard rendert de issues direct onder het validatiepaneel, gegroepeerd op error / warning / info.
- Een save-guard-banner verschijnt boven de verzendknoppen ("2 fouten en 1 waarschuwing — toch opslaan?") zodra er issues overblijven. Het opslaan wordt niet geblokkeerd, maar je ziet zwart-op-wit wat je accepteert.
Voor jou als ontwikkelaar betekent dit: je kunt de validator overal inzetten — in je eigen importflow, in een CI-check, in een 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'
De compliance-simulator: "wat als ik Frankrijk toevoeg?"
De feature die ik persoonlijk het liefst wilde, is de compliance-simulator op de detailpagina van een bestaand DPP. Typisch scenario:
Je hebt 500 textielpaspoorten in het systeem, allemaal voor de Duitse markt. Sales komt binnen: "We breiden volgende maand uit naar Frankrijk." De vraag: welke van je paspoorten breken plotseling met AGEC?
Open een paspoort in het dashboard en onder de EU-compliancesectie verschijnt een nieuwe kaart: Compliance-simulator.
- Klik op de chip FR (naast de presets DE/AT/FR/IT/ES/NL) of typ een eigen ISO-code.
- Optioneel: zet de status van
draftoplive. - Knop Preview EU impact.
De UI laat je meteen zien, zonder het paspoort op te slaan:
- Nieuwe foutkaarten (bijv.
TEXTILE_AGEC_REQUIREDop het veldpadtextile_data.country_weaving_knitting). - Een greenwashing-waarschuwing die escaleert van
warningnaarerroromdat FR in de markt zit. - Een tag
preview.changed_fieldsdie precies aanwijst welke velden zouden veranderen.
Ben je tevreden, dan duwt Save changes de delta door via PUT /v1/dpp/:id. Zo niet — Reset, en er is niets gebeurd.
Onder de motorkap is dit één nieuw 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" }'
De worker voegt de patch in het geheugen samen met het bestaande DPP en draait de EU-validator over het resultaat — zonder schrijftoegang. Een lege body is toegestaan en geeft het huidige oordeel terug.
Waarom dit meer is dan een "nice to have"
Drie redenen waarom de simulator geen gimmick is:
- Pre-sales-check voor marktexpansie. Sales kan binnen 60 seconden zeggen welke producten FR-ready zijn en hoe duur een uitrol zou worden.
- Ontkoppel data-ops van compliance-ops. Compliance hoeft niet langer elk datadefect achterna te jagen — draai de simulator één keer, filter schoon, open tickets.
- AI-agent-vriendelijk. Het endpoint heeft exact dezelfde vorm als
POST /v1/dpp/validate. Een Cursor- of Claude-agent kan het direct aanroepen vanuit een taak als "vind FR-ready paspoorten" — zonder tussenliggend mini-script.
Nog steeds API-first
Alles wat zichtbaar is in het dashboard, is bereikbaar via de API:
POST /v1/dpp/validate— stateless validator voor aanmaakflows.POST /v1/dpp/:id/validate-update— stateless validator voor gedeeltelijke updates (de simulator).GET /v1/dpp/:id/eu-compliance— persistente check voor bestaande paspoorten (ideaal voor CI).POST /v1/dpp/import— CSV/XLSX-bulkimport met nieuwe textieltemplates (GET /v1/dpp/import/templates/textile?format=xlsx).GET /01/{GTIN}/21/{SERIAL}— consumentenweergave met de AGEC-microplastics-waarschuwingsbox, herkomstketen, SVHC-lijst en duurzaamheidssectie.
Alle drie de validator-endpoints geven dezelfde EuComplianceResult-vorm terug. Zo bouw je issue-groepering en severity-rendering precies één keer.
Non-breaking-garantie
Alles in deze release is additief:
- Bestaande
POST /v1/dpp/validate-clients kunnen het nieuwe veldeu_compliancezonder aanpassingen negeren. - Battery-flows blijven ongewijzigd.
market_countriesis optioneel en valt standaard terug op[].
Details staan in de changelog en ons API-versioneringsbeleid.
Aan de slag
- Textiel-DPP-documentatie — schema, microplastics-regel, ESPR-opt-in
- EU-compliance-documentatie — regelcatalogus, live preview, simulator
- Gratis starten — gratis plan, dashboard + API
- Volg ons op GitHub — issues, SDK-releases, roadmap
Heb je een grote catalogus textielpaspoorten of moet je AGEC/Frankrijk-risico's auditen, neem dan contact met ons op — we zijn ingericht voor pilotklanten tussen 500 en 50.000 SKU's.