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 :

HTTP
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

NomTypeObligatoireDescription
gtinstringouiLe GTIN du modèle du lot, ramené à quatorze chiffres avant la recherche. Sa clef de contrôle est vérifiée.
lotstringouiLe numéro du lot, comparé à l'identique, casse comprise. Encodez les caractères qui le demandent.
access_tierstringnonLe 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"

#Réponse d'exemple

Code HTTP 200OK

Code HTTP 200.

JSON
{
  "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.

ChampTypeDescription
levelstringToujours batch ici. Le passeport d'un modèle porte model.
product_idintegerToujours null : un passeport de lot n'est rattaché à aucun exemplaire.
product_model_idintegerLe modèle du lot, atteint par le lot.
product_batch_idintegerLe lot auquel ce passeport est rattaché.
batch_codestringLe numéro du lot, tel qu'il figure dans le lien GS1.
gtinstringLe GTIN du modèle, sous sa forme à quatorze chiffres.
image_urlstring | nullLa 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.
dataobjectLe contenu du passeport, filtré selon le niveau d'accès.
ipfs_uristringL'adresse de la copie IPFS, rendue seulement aux niveaux authentifiés, comme pour le modèle.
access_tierstringLe niveau réellement servi : celui demandé, ou public par défaut.
available_tiersarray de stringLes 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_providerobject ou nullLe 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

CodeConditionQue faire
400La clef de contrôle du GTIN ne correspond pas.Recopiez le GTIN depuis le code-barres.
401Un niveau qui exige un compte, demandé sans session.Connectez-vous, ou demandez le niveau public.
403Un niveau que votre compte n'ouvre pas pour cette marque.Demandez un niveau auquel votre compte a droit.
404Aucun 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.
429Plus de 600 appels en 60 secondes depuis la même adresse IP.Attendez le nombre de secondes indiqué par Retry-After.

#Voir aussi

Votre réponse ouvre un courriel pré-rempli dans votre messagerie, à destination de contact@sealtrust.io. Vous le relisez avant de l'envoyer.

Proposer une correctionSignaler un problème