Vai al contenuto

API del passaporto digitale di prodotto: documentazione per sviluppatori

Con l’API client, i vostri sistemi creano prodotti, aggiornano campi dati, pubblicano passaporti e scaricano codici QR e PDF. Vi autenticate con una chiave API che generate voi stessi nella piattaforma. La descrizione completa è disponibile come file OpenAPI 3.1.

Aggiornato al: 1º ottobre 2026

Panoramica

L’API client è un’interfaccia REST che utilizza JSON. Lavora sui dati del vostro mandante, cioè sugli stessi prodotti e passaporti dell’applicazione web. Gli usi tipici sono il collegamento di un sistema ERP o PLM, una sincronizzazione notturna dei dati di base o uno script che recupera codici QR da stampare.

L’URL di base è https://dpp.com2u.selfhost.eu/api/v1/integration. Tutte le risposte sono in JSON, tranne i download di codici QR e PDF.

Scaricare la specifica

Il riferimento leggibile da macchina di tutti gli endpoint, campi, esempi e risposte di errore è una specifica OpenAPI 3.1 con lo schema di sicurezza ApiKeyAuth:

L’API stessa fornisce lo stesso file a GET /api/v1/integration/openapi.json, senza chiave. Importatelo in Swagger UI, Postman o nel generatore di codice che preferite. Le descrizioni all’interno del file sono redatte in tedesco.

Avvio rapido

  1. Registratevi o accedete. L’API fa parte dei piani a pagamento, vedere Prezzi.
  2. Aprite l’area Mandante nella piattaforma e generate la chiave API. Copiatela subito, perché viene mostrata una sola volta.
  3. Provate la connessione:
curl -H "X-API-Key: $DPP_API_KEY" \
  https://dpp.com2u.selfhost.eu/api/v1/integration/me

La risposta indica il vostro mandante, gli scope della chiave, il vostro piano e il consumo di chiamate API.

Autenticazione

Inviate la chiave a ogni chiamata nell’intestazione X-API-Key. Authorization: Bearer dpp_key_… funziona allo stesso modo. Il mandante viene sempre ricavato dalla chiave; un ID mandante passato come parametro viene ignorato. L’API non accetta i token di sessione dell’applicazione web.

La chiave appartiene alla persona che l’ha generata. Le azioni vengono eseguite con i diritti di tale persona come proprietario o amministratore. Se la persona perde questo ruolo, l’API risponde con 403 finché non viene generata una nuova chiave. Generare una nuova chiave revoca immediatamente la precedente. La piattaforma memorizza solo un hash SHA-256 della chiave.

Endpoint

Tutti i percorsi si trovano sotto /api/v1/integration. Ogni endpoint richiede uno scope; una nuova chiave li possiede tutti e quattro.

Metodo e percorsoScopoScope
GET /meMandante, scope, piano, consumoqualsiasi chiave
GET /schemasSchemi con campi datiproducts:read
POST /productsCreare un prodotto, eventualmente con campi datiproducts:write
GET /productsElencare i prodotti (status, q, limit, offset)products:read
GET /products/{id}Leggere un prodottoproducts:read
GET /products/{id}/fieldsLeggere i campi dati attualiproducts:read
PATCH /products/{id}/fieldsCompilare campi datiproducts:write
POST /products/{id}/passportsCreare e pubblicare un passaportopassports:write
GET /products/{id}/passportsElencare le versioni del passaportopassports:read
POST /passports/{id}/publishPubblicare una versione in bozzapassports:write
GET /products/{id}/passport/qrCodice QR in PNG o SVGpassports:read
GET /products/{id}/passport/pdfPassaporto in PDFpassports:read

Creare un prodotto

name è obbligatorio. Senza schema_key vale lo schema predefinito del vostro mandante; GET /schemas restituisce le chiavi disponibili. Potete passare direttamente i campi dati. field_status definisce lo stato dei valori, e solo i valori approved confluiscono in un passaporto.

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 risposta con stato 201 contiene l’id del prodotto. È anche l’identificativo univoco di prodotto codificato nel codice QR. Vale la quota di prodotti del vostro piano, come nell’applicazione web.

Pubblicare un passaporto, scaricare il codice QR e il PDF

Un passaporto fissa i campi dati approvati come nuova versione. Se mancano campi obbligatori, l’API risponde con 422 e li elenca in 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

Per un codice QR vettoriale usate format=svg. Il PDF esiste solo dopo la pubblicazione; prima, l’API risponde con 404. Il codice QR rimanda alla pagina pubblica del passaporto, vedere Creare un passaporto digitale di prodotto da Excel per saperne di più.

Codici di errore

StatoSignificato
401Chiave assente, non valida, revocata o scaduta
402Quota esaurita: chiamate API, prodotti o passaporti
403Scope mancante, piano senza API, creatore della chiave non più proprietario né amministratore, mandante bloccato
404Oggetto non trovato o appartenente a un altro mandante
422Input non valido, campo sconosciuto o campi obbligatori mancanti

Per 401 e 403, detail contiene un oggetto con code e message, ad esempio insufficient_scope o api_not_in_plan. Per 402, detail indica la risorsa, il limite e il consumo finora.

Limiti

Tramite l’API compilate campi dati a livello di prodotto. I campi di lotti o di singole unità si gestiscono nell’applicazione web. Non c’è un limite di frequenza, ma una quota di chiamate per piano; ogni chiamata autenticata viene conteggiata. Il recupero della specifica non viene conteggiato. I piani e le quote attuali sono riportati nella pagina Prezzi. Per un’importazione in blocco senza API usate il modello di dati.

Domande frequenti

Dove ottengo una chiave API?

Nella piattaforma, nell’area Mandante. I proprietari e gli amministratori vi generano la chiave. Viene mostrata una sola volta e ogni mandante dispone di una sola chiave.

Quali piani includono l’API?

Starter, Professional ed Enterprise, non il piano di prova gratuito. Ogni passaporto della quota del vostro piano include 10 chiamate API. I valori attuali sono riportati nella pagina dei prezzi.

Esiste un limite di frequenza?

Non esiste un limite di frequenza separato (HTTP 429). L’uso è limitato dalla quota di chiamate del vostro piano. Quando è esaurita, l’API risponde con 402.

Posso caricare la specifica in Swagger UI o Postman?

Sì. Il file OpenAPI 3.1 è disponibile in JSON e in YAML e può essere importato nei comuni strumenti e generatori di codice.

Inizia con i tuoi dati di prodotto

Provalo gratis per 30 giorni: importa i dati, controllali e pubblicali come passaporto di prodotto.