Баталгаажуулалт
API түлхүүрийг bearer token хэлбэрээр илгөэнэ үү. Түлхүүр нь reseller.manage эрхтэй байх ёстой бөгөөд үүнгүйгээр 404 биш, харин 403 алдаа буцааж татгалзах болно.
Таны байгууллагын дугаар орох газар
Энэ төгсгөл цэг нь org_id-г асуулгын параметр болгон авдаг. Үүнийг орхивол дуудлага таны бүх түрээсийн дэд модыг хамрах бөгөөд дуудлагыг зөвхөн нэг байгууллагаар хязгаарлахын тулд үүнийг илгээнэ үү.
Танай байгууллагын ID нь таны хяналтын самбар дээрх API түлхүүрийн дэлгэцэнд, түлхүүр өөрөө хажууд байрладаг. Энэ нь таны хийх дуудлага бүрт ижил ID байна.
Туршиж үзэх
Өнцөг хаалтанд байгаа бүх зүйлийг өөрийн утгаар солиж, түлхүүр санамж байрлуулагчийг хяналтын самбарынхаа түлхүүрээр сольж оруулна уу.
curl -X PUT https://api.zinndigital.com/v1/reseller/brand \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": <string> }'Та нэвтэрсэн байна уу? Таны хяналтын самбар дахь API консол нь таны бодит байгууллагын ID болон өөрийн түлхүүрийг автоматаар бөглөж, шууд ажиллаж буй 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… |
Хүсэлтийн бие
| Нэр | Төрөл | Заавал шаардлагатай | Энэ юу вэ |
|---|---|---|---|
name | string | Тийм | What your clients are told they are using. Never blank. |
primary_colour | string | Үгүй | — |
support_url | string | Үгүй | — |
status_url | string | Үгүй | — |
palette | object | Үгүй | 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_source | string<catalogue, google, > | Үгүй | — |
font_key | string | Үгүй | — |
font_google_family | string | Үгүй | 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_position | string<side, top, > | Үгүй | — |
density | string<comfortable, compact, > | Үгүй | — |
corner_radius | string<soft, square, > | Үгүй | — |
colour_scheme | string<system, light, dark, > | Үгүй | — |
favicon_sha256 | string | Үгүй | — |
email_logo_sha256 | string | Үгүй | — |
dns_nameservers | string[] | Үгүй | 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. |
Хариу үйлдэл
| Нэр | Төрөл | Заавал шаардлагатай | Энэ юу вэ |
|---|---|---|---|
configured | boolean | Тийм | Whether a brand row exists yet. False renders an empty form, not a 404. |
entitled | boolean | Тийм | Whether white-label is on this org's plan at all. |
name | string | Тийм | — |
logo_url | string | Тийм | — |
primary_colour | string | Тийм | — |
support_url | string | Тийм | — |
status_url | string | Тийм | — |
panel_hostname | string | Тийм | 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_active | boolean | Тийм | 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_status | string | Тийм | The edge's own status word, for display. Never branch on it. |
panel_hostname_records | BrandDnsRecord[] | Тийм | — |
sending_domain | string | Тийм | Read-only here — provisioned on `/v1/reseller/brand/sending-domain`, because an unverified domain does not deliver. |
sending_domain_verified | boolean | Тийм | Read-only. The mail provider's answer, not a setting. |
sending_domain_status | string | Тийм | The provider's own status word, for display. Never branch on it. |
sending_domain_records | BrandDnsRecord[] | Тийм | — |
palette | object | Үгүй | 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_source | string<catalogue, google, > | Үгүй | `catalogue` for one of `font_catalogue`, `google` for a family we self-host. |
font_key | string | Үгүй | The catalogue key when `font_source` is `catalogue`. |
font_google_family | string | Үгүй | 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_position | string<side, top, > | Үгүй | — |
density | string<comfortable, compact, > | Үгүй | — |
corner_radius | string<soft, square, > | Үгүй | — |
colour_scheme | string<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_sha256 | string | Үгүй | 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_url | string | Үгүй | — |
email_logo_sha256 | string | Үгүй | 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_url | string | Үгүй | — |
dns_nameservers | string[] | Үгүй | 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_catalogue | object[] | Үгүй | 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_options | object | Үгүй | The allowed values for each layout choice, keyed by field name. |
palette_tokens | string[] | Үгүй | The colour tokens `palette` may name. |
accent_contrast | BrandAccentContrast | Үгүй | 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