Méthode GET/passport /01 /{gtin} /10 /{lot}
Lire le passeport numérique publié pour un lot de production, à partir du GTIN de son modèle et du numéro du lot. Aucune clef d'API pour le niveau public.
Sur cette page
Vous lisez le passeport numérique publié pour un lot de production. Le lot est désigné par le GTIN de son modèle et par son numéro de lot, comme dans son lien GS1 Digital Link. En quittant cette page, vous saurez récupérer le contenu du passeport du lot, reconnaître qu'il s'agit d'un lot, et savoir pourquoi cette adresse ne se rabat jamais sur le modèle.
Adresse complète :
GET https://api.sealtrust.io/v1/passport/01/{gtin}/10/{lot}Le même point d'entrée répond aussi sans le préfixe /v1. Utilisez la forme
/v1 pour une nouvelle intégration.
#Autorisation
Aucune pour le niveau public, qui est le niveau par défaut. Les niveaux d'accès
et les comptes qui les obtiennent sont exactement ceux de
GET /passport/01/{gtin} : le même contrôle
est appliqué aux deux adresses, par le même code.
#Plafond d'appels
600 appels par fenêtre de 60 secondes, comptés par adresse IP appelante. Ce
compteur est commun à toutes les lectures (GET) dont l'adresse commence par /passport.
#Paramètres de chemin et de requête
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
gtin | string | oui | Le GTIN du modèle du lot, ramené à quatorze chiffres avant la recherche. Sa clef de contrôle est vérifiée. |
lot | string | oui | Le numéro du lot, comparé à l'identique, casse comprise. Encodez les caractères qui le demandent. |
access_tier | string | non | Le niveau d'accès : public par défaut. Mêmes valeurs que pour le passeport d'un modèle. |
#Corps de la requête
Aucun. Cette requête n'a pas de corps.
#Requête d'exemple
Lecture du passeport du lot LOT-26A du GTIN 03701234567891, au niveau
public.
curl -i "https://api.sealtrust.io/v1/passport/01/03701234567891/10/LOT-26A"const gtin = "03701234567891";
const lot = "LOT-26A";
const response = await fetch(
`https://api.sealtrust.io/v1/passport/01/${gtin}/10/${encodeURIComponent(lot)}`,
);
if (response.status === 404) {
console.log("Aucun passeport publié pour ce lot.");
} else {
const passeport = await response.json();
console.log(passeport.level, passeport.batch_code, passeport.passport_version);
}from urllib.parse import quote
import requests
gtin = "03701234567891"
lot = "LOT-26A"
response = requests.get(
f"https://api.sealtrust.io/v1/passport/01/{gtin}/10/{quote(lot, safe='')}",
timeout=30,
)
if response.status_code == 404:
print("Aucun passeport publié pour ce lot.")
else:
passeport = response.json()
print(passeport["level"], passeport["batch_code"], passeport["passport_version"])#Réponse d'exemple
Code HTTP 200OK
Code HTTP 200.
{
"id": 412,
"product_id": null,
"product_model_id": 7,
"gtin": "03701234567891",
"level": "batch",
"brand_id": 3,
"brand_code": "K7Q2M9XH4B",
"schema_version": "1.0",
"passport_version": 2,
"data": {
"product_identity": {
"gtin": "03701234567891",
"batch_or_serial_identifier": "LOT-26A",
"production_facility": "Atelier de Porto",
"made_in": "PT"
}
},
"data_hash": "9f2c1e7d4b8a6f0e3d5c2b1a9e8f7d6c5b4a3f2e1d0c9b8a7f6e5d4c3b2a1f0e",
"ipfs_uri": null,
"visibility": "public",
"published_at": "2026-09-26T08:00:00+00:00",
"product_name": "T-shirt coton",
"brand_name": "Atelier",
"image_url": "https://atelier.test/images/t-shirt-coton.jpg",
"product_batch_id": 11,
"batch_code": "LOT-26A"
}Toutes les valeurs de cet exemple sont fictives.
| Champ | Type | Description |
|---|---|---|
level | string | Toujours batch ici. Le passeport d'un modèle porte model. |
product_id | integer | Toujours null : un passeport de lot n'est rattaché à aucun exemplaire. |
product_model_id | integer | Le modèle du lot, atteint par le lot. |
product_batch_id | integer | Le lot auquel ce passeport est rattaché. |
batch_code | string | Le numéro du lot, tel qu'il figure dans le lien GS1. |
gtin | string | Le GTIN du modèle, sous sa forme à quatorze chiffres. |
image_url | string | null | La photographie du modèle du lot, calculée comme sur le passeport du modèle. null quand le modèle n'en a pas, ou quand il appartient à une autre marque que ce passeport. C'est la copie allégée de la photo (WebP, 800 pixels au plus sur le grand côté, 100 Ko au plus, sans données EXIF) quand elle existe, sinon l'original. Une adresse d'un autre site est rendue telle quelle. |
data | object | Le contenu du passeport, filtré selon le niveau d'accès. |
ipfs_uri | string | L'adresse de la copie IPFS, rendue seulement aux niveaux authentifiés, comme pour le modèle. |
access_tier | string | Le niveau réellement servi : celui demandé, ou public par défaut. |
available_tiers | array de string | Les niveaux que VOTRE appel peut demander sur ce passeport, dans l'ordre public, end_user, repairer, recycler, upstream, authority : ["public"] sans authentification, end_user en plus pour un compte connecté, le métier accrédité par la marque pour un partenaire, tous pour une autorité. La liste ne donne aucun droit : chaque niveau demandé reste vérifié. Une réponse qui la porte pour un compte connecté ne doit aller dans aucun cache partagé. |
passport_service_provider | object ou null | Le prestataire de services de passeport qui tient la copie de sauvegarde de cette version (règlement (UE) 2024/1781, article 10(4) et annexe III point (l)) : identifier, sa référence, name, sa raison sociale, et backed_up_at, la date de la copie au format ISO 8601. null tant que la copie de cette version n'existe pas, ou quand sa dernière vérification a échoué. Hors de data, donc hors de l'empreinte data_hash. |
Les autres champs ont le même sens que dans la réponse de
GET /passport/01/{gtin}.
#Erreurs
| Code | Condition | Que faire |
|---|---|---|
| 400 | La clef de contrôle du GTIN ne correspond pas. | Recopiez le GTIN depuis le code-barres. |
| 401 | Un niveau qui exige un compte, demandé sans session. | Connectez-vous, ou demandez le niveau public. |
| 403 | Un niveau que votre compte n'ouvre pas pour cette marque. | Demandez un niveau auquel votre compte a droit. |
| 404 | Aucun passeport publié et public pour ce lot, un lot d'une autre marque que celle du domaine appelé, ou un lot d'une autre marque que celle qui publie le passeport de modèle de ce GTIN. | Vérifiez le numéro de lot, casse comprise, et la publication dans la console. |
| 429 | Plus de 600 appels en 60 secondes depuis la même adresse IP. | Attendez le nombre de secondes indiqué par Retry-After. |
#Voir aussi
GET /passport/01/{gtin}/10/{lot}/proof, les preuves publiques du passeport d'un lot.GET /01/{gtin}/10/{lot}, le lien GS1 du lot.GET /passport/01/{gtin}, le passeport du modèle.
Cette page vous a-t-elle été utile ?
Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.