Ìfàṣẹ́pọ̀

Fi bọ́ọ̀lù (bearer token) ranṣẹ gẹ́gẹ́ bí kọ́kọ́rọ́ API. Kọ́kọ́rọ́ náà gbọ́dọ̀ ní ìyọ̀ǹda reseller.manage; a ó kọ̀ ọ́ silẹ pẹlu 403, kii ṣe 404, ti kọ́kọ́rọ́ náà kò bá ní i.

Ibùdó àmì ìdánimọ̀ ilé-iṣẹ́ rẹ sí

Oju-iwọle yii nlo org_id gẹgẹbi ayẹwo ibeere. Fi silẹ ni ita yoo si bo igi iyalo rẹ lapapọ; ranṣẹ si lati dín ibeere naa kù si ajọ kan.

Id àjọ rẹ wa lórí ojú-ìwákòòkò àwọn bọ́tìnnì API nínú daṣibọọdú rẹ, lẹ́gbẹ̀ẹ́ bọ́tìnnì náà gan-an. Ó jẹ́ ìd kan náà nínú gbogbo ìpè tí o bá ṣe.

Gbiyanju rẹ

Rọ́pọ̀ èyíkéyìí nínú àwọn àmì ìtọ́ka < > pẹ̀lú iye tirẹ̀, àti àmì ìdánimọ̀ bọ́tìnnì náà pẹ̀lú bọ́tìnnì kan láti inú dásibọ̀ọ̀dù rẹ.

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

Ṣé o ti wọlé? Iwọ̀n api ní nú ìgbékalẹ̀ rẹ kún id àjọ gidi rẹ ati bọtini tirẹ, o si nṣiṣẹ ibeere na lòdì si api gidi ki o le rii esi gidi na. Ṣí ojú abáná yìí sílẹ̀ nínú kọnsólù API

Àwọn kúlẹ̀kúlẹ̀

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.

Àwọn ìpìlẹ̀

OrúkọIruTí a nílòKini o jẹ
org_id (query)UuidBẹẹkọ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 agency…

Akoonu ibeere naa

OrúkọIruTí a nílòKini o jẹ
namestringBẹẹniWhat your clients are told they are using. Never blank.
primary_colourstringBẹẹkọ
support_urlstringBẹẹkọ
status_urlstringBẹẹkọ
paletteobjectBẹẹkọ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, >Bẹẹkọ
font_keystringBẹẹkọ
font_google_familystringBẹẹkọ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, >Bẹẹkọ
densitystring<comfortable, compact, >Bẹẹkọ
corner_radiusstring<soft, square, >Bẹẹkọ
colour_schemestring<system, light, dark, >Bẹẹkọ
favicon_sha256stringBẹẹkọ
email_logo_sha256stringBẹẹkọ
dns_nameserversstring[]Bẹẹkọ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.

Idahun

OrúkọIruTí a nílòKini o jẹ
configuredbooleanBẹẹniWhether a brand row exists yet. False renders an empty form, not a 404.
entitledbooleanBẹẹniWhether white-label is on this org's plan at all.
namestringBẹẹni
logo_urlstringBẹẹni
primary_colourstringBẹẹni
support_urlstringBẹẹni
status_urlstringBẹẹni
panel_hostnamestringBẹẹniRead-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_activebooleanBẹẹniWhether 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 engine…
panel_hostname_statusstringBẹẹniThe edge's own status word, for display. Never branch on it.
panel_hostname_recordsBrandDnsRecord[]Bẹẹni
sending_domainstringBẹẹniRead-only here — provisioned on /v1/reseller/brand/sending-domain, because an unverified domain does not deliver.
sending_domain_verifiedbooleanBẹẹniRead-only. The mail provider's answer, not a setting.
sending_domain_statusstringBẹẹniThe provider's own status word, for display. Never branch on it.
sending_domain_recordsBrandDnsRecord[]Bẹẹni
paletteobjectBẹẹkọ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 CSS…
font_sourcestring<catalogue, google, >Bẹẹkọcatalogue for one of font_catalogue, google for a family we self-host.
font_keystringBẹẹkọThe catalogue key when font_source is catalogue.
font_google_familystringBẹẹkọ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…
nav_positionstring<side, top, >Bẹẹkọ
densitystring<comfortable, compact, >Bẹẹkọ
corner_radiusstring<soft, square, >Bẹẹkọ
colour_schemestring<system, light, dark, >Bẹẹkọ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_sha256stringBẹẹkọ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_urlstringBẹẹkọ
email_logo_sha256stringBẹẹkọ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_urlstringBẹẹkọ
dns_nameserversstring[]Bẹẹkọ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…
font_catalogueobject[]Bẹẹkọ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_optionsobjectBẹẹkọThe allowed values for each layout choice, keyed by field name.
palette_tokensstring[]BẹẹkọThe colour tokens palette may name.
accent_contrastBrandAccentContrastBẹẹkọ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 would…

Awọn aṣiṣe ti ibudo ipari yii le da pada

401 · 403 · 404 · 422 · 429