Aller au contenu

Ressources

Unités

Chaque point de terminaison Unités, avec la portée qu'il impose, le corps qu'il accepte, une réponse lisible et les refus qu'il peut renvoyer.

Lister les unités sérialisées.

get/organizations/{organization}/passports/{id}/units
Portée
units:read
Idempotency-Key
Non accepté
Renvoie
200

Paramètres de chemin

organizationchaîneObligatoire

L'organisation pour laquelle cette requête agit. La clé doit disposer d'une autorisation sur celle-ci.

idchaîneObligatoire

L'identifiant de la ressource. Traitez-le comme une chaîne opaque.

Paramètres de requête

limitchaîneFacultatif

Le nombre d'enregistrements à renvoyer. Le serveur peut en renvoyer moins.

cursorchaîneFacultatif

Le next_cursor de la page précédente. Un curseur encode les filtres sous lesquels il a été émis ; l'envoyer avec d'autres filtres est refusé par cursor_invalid.

statuschaîneFacultatif

Ne renvoyer que les unités dans ce statut.

unit_serialchaîneFacultatif

Ne renvoyer que l'unité qui porte ce numéro de série.

Erreurs

Tous les refus que ce point de terminaison peut renvoyer, avec le statut qui les accompagne.

Requête
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units?limit=25" \
  -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY"
Réponse · 200
{
  "object": "list",
  "data": [
    {
      "object": "unit",
      "id": "d41d8cd9-8f00-4b20-a204-9800998ecf84",
      "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84",
      "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
      "passport_id": "b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "unit_serial": "BAT-2026-000117",
      "status": "original",
      "livemode": true,
      "created_at": "2026-08-01T12:00:03.114Z",
      "values": {
        "status": {
          "value": "original",
          "source": "brand_statement",
          "observed_on": "2026-08-02",
          "reading_id": "a1100000-0000-4000-8000-000000000001",
          "unit_added_on": null
        }
      },
      "missing_fields": []
    }
  ],
  "has_more": false,
  "next_cursor": null
}

GET /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units?limit=25

Créer des unités sérialisées.

post/organizations/{organization}/passports/{id}/units
Portée
units:write
Idempotency-Key
Accepté
Renvoie
201

Paramètres de chemin

organizationchaîneObligatoire

L'organisation pour laquelle cette requête agit. La clé doit disposer d'une autorisation sur celle-ci.

idchaîneObligatoire

L'identifiant de la ressource. Traitez-le comme une chaîne opaque.

Corps de la requête

unitsliste d’objetsObligatoire

De 1 à 1000 unités. Le passeport parent doit relever de la catégorie battery — les unités sérialisées sont une notion propre aux batteries, et tout autre parent est refusé par invalid_request. Un numéro de série répété au sein d'une même requête est refusé ligne par ligne plutôt que dédoublonné : un import en masse ne peut ainsi jamais croire avoir créé une ligne qui n'existe pas.

unit_serialchaîneObligatoire

Le numéro de série porté par cet exemplaire physique, jusqu'à 70 caractères. Unique au sein du passeport.

statuschaîneFacultatif

Statut facultatif de la batterie : original, repurposed, re-used, remanufactured ou waste. Omettez-le pour créer une batterie sans statut. Les autres valeurs sont refusées pour tous les identifiants.

Erreurs

Tous les refus que ce point de terminaison peut renvoyer, avec le statut qui les accompagne.

Requête
curl "https://passportcraft.com/api/v1/organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units" \
  -X POST \
  -H "Authorization: Bearer $PASSPORTCRAFT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "units": [
    {
      "unit_serial": "BAT-2026-000117",
      "status": "original"
    },
    {
      "unit_serial": "BAT-2026-000118"
    }
  ]
}'
Réponse · 201
{
  "object": "list",
  "data": [
    {
      "object": "unit",
      "id": "d41d8cd9-8f00-4b20-a204-9800998ecf84",
      "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/d41d8cd9-8f00-4b20-a204-9800998ecf84",
      "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
      "passport_id": "b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "unit_serial": "BAT-2026-000117",
      "status": "original",
      "livemode": true,
      "created_at": "2026-08-02T09:31:18.446Z",
      "values": {
        "status": {
          "value": "original",
          "source": "brand_statement",
          "observed_on": "2026-08-02",
          "reading_id": "a1100000-0000-4000-8000-000000000001",
          "unit_added_on": null
        }
      },
      "missing_fields": []
    },
    {
      "object": "unit",
      "id": "5a3e7c19-2b60-4d84-91f2-7e0c4b6a8d35",
      "name": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units/5a3e7c19-2b60-4d84-91f2-7e0c4b6a8d35",
      "organization_id": "8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2",
      "passport_id": "b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "passport": "organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04",
      "unit_serial": "BAT-2026-000118",
      "status": null,
      "livemode": true,
      "created_at": "2026-08-02T09:31:18.446Z",
      "values": {},
      "missing_fields": []
    }
  ],
  "has_more": false,
  "next_cursor": null
}

POST /organizations/8f14e45f-ceea-467a-9a5f-8dc7d9c6a1b2/passports/b6f0d4a2-71c3-4e58-8a19-3f7c2d5e8b04/units