El DPP textil ya está disponible: verifica el cumplimiento de la UE en segundos, antes de guardar

qr3.app ahora admite pasaportes textiles completos bajo la Loi AGEC de Francia + ESPR. Novedad: un validador y simulador en vivo que detecta infracciones de AGEC, greenwashing y preparación para ESPR dentro del formulario, antes de que guardes.

por qr3.app Team

El DPP textil ya está disponible: verifica el cumplimiento de la UE en segundos, antes de guardar

Además de la línea de baterías, qr3.app ahora incorpora una segunda categoría DPP completa: los textiles bajo la Loi AGEC de Francia (Décret 2022-748) y el borrador del acto delegado ESPR. Al mismo tiempo, hemos integrado un validador de la UE en vivo que se ejecuta dentro del panel de control, antes de guardar un pasaporte y antes de poner un producto a la venta en un nuevo mercado.

En resumen, tres cosas que no obtienes en las plataformas de QR habituales:

  1. Un esquema DPP textil completo que incluye la cadena obligatoria de AGEC y la opción adicional de ESPR.
  2. Una vista previa en vivo dentro del formulario de creación que detecta al instante las infracciones de AGEC y el greenwashing.
  3. Un simulador de cumplimiento en la página de detalle que responde: "¿qué pasa si mañana añado Francia a mis mercados?".

Por qué el DPP textil importa hoy

El acto delegado ESPR para textiles todavía está en fase de borrador: el registro central del DPP de la UE entra en funcionamiento el 2026-07-19. No puedes esperar hasta entonces, porque una parte de la normativa ya es legalmente vinculante hoy:

  • Loi AGEC (Francia, desde el 2023-01-01): cadena de origen obligatoria, advertencia sobre microplásticos, transparencia REACH-SVHC, prohibición de afirmaciones medioambientales vagas.
  • A partir de 2025, la AGEC se aplica a los vendedores de textiles con una facturación >10 M € o >10 000 unidades. Los fabricantes más pequeños se incorporan en 2027, y prácticamente todos en 2028.
  • Los requerimientos de cese y desistimiento por greenwashing alcanzaron un volumen récord en Francia en 2024: "natural", "biodegradable" o "écologique" sin pruebas es más caro que un sprint de documentación.

Si envías textiles a la UE (o incluso solo a Francia), montar tu stack de DPP ahora es más barato que migrar con prisas y pánico en 2027.

El esquema textil de un vistazo

Construimos directamente sobre el catálogo de campos obligatorios de AGEC:

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

Los campos obligatorios cubren las cuatro reglas de AGEC que las autoridades francesas hacen cumplir con más frecuencia:

Artículo AGEC Campo Qué hace el validador
A1 fiber_composition[].recycled_pct Todos los porcentajes de fibra deben sumar el 100 %
A2–A4 country_weaving_knitting / dyeing_printing / assembly Se requieren tres países siempre que FR esté en el mercado
A5 contains_microplastics Se fuerza a true cuando las fibras sintéticas son ≥ 50 %
A6 svhc_substances[] Número CAS + concentración obligatorios a partir del 0,1 %

Además, admitimos campos ESPR opcionales (durabilidad, CO₂ PEF, URL de reparación, plazo de piezas de repuesto, clase de reciclabilidad). Cuando todos están definidos, el panel de control muestra una insignia de ESPR-ready, perfecta para los fabricantes que invierten tiempo ahora para comercializar en 2027 sin necesidad de migración.

Vista previa en vivo: detecta errores antes de guardar

El flujo habitual solía ser: rellenar el formulario → guardar → saltar a la página de detalle → leer los errores de cumplimiento → volver al formulario. Eso resulta doloroso en el momento en que estás creando un lote.

Desde esta versión, el validador de la UE se ejecuta sin estado dentro del formulario de creación:

  • POST /v1/dpp/validate ahora devuelve un campo adicional eu_compliance con compliant, espr_ready, issues[] y un resumen agrupado por gravedad, además de la validación de Zod.
  • El panel de control muestra las incidencias directamente debajo del panel de validación, agrupadas por error / advertencia / información.
  • Un banner de protección al guardar aparece encima de los botones de envío ("2 errores y 1 advertencia: ¿guardar de todos modos?") siempre que queden incidencias. El guardado no se bloquea, pero ves negro sobre blanco lo que estás aceptando.

