API del pasaporte digital de producto: documentación para desarrolladores
Con la API de cliente, sus propios sistemas crean productos, mantienen campos de datos, publican pasaportes y descargan códigos QR y PDF. Se autentica con una clave de API que usted mismo genera en la plataforma. La descripción completa está disponible como archivo OpenAPI 3.1.
Actualizado: 1 de octubre de 2026
Resumen
La API de cliente es una interfaz REST que utiliza JSON. Trabaja sobre los datos de su mandante, es decir, los mismos productos y pasaportes que ve en la aplicación web. Usos típicos son la conexión de un sistema ERP o PLM, una sincronización nocturna de datos maestros o un script que obtiene códigos QR para imprimir.
La URL base es https://dpp.com2u.selfhost.eu/api/v1/integration. Todas las respuestas son JSON, excepto las descargas de códigos QR y PDF.
Descargar la especificación
La referencia legible por máquina de todos los endpoints, campos, ejemplos y respuestas de error es una especificación OpenAPI 3.1 con el esquema de seguridad ApiKeyAuth:
La propia API ofrece el mismo archivo en GET /api/v1/integration/openapi.json, sin clave. Impórtelo en Swagger UI, Postman o en el generador de código que prefiera. Las descripciones dentro del archivo están redactadas en alemán.
Inicio rápido
- Regístrese o inicie sesión. La API forma parte de las tarifas de pago, consulte Precios.
- Abra el área Mandante en la plataforma y genere la clave de API. Cópiela de inmediato, porque se muestra una sola vez.
- Pruebe la conexión:
curl -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/me
La respuesta indica su mandante, los scopes de la clave, su tarifa y su consumo de llamadas a la API.
Autenticación
Envíe la clave en cada llamada en la cabecera X-API-Key. Authorization: Bearer dpp_key_… funciona igual. El mandante se deduce siempre de la clave; un ID de mandante pasado como parámetro se ignora. La API no acepta tokens de sesión de la aplicación web.
La clave pertenece a la persona que la generó. Las acciones se ejecutan con los derechos de esa persona como propietaria o administradora. Si la persona pierde ese rol, la API responde con 403 hasta que se genere una clave nueva. Generar una clave nueva revoca la anterior de inmediato. La plataforma solo almacena un hash SHA-256 de la clave.
Endpoints
Todas las rutas están bajo /api/v1/integration. Cada endpoint requiere un scope; una clave nueva incluye los cuatro.
| Método y ruta | Finalidad | Scope |
|---|---|---|
GET /me | Mandante, scopes, tarifa, consumo | cualquier clave |
GET /schemas | Esquemas con campos de datos | products:read |
POST /products | Crear un producto, opcionalmente con campos de datos | products:write |
GET /products | Listar productos (status, q, limit, offset) | products:read |
GET /products/{id} | Leer un producto | products:read |
GET /products/{id}/fields | Leer los campos de datos actuales | products:read |
PATCH /products/{id}/fields | Definir campos de datos | products:write |
POST /products/{id}/passports | Crear y publicar un pasaporte | passports:write |
GET /products/{id}/passports | Listar las versiones del pasaporte | passports:read |
POST /passports/{id}/publish | Publicar una versión en borrador | passports:write |
GET /products/{id}/passport/qr | Código QR como PNG o SVG | passports:read |
GET /products/{id}/passport/pdf | Pasaporte como PDF | passports:read |
Crear un producto
name es obligatorio. Sin schema_key se aplica el esquema predeterminado de su mandante; GET /schemas devuelve las claves disponibles. Puede pasar los campos de datos directamente. field_status define el estado de los valores, y solo los valores approved pasan a un pasaporte.
curl -X POST https://dpp.com2u.selfhost.eu/api/v1/integration/products \
-H "X-API-Key: $DPP_API_KEY" -H "Content-Type: application/json" \
-d '{"name":"Battery module X1","category":"Industrial batteries",
"manufacturer_ref":"ART-4711","schema_key":"battery-v1",
"fields":{"battery_chemistry":"LFP"},"field_status":"approved"}'
La respuesta con estado 201 contiene el id del producto. Es también el identificador único de producto codificado en el código QR. Se aplica la cuota de productos de su tarifa, igual que en la aplicación web.
Publicar un pasaporte, descargar el código QR y el PDF
Un pasaporte congela los campos de datos aprobados como una nueva versión. Si faltan campos obligatorios, la API responde con 422 y los enumera en missing_fields.
curl -X POST -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passports
curl -o qr.png -H "X-API-Key: $DPP_API_KEY" \
"https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/qr?format=png&size=600"
curl -o passport.pdf -H "X-API-Key: $DPP_API_KEY" \
https://dpp.com2u.selfhost.eu/api/v1/integration/products/{id}/passport/pdf
Para un código QR vectorial utilice format=svg. El PDF existe solo después de la publicación; antes, la API responde con 404. El código QR apunta a la página pública del pasaporte; para más información, consulte Crear un pasaporte digital de producto desde Excel.
Códigos de error
| Estado | Significado |
|---|---|
| 401 | Clave ausente, no válida, revocada o caducada |
| 402 | Cuota agotada: llamadas a la API, productos o pasaportes |
| 403 | Falta el scope, tarifa sin API, el creador de la clave ya no es propietario ni administrador, mandante bloqueado |
| 404 | Objeto no encontrado o perteneciente a otro mandante |
| 422 | Entrada no válida, campo desconocido o faltan campos obligatorios |
En 401 y 403, detail contiene un objeto con code y message, por ejemplo insufficient_scope o api_not_in_plan. En 402, detail indica el recurso, el límite y el consumo hasta el momento.
Límites
A través de la API se definen campos de datos a nivel de producto. Los campos de lotes o de unidades individuales se mantienen en la aplicación web. No hay un límite de frecuencia, pero sí una cuota de llamadas por tarifa; cada llamada autenticada cuenta. Obtener la especificación no cuenta. Las tarifas y cuotas actuales están en la página de Precios. Para la importación masiva sin la API, utilice la plantilla de datos.
Preguntas frecuentes
- ¿Dónde obtengo una clave de API?
En la plataforma, en el área Mandante. Los propietarios y administradores generan allí la clave. Se muestra una sola vez, y cada mandante tiene exactamente una clave.
- ¿Qué tarifas incluyen la API?
Starter, Professional y Enterprise, no la tarifa gratuita de prueba. Cada pasaporte de la cuota de su tarifa incluye 10 llamadas a la API. Los valores actuales están en la página de precios.
- ¿Hay un límite de frecuencia?
No hay un límite de frecuencia aparte (HTTP 429). El uso se limita con la cuota de llamadas de su tarifa. Cuando se agota, la API responde con 402.
- ¿Puedo cargar la especificación en Swagger UI o Postman?
Sí. El archivo OpenAPI 3.1 está disponible en JSON y YAML y se puede importar en las herramientas y generadores de código habituales.
Empiece con sus datos de producto
Pruébelo gratis durante 30 días: importe los datos, valídelos y publíquelos como pasaporte de producto.