# GET /distributor-portal/shipments

Lister vos propres expéditions : statut, unités, lots. Session de compte contact distributeur.

Source : https://docs.sealtrust.io/reference/get-distributor-portal-shipments/

---

Vous listez vos propres commandes B2B (vos expéditions), jamais celles d'un
autre distributeur de la même marque ni d'une autre marque. Chaque entrée
porte le nombre d'unités allouées, les lots expédiés et si une confirmation de
réception existe déjà.

> [!INFO] Multi-marques : un `brand_id` à la fois, jamais une fusion
> Si vous êtes un contact actif chez plusieurs marques, cette liste répond
> pour UNE SEULE marque à la fois (`brand_id`) — jamais l'union des
> expéditions de toutes vos marques dans le même appel. Omis sans
> ambiguïté possible (une seule marque accessible), `brand_id` reste
> optionnel ; avec plusieurs marques, il devient obligatoire (voir le 400
> ci-dessous).

## Autorisation

Session d'un compte contact distributeur. Voir
[`GET /distributor-portal/me`](/reference/get-distributor-portal-me/) pour le
détail des règles de session et des refus 401/403.

## Plafond d'appels

30 appels par minute, partagé avec le reste du portail distributeur.

## Paramètres de requête

| Paramètre | Type | Description |
| --- | --- | --- |
| `brand_id` | `integer` | La marque dont lire les expéditions. Obligatoire si vous êtes un contact actif chez plusieurs marques ; optionnel sinon (la seule marque accessible est utilisée). |
| `page` | `integer` | Page, à partir de 1. Par défaut 1. |
| `page_size` | `integer` | Taille de page, 1 à 200. Par défaut 25. |
| `status` | `string` | `open`, `closed` ou `cancelled`. Omis : toutes les expéditions. |

## Requête d'exemple

```bash
curl -i "https://api.sealtrust.io/v1/distributor-portal/shipments?page=1&page_size=25" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.0000000000000000000000000000.0000000000000000000000000000"
```

## Réponse d'exemple

```json
{
  "items": [
    {
      "id": 318,
      "order_ref": "SO-2026-0318",
      "status": "closed",
      "ship_date": "2026-10-01",
      "units_allocated": 240,
      "lots": ["LOT-2026-09-A", "LOT-2026-09-B"],
      "received": false,
      "created_at": "2026-09-28T09:12:00Z"
    }
  ],
  "total": 1,
  "page": 1,
  "page_size": 25,
  "total_pages": 1
}
```

### Les champs de la réponse

| Champ | Type | Description |
| --- | --- | --- |
| `units_allocated` | `integer` | Unités actives allouées à cette expédition. |
| `lots` | `array` | Codes de lot distincts parmi les unités de l'expédition. |
| `received` | `boolean` | Au moins une confirmation de réception a été enregistrée pour cette expédition. |

## Erreurs

| Code | Condition | Que faire |
| --- | --- | --- |
| 401 | Jeton absent, illisible ou expiré. | Reconnectez-vous. |
| 403 | Compte sans aucun accès distributeur actif, à aucune marque. | Voir [`GET /distributor-portal/me`](/reference/get-distributor-portal-me/). |
| 400 | Plusieurs marques accessibles et `brand_id` omis. | Appelez [`GET /distributor-portal/brands`](/reference/get-distributor-portal-brands/) et précisez `brand_id`. |
| 404 | `brand_id` donné, mais sans contact actif pour cette marque (y compris une marque qui n'existe pas). Même réponse dans les deux cas. | Vérifiez l'identifiant. |
| 429 | Plafond d'appels dépassé. | Attendez le délai de `Retry-After`. |

## Voir aussi

- [`GET /distributor-portal/brands`](/reference/get-distributor-portal-brands/),
  la liste de vos marques pour construire un sélecteur.
- [`GET /distributor-portal/shipments/{shipment_id}`](/reference/get-distributor-portal-shipments-id/),
  le détail d'une expédition : ses unités, ses confirmations de réception.
- [`POST /distributor-portal/shipments/{shipment_id}/receive`](/reference/post-distributor-portal-shipments-id-receive/),
  confirmer la réception d'une expédition.
