reseller

PUT /v1/reseller/brand

Set the identity your clients see.

Ҳамаи нуқтаҳои ниҳоии reseller

Санҷиши ҳаққоният

Kaliti API-ро ҳамчун рамзи доранда (bearer token) фиристед. Калит бояд дорои иҷозати reseller.manage бошад; калиди бидуни он бо хатои 403 рад карда мешавад, на 404.

Ҷое, ки рақами мушаххаси ташкилоти шумо ҷойгир аст

Ин нуқтаи поёнӣ org_id-ро ҳамчун параметри дархостӣ қабул мекунад. Онро хориҷ кунед ва даъват тамоми зердарахти иҷораи шуморо фаро мегирад; барои маҳдуд кардани даъват ба як созмон онро фиристед.

Rakami муайянкунандаи ташкилоти шумо дар экрани калидҳои API дар панели идоракунии шумо, дар паҳлӯи худи калид ҷойгир аст. Ин як раками муайянкунанда дар ҳар یک дархосте, ки шумо иҷро мекунед, якхела аст.

Санҷидан

Ҳар чизро дар қаavски кунҷӣ бо қиматҳои худ ва ҷойи нигоҳдорандаи калидро бо калима аз панели идоракунии худ иваз кунед.

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

Воarid шудаед? Консоли API дар панели идоракунии шумо рақами мушаххаси ташкилоти воқеӣ ва калиди худро пур мекунад ва дархостро бар зидди API-и фаъол иҷро мекунад, то шумо посухи воқеиро бубинед. Ин нуқтаи ниҳоиро дар консоли API кушоед

Тафсилот

Creates or updates your brand. Requires `reseller.manage` — reading your brand is a view permission; changing what every one of your clients sees is not. ⛔ **This endpoint is why white-label was unreachable until 2026-08-16.** The resolver, the entitlement gate, the org-tree walk, the e-mail path and the panel painting were all built and correct, and nothing anywhere could create the row they all read — `Brand` held zero rows across the estate. ⛔ `panel_hostname`, `sending_domain` and `sending_domain_verified` are **refused here, with a sentence saying why**, rather than ignored. All three are facts about the outside world this endpoint cannot establish: a hostname nobody serves is a link to nowhere, an unverified sending domain does not deliver, and a verified flag a customer can set is a wish rather than a verification. Refused with 422 when white-label is not on your plan — storing a brand the resolver would decline to serve is configuration that silently does nothing.

Параметрҳо

НомНамудТалаб карда мешавадИн чӣ аст
org_id (query)UuidНеThe 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…

Ҷисми дархост

НомНамудТалаб карда мешавадИн чӣ аст
namestringБалеWhat your clients are told they are using. Never blank.
primary_colourstringНе
support_urlstringНе
status_urlstringНе
paletteobjectНеNamed colour tokens, hex values only. An unrecognised token is a **422 naming it**, not a silent drop — a field that is ignored is how somebody comes to believe the platform is…
font_sourcestring<catalogue, google, >Не
font_keystringНе
font_google_familystringНеInstall it with `POST /v1/reseller/brand/font` first — this field selects a family we already hold, and setting it alone would name a stylesheet with nothing behind it.
nav_positionstring<side, top, >Не
densitystring<comfortable, compact, >Не
corner_radiusstring<soft, square, >Не
colour_schemestring<system, light, dark, >Не
favicon_sha256stringНе
email_logo_sha256stringНе
dns_nameserversstring[]НеYour own nameservers. **At least two, or none** — a registrar refuses a single one, and refusing it here with a sentence is better than at the registrar with a code.

Ҷавоб

НомНамудТалаб карда мешавадИн чӣ аст
configuredbooleanБалеWhether a brand row exists yet. False renders an empty form, not a 404.
entitledbooleanБалеWhether white-label is on this org's plan at all.
namestringБале
logo_urlstringБале
primary_colourstringБале
support_urlstringБале
status_urlstringБале
panel_hostnamestringБалеRead-only here — provisioned on `/v1/reseller/brand/panel-hostname`, because a hostname you merely typed is a link to nowhere on every client's screen.
panel_hostname_activebooleanБалеWhether the edge is actually **serving** it. ⛔ Measured, not the edge's status word: a custom hostname can be `active` with a valid certificate and still answer 522, so the engi…
panel_hostname_statusstringБалеThe edge's own status word, for display. Never branch on it.
panel_hostname_recordsBrandDnsRecord[]Бале
sending_domainstringБалеRead-only here — provisioned on `/v1/reseller/brand/sending-domain`, because an unverified domain does not deliver.
sending_domain_verifiedbooleanБалеRead-only. The mail provider's answer, not a setting.
sending_domain_statusstringБалеThe provider's own status word, for display. Never branch on it.
sending_domain_recordsBrandDnsRecord[]Бале
paletteobjectНеNamed design-system colour tokens, `{token: "#rrggbb"}`, over the closed set in `palette_tokens`. ⛔ Hex only, and that is a security boundary rather than a formatting rule: a CS…
font_sourcestring<catalogue, google, >Не`catalogue` for one of `font_catalogue`, `google` for a family we self-host.
font_keystringНеThe catalogue key when `font_source` is `catalogue`.
font_google_familystringНеA Google family NAME, never a URL. ⛔ We fetch the family once, server-side, and serve the woff2 files from our own origin — so your clients never make a request to Google and th…
nav_positionstring<side, top, >Не
densitystring<comfortable, compact, >Не
corner_radiusstring<soft, square, >Не
colour_schemestring<system, light, dark, >НеThe scheme a client's **first** visit lands on. ⛔ A default, never a lock — the panel's own theme toggle still works, because removing a visitor's dark mode is an accessibility…
favicon_sha256stringНеA favicon distinct from the panel logo. Upload it with `POST /v1/branding/logo` and `purpose=favicon`. Empty falls back to the logo — a 32px render of a wordmark beats somebody…
favicon_urlstringНе
email_logo_sha256stringНеThe mark used in transactional mail (`purpose=email`). Separate because the constraints differ: mail clients render on a light background whatever the reader's theme, block SVG,…
email_logo_urlstringНе
dns_nameserversstring[]НеYour **own** authoritative nameservers, so a client typing them into a registrar never reads ours. Empty means ours. ⛔ At least two, or none — registrars refuse a single nameser…
font_catalogueobject[]НеThe typefaces you may pick, served **with** the value so a new one appears in your picker on deploy rather than when somebody remembers to update the app too.
layout_optionsobjectНеThe allowed values for each layout choice, keyed by field name.
palette_tokensstring[]НеThe colour tokens `palette` may name.
accent_contrastBrandAccentContrastНеHow readable your accent colour is, and the ink we will paint on it. ⚠️ **Reported, never enforced.** A legitimate corporate colour can be mid-grey, and refusing to save it woul…

Хатоҳое, ки ин нуқтаи ниҳоӣ метавонад баргардонад

401 · 403 · 404 · 422 · 429