reseller

PUT /v1/reseller/brand

Set the identity your clients see.

Dhammaan reseller bixiyayaasha

Xaqiijinta aqoonsiga

U dir furaha API ah calaamad dusha ah (bearer token). Furaha waa inuu wataa ruqadda reseller.manage; furaha aan wadan waxaa loo diidayaa 403, ee ma aha 404.

Meesha aqoonsiga ururkaagu galayo

Endpoint-kani wuxතික org_id oo ah cabbir su'aal ah. Ka tag oo wicitaanku wuxuu daboolayaa dhammaan geedkaaga kiraynta; soo dir si aad wicitaanka ugu koobto hal urur.

Aqoonsiga ururkaagu wuxuu ku yaallaa shaashada furayaasha API ee dashboard-kaaga, oo ku xiga furaha laftiisa. Waa isku aqoonsi wicitaan kasta oo aad sameyso.

Isku day

Ku beddel wax kasta oo ku dhex jira qeebaha xaglaha ah qiimayaashaada, sidoo kalena haystaaha furaha ku beddel fure ka dhex muuqda dashboordigaaga.

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

Ma sign-garaysay? Qalabka API ee ku jira dashboard-kaagu wuxuu buuxiyaa aqoonsigaaga ururka ee dhabta ah iyo furahaaga gaarka ah, wuxuuna ku shaqeysiiyaa codsiga API-ga nool si aad u aragto jawaabta dhabta ah. Kani ka fur barta kontoroolka ee API

Faahfaahin

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.

Cabiraha

MagacaNoocLoo baahan yahayMaxay tahay
org_id (query)UuidMayaThe 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…

Codsiga jidhkiisa

MagacaNoocLoo baahan yahayMaxay tahay
namestringHaaWhat your clients are told they are using. Never blank.
primary_colourstringMaya
support_urlstringMaya
status_urlstringMaya
paletteobjectMayaNamed 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, >Maya
font_keystringMaya
font_google_familystringMayaInstall 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, >Maya
densitystring<comfortable, compact, >Maya
corner_radiusstring<soft, square, >Maya
colour_schemestring<system, light, dark, >Maya
favicon_sha256stringMaya
email_logo_sha256stringMaya
dns_nameserversstring[]MayaYour 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.

Jawaab

MagacaNoocLoo baahan yahayMaxay tahay
configuredbooleanHaaWhether a brand row exists yet. False renders an empty form, not a 404.
entitledbooleanHaaWhether white-label is on this org's plan at all.
namestringHaa
logo_urlstringHaa
primary_colourstringHaa
support_urlstringHaa
status_urlstringHaa
panel_hostnamestringHaaRead-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_activebooleanHaaWhether 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_statusstringHaaThe edge's own status word, for display. Never branch on it.
panel_hostname_recordsBrandDnsRecord[]Haa
sending_domainstringHaaRead-only here — provisioned on `/v1/reseller/brand/sending-domain`, because an unverified domain does not deliver.
sending_domain_verifiedbooleanHaaRead-only. The mail provider's answer, not a setting.
sending_domain_statusstringHaaThe provider's own status word, for display. Never branch on it.
sending_domain_recordsBrandDnsRecord[]Haa
paletteobjectMayaNamed 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, >Maya`catalogue` for one of `font_catalogue`, `google` for a family we self-host.
font_keystringMayaThe catalogue key when `font_source` is `catalogue`.
font_google_familystringMayaA 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, >Maya
densitystring<comfortable, compact, >Maya
corner_radiusstring<soft, square, >Maya
colour_schemestring<system, light, dark, >MayaThe 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_sha256stringMayaA 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_urlstringMaya
email_logo_sha256stringMayaThe 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_urlstringMaya
dns_nameserversstring[]MayaYour **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[]MayaThe 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_optionsobjectMayaThe allowed values for each layout choice, keyed by field name.
palette_tokensstring[]MayaThe colour tokens `palette` may name.
accent_contrastBrandAccentContrastMayaHow 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…

Cilladaha ay bartaani soo celin karto

401 · 403 · 404 · 422 · 429