Intégrez les DPP en quelques lignes

Intégrez les passeports produits numériques dans votre ERP/PIM via notre API REST. Documentation complète, webhooks, exemples de code.

L'API REST de Prova permet de gérer les passeports produits depuis un ERP, un PIM ou tout système interne : endpoints simples pour créer et mettre à jour les produits et lire les passeports, webhooks pour recevoir des notifications instantanées à chaque événement, et documentation complète avec exemples de code. La sécurité repose sur des clés API hachées, des webhooks signés (HMAC), une limite de requêtes et un journal de chaque appel.

Les données des passeports sont servies en JSON-LD, un format ouvert lisible par les logiciels. L'API est disponible avec les offres Collection et Maison.

API REST V1.0

Intégrez les DPP

en quelques lignes

Reliez Prova à vos outils (ERP, PLM, boutique en ligne, CRM) par l’API REST. Disponible avec les offres Collection et Maison.

Demander un accès à l’API

API RESTful

Endpoints simples et intuitifs pour gérer vos passeports produits en quelques lignes de code.

Webhooks temps réel

Recevez des notifications instantanées pour chaque événement sur vos produits et passeports.

Sécurité

Clés API hachées (SHA-256), webhooks signés (HMAC), limite de requêtes et journal de chaque appel.

Analytics intégrés

Suivez l'utilisation de votre API en temps réel avec des graphiques détaillés.

EXEMPLE INTERACTIF

Prêt à l'emploi

Copiez, collez et adaptez ces exemples dans votre application.

cURL

JavaScript

Python

// Récupérer tous vos produits

const response = await fetch(

'https://vrbamdbnwnnbmyqpohzw.supabase.co/functions/v1/passports-api/v1/products',

headers: {

'Authorization': 'Bearer ect_xxxxxxxx_xxxxx',

'Content-Type': 'application/json'

const { data: products } = await response.json();

products.forEach(product => {

console.log(`${product.name} (${product.sku})`);

});

Endpoints disponibles

Produits, passeports et matériaux, en lecture et en écriture selon les droits de la clé.

GET

/v1/me

Tester la clé, voir l’organisation

/v1/products

Lister les produits

/v1/products/:id

Détail d’un produit

POST

Créer un produit

PATCH

Modifier un produit

DELETE

Supprimer un produit

/v1/passports

Lister les passeports

/v1/passports/:id

Détail d’un passeport

/v1/materials?product_id=…

Matériaux d’un produit

ENDPOINT PUBLIC

Sans authentification

Accès public JSON-LD (GS1 Digital Link)

Dans la logique de l'ESPR, chaque passeport expose un endpoint public pour les systèmes IT. Les données sont structurées au format JSON-LD avec les contextes Schema.org et DPP européen.

/passport-jsonld?id={product_id}

JSON-LD public (GS1 Digital Link)

Content-Negotiation :

Navigateur → page HTML ; système IT → données JSON-LD structurées, via notre résolveur id.useprova.eu.

WEBHOOKS

Notifications en temps réel

Recevez une notification quand une fiche produit est créée ou modifiée, publication comprise, depuis l’application ou l’API. Chaque envoi est signé (HMAC-SHA256).

Vérifier la signature

Chaque envoi (et le bouton « Tester ») porte deux en-têtes : X-Webhook-Timestamp, l’heure de signature en secondes Unix, et X-Webhook-Signature, « sha256= » suivi du HMAC-SHA256, avec le secret du webhook, du texte « horodatage.corps brut ». Recalculez-le, comparez en temps constant et refusez un horodatage de plus de cinq minutes : une requête interceptée ne peut pas être rejouée.

import crypto from 'node:crypto';

// rawBody : le corps reçu, tel quel (avant JSON.parse)

function verify(rawBody, headers, secret) {

const ts = Number(headers['x-webhook-timestamp']);

if (!Number.isInteger(ts) || Math.abs(Date.now() / 1000 - ts) > 300) return false;

const expected = 'sha256=' + crypto

.createHmac('sha256', secret)

.update(`${ts}.${rawBody}`)

.digest('hex');

const given = headers['x-webhook-signature'] ?? '';

return given.length === expected.length

&& crypto.timingSafeEqual(Buffer.from(given), Buffer.from(expected));

Webhook Payload

"event_type": "product.updated",

"timestamp": "2026-10-05T10:30:00.000Z",

"organization_id": "7c1e2a90-…",

"resource_id": "5f284d8e-…",

"payload": {

"id": "5f284d8e-…",

"name": "T-shirt coton et lin",

"sku": "TSH-LIN-001",

"gtin": "03612345678904",

"is_active": true,

"access_level": "public",

"updated_at": "2026-10-05T10:29:58.000Z"

Prêt à automatiser ?

Demandez votre accès : nous en parlons lors d’une démo de 30 min.

Réserver une démo

Parler à un expert

Prova sur LinkedIn