Para ti como desarrollador, esto significa que puedes integrar el validador en cualquier lugar: dentro de tu propio flujo de importación, en una comprobación de CI, en un hook de agente de Cursor.

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'

El simulador de cumplimiento: "¿y si añado Francia?"

La función que más quería personalmente es el simulador de cumplimiento en la página de detalle de un DPP existente. Escenario típico:

Tienes 500 pasaportes textiles en el sistema, todos para el mercado alemán. Llega ventas: "Vamos a expandirnos a Francia el mes que viene". Pregunta: ¿cuáles de tus pasaportes incumplen de repente la AGEC?

Abre un pasaporte en el panel de control y aparece una nueva tarjeta bajo la sección de cumplimiento de la UE: Simulador de cumplimiento.

  • Haz clic en el chip FR (junto a los preajustes DE/AT/FR/IT/ES/NL) o escribe un código ISO personalizado.
  • Opcional: cambia el estado de draft a live.
  • Botón Vista previa del impacto en la UE.

La interfaz te muestra al instante, sin guardar el pasaporte:

  • Nuevas tarjetas de error (por ejemplo, TEXTILE_AGEC_REQUIRED en la ruta del campo textile_data.country_weaving_knitting).
  • Una advertencia de greenwashing que escala de warning a error porque FR está en el mercado.
  • Una etiqueta preview.changed_fields que señala exactamente qué campos cambiarían.

Cuando estés satisfecho, Guardar cambios envía el delta mediante PUT /v1/dpp/:id. Si no, Restablecer, y no ha pasado nada.

Por debajo, esto es un único endpoint nuevo:

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

El worker fusiona el parche en memoria con el DPP existente y ejecuta el validador de la UE sobre el resultado, sin acceso de escritura. Se permite un cuerpo vacío, que devuelve el veredicto actual.

Por qué esto es más que un "extra agradable"

Tres razones por las que el simulador no es un truco:

  1. Comprobación previa a la venta para la expansión de mercado. Ventas puede responder en 60 segundos qué productos están listos para FR y cuán costoso sería un despliegue.
  2. Desacopla las operaciones de datos de las operaciones de cumplimiento. Cumplimiento ya no persigue cada defecto de datos: ejecuta el simulador una vez, filtra limpiamente, abre tickets.
  3. Apto para agentes de IA. El endpoint tiene exactamente la misma forma que POST /v1/dpp/validate. Un agente de Cursor o Claude puede invocarlo directamente desde una tarea como "encuentra los pasaportes listos para FR", sin necesidad de un mini script intermedio.

Sigue siendo API-first

Todo lo visible en el panel de control es accesible a través de la API:

  • POST /v1/dpp/validate — validador sin estado para los flujos de creación.
  • POST /v1/dpp/:id/validate-update — validador sin estado para actualizaciones parciales (el simulador).
  • GET /v1/dpp/:id/eu-compliance — comprobación persistente para pasaportes existentes (ideal para CI).
  • POST /v1/dpp/import — importación masiva CSV/XLSX con nuevas plantillas textiles (GET /v1/dpp/import/templates/textile?format=xlsx).
  • GET /01/{GTIN}/21/{SERIAL} — vista del consumidor con el recuadro de advertencia de microplásticos de AGEC, cadena de origen, lista SVHC y sección de durabilidad.

Los tres endpoints de validación devuelven la misma forma EuComplianceResult. Así construyes la agrupación de incidencias y el renderizado de gravedad exactamente una sola vez.

Garantía de no romper nada

Todo en esta versión es aditivo:

  • Los clientes existentes de POST /v1/dpp/validate pueden ignorar el nuevo campo eu_compliance sin ningún cambio.
  • Los flujos de baterías permanecen inalterados.
  • market_countries es opcional y su valor por defecto es [].

Encontrarás los detalles en el changelog y en nuestra política de versionado de la API.

Empieza ya

Si tienes un gran catálogo de pasaportes textiles o necesitas auditar el riesgo de AGEC/Francia, habla con nosotros: estamos preparados para clientes piloto de entre 500 y 50 000 SKU.