reseller

POST /v1/reseller/brand/menu

Add a link to your clients' panel.

Tous les points de terminaison reseller

Authentification

Envoyez une clé API en tant que jeton du porteur. La clé doit posséder l'autorisation reseller.manage ; une clé qui ne l'a pas est refusée avec le code 403, et non 404.

Où insérer l'ID de votre organisation

Cet point de terminaison prend org_id comme paramètre de requête. Omettez-le et l'appel couvrira l'ensemble de votre sous-arbre de location ; envoyez-le pour restreindre l'appel à une seule organisation.

L'identifiant de votre organisation se trouve sur l'écran des clés API de votre tableau de bord, à côté de la clé elle-même. Il s'agit du même identifiant pour chaque appel que vous effectuez.

Essayer

Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.

curl -X POST https://api.zinndigital.com/v1/reseller/brand/menu \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "label": <string>, "url": <string> }'

Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API

Détails

Adds one navigation link. Requires `reseller.manage` and the `white_label` entitlement. ⛔ `url` accepts `https://`, `http://` or a same-origin path beginning `/`, and nothing else. Your clients click these from inside an authenticated panel on your hostname, so a `javascript:` link would run in the origin holding their session — the allow-list is what makes that unrepresentable rather than merely filtered. ⛔ Over the limit is a **422 naming the limit**, never a silent truncation at read time: a ninth link that simply never appears is a defect nobody can report.

Paramètres

NomTypeObligatoireQu'est-ce que c'est
org_id (query)UuidNonThe organization this call acts on. Optional for a caller with exactly one direct membership; **required** for anyone with more than one — which is every reseller and every agen…

Corps de la requête

NomTypeObligatoireQu'est-ce que c'est
labelstringOui
urlstringOui
iconstringNon
positionintegerNon
new_tabbooleanNon
visibilitystring<both, client, staff>Non

Réponse

NomTypeObligatoireQu'est-ce que c'est
idstringOui
labelstringOui
urlstringOui
iconstringOuiA design-system icon name from `icons`, or `""` for a label-only item.
positionintegerOuiSort key. Ties break on the label, so the order is total and stable.
new_tabbooleanOuiRenders `target="_blank"`. The panel pairs it with `rel="noopener noreferrer"` unconditionally — that is set on **every** external item, not only the new-tab ones, because `Refe…
visibilitystring<both, client, staff>OuiWho sees it. Filtered **server-side** on `GET /v1/branding`: a payload carrying a staff-only link that the app hides has already disclosed it to anybody with a network tab, whic…
externalbooleanOuiWhether the link leaves the panel. Computed here so every renderer agrees.

Erreurs que cet point de terminaison peut renvoyer

401 · 403 · 422