# GET /distributor-portal/me

Lire votre profil, votre distributeur et son territoire. Session de compte contact distributeur, aucun droit de clef d'API.

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

---

Vous lisez votre profil de contact distributeur : le distributeur pour lequel
vous travaillez et son territoire contractuel. C'est l'appel à faire au
démarrage de votre intégration : il vous dit quel distributeur votre session
atteint pour la marque sélectionnée, et la liste de toutes les marques pour
lesquelles vous êtes un contact actif.

L'adresse complète est `https://api.sealtrust.io/v1/distributor-portal/me`. La
même route existe sans le préfixe `/v1`, et c'est la forme `/v1` qui est
recommandée pour une nouvelle intégration.

> [!INFO] Multi-marques : un sélecteur, jamais une fusion
> Une entreprise de distribution porte souvent plusieurs marques à la fois :
> un compte contact distributeur peut donc être un contact ACTIF chez
> plusieurs marques en même temps (une ligne par marque, jamais deux
> distributeurs de la MÊME marque). Les champs de cette réponse (`retailer_id`,
> `territory_countries`, etc.) décrivent la marque SÉLECTIONNÉE par le
> paramètre `brand_id` ; le tableau `brands` liste toutes les marques
> accessibles, pour construire un sélecteur. Chaque autre point d'entrée du
> portail (expéditions, hors territoire) prend lui aussi un `brand_id` et ne
> répond jamais pour deux marques à la fois dans un même appel : un
> distributeur d'une marque pour laquelle vous n'êtes pas un contact actif
> répond exactement comme un distributeur qui n'existe pas.

## Autorisation

Session d'un compte contact distributeur. Aucun droit de clef d'API
n'intervient ici.

Le compte doit avoir le rôle `distributor`. Un compte client, un compte
partenaire (réparateur, recycleur) ou un compte d'équipe de marque reçoit un
403, avec le message `Distributor contact account required`.

| Façon | Quand l'utiliser |
| --- | --- |
| En-tête `Authorization: Bearer <jeton>` | Appel de serveur à serveur, script. |
| Cookie de session `access_token` | Navigateur, une fois connecté au portail. |

Vous obtenez un jeton en appelant `POST /v1/auth/login` avec `username` et
`password`, comme pour tout autre compte.

## Paramètres de requête

| Paramètre | Type | Description |
| --- | --- | --- |
| `brand_id` | `integer` | La marque à décrire. Omis : la seule marque accessible s'il n'y en a qu'une (comportement historique, inchangé) ; sinon la première par ordre alphabétique — appelez [`GET /distributor-portal/brands`](/reference/get-distributor-portal-brands/) pour la liste complète et laisser la personne choisir. |

## Plafond d'appels

30 appels par minute, le même plafond et le même rythme humain que le portail
partenaire : vous consultez vos expéditions puis confirmez une réception. Il
couvre l'ensemble du portail distributeur ; alterner entre les points d'entrée
ne redonne donc pas de marge. Au-delà, l'API répond 429 avec un en-tête
`Retry-After`.

## Requête d'exemple

```bash
curl -i https://api.sealtrust.io/v1/distributor-portal/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.0000000000000000000000000000.0000000000000000000000000000"
```

## Réponse d'exemple

```json
{
  "id": 214,
  "email": "contact@distributeur-exemple.test",
  "name": "Camille Exemple",
  "retailer_id": 9,
  "retailer_code": "DIST-DE",
  "retailer_name": "Distribution Exemple GmbH",
  "brand_id": 42,
  "brand_code": "7K3QXW9M2A",
  "brand_name": "Exemple SAS",
  "territory_countries": ["DE", "AT"],
  "brands": [
    {
      "brand_id": 42,
      "brand_code": "7K3QXW9M2A",
      "brand_name": "Exemple SAS",
      "retailer_id": 9,
      "retailer_code": "DIST-DE",
      "retailer_name": "Distribution Exemple GmbH",
      "territory_countries": ["DE", "AT"],
      "alerts_opt_in": false
    },
    {
      "brand_id": 57,
      "brand_code": "9PQ2WZ4KXR",
      "brand_name": "Autre Marque SAS",
      "retailer_id": 31,
      "retailer_code": "DIST-OM-DE",
      "retailer_name": "Distribution Exemple GmbH (Autre Marque)",
      "territory_countries": ["DE"],
      "alerts_opt_in": true
    }
  ]
}
```

### Les champs de la réponse

| Champ | Type | Description |
| --- | --- | --- |
| `retailer_id` | `integer` | Identifiant de votre distributeur POUR LA MARQUE SÉLECTIONNÉE (`brand_id`). |
| `retailer_code` | `string` | Code du distributeur chez cette marque. |
| `territory_countries` | `array` ou `null` | Codes ISO2 du territoire contractuel exclusif, pour cette marque. `null` ou vide : votre distributeur n'a pas de territoire propre, les pays autorisés de la marque s'appliquent. |
| `brands` | `array` | Toutes les marques pour lesquelles vous êtes un contact ACTIF — un sélecteur, jamais une liste à fusionner. Un seul élément : rien à choisir, c'est le comportement historique. `alerts_opt_in` dit si la marque a activé la vue hors territoire pour vous ([`GET /distributor-portal/out-of-territory`](/reference/get-distributor-portal-out-of-territory/)). |

## Erreurs

| Code | Condition | Que faire |
| --- | --- | --- |
| 401 | Jeton absent, illisible ou expiré. | Reconnectez-vous, puis rappelez avec `Authorization: Bearer <jeton>`. |
| 403 | Le compte n'a pas le rôle `distributor`. Message `Distributor contact account required`. | Demandez un compte de contact distributeur à la marque. |
| 403 | Le contact a été révoqué partout : aucune ligne active ne reste pour ce compte, à aucune marque. Message `No active distributor access`. | Demandez à une marque de vous inviter à nouveau. |
| 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, ou appelez sans `brand_id` / via [`GET /distributor-portal/brands`](/reference/get-distributor-portal-brands/) pour voir les marques réellement accessibles. |
| 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`](/reference/get-distributor-portal-shipments/),
  lister vos propres expéditions.
- [`GET /distributor-portal/out-of-territory`](/reference/get-distributor-portal-out-of-territory/),
  vos unités repérées hors de votre territoire.
