API Branding
Personalizați suprafețele vizibile clienților — interfața SPA, emailurile de invitație, antetele + subsolurile rapoartelor PDF — cu logo-ul, culorile de accent și numele produsului dvs. Obiectul Branding este per organizație și se aplică fiecărei sesiuni create sub acea organizație.
Obiectul Branding
{
"logo_url": "https://cdn.acme.com/logo.png",
"wordmark_url": "",
"favicon_url": "https://cdn.acme.com/favicon.ico",
"primary_color": "#0F3D91",
"accent_color": "#FFB400",
"product_name_override": "Acme FieldView",
"support_email": "support@acme.com",
"support_url": "https://help.acme.com",
"email_from_name": "Acme Claims",
"pdf_footer_text": "Acme Insurance — claim report",
"updated_at": "2026-05-10T14:00:00Z"
} | Câmp | Tip | Note |
|---|---|---|
logo_url | URL | Pătrat sau peisaj; redat la 40px înălțime în antetul SPA, 64px în antetul PDF. |
wordmark_url | URL | Opțional. Folosit alături de logo_url pe interfețe mai largi. |
favicon_url | URL | 32×32 PNG / ICO. Servit de pe CDN-ul dvs.; nu este copiat. |
primary_color | hex (#rrggbb) | Accent principal — folosit pentru butoane, linkuri și banda de copertă PDF. |
accent_color | hex (#rrggbb) | Accent secundar — folosit pentru evidențieri, insigne și trasele sparkline. |
product_name_override | string ≤ 120 | Înlocuiește "NexBasira" în șirurile vizibile utilizatorilor (titlul paginii, subiectele emailurilor). |
support_email | Afișat pe paginile de eroare + în subsolurile emailurilor de invitație. Gol = valoarea implicită a platformei. | |
support_url | URL | Același lucru — linkuri din meniul de ajutor al SPA. |
email_from_name | string ≤ 120 | Numele expeditorului pe emailurile tranzacționale ieșite (rutate în continuare prin domeniul nostru autentificat pentru a menține alinierea DMARC). |
pdf_footer_text | string ≤ 255 | Subsol pe o singură linie pe fiecare pagină a raportului de audit PDF. |
Șir gol pe orice câmp = valoarea implicită a platformei. Înregistrarea Branding este creată automat la primul GET, deci nu veți vedea niciodată un 404 aici.
Citiți branding-ul
GET /api/v1/public/branding — permisiune branding:read
curl https://app.nexbasira.com/api/v1/public/branding \
-H "Authorization: Bearer nb_sec_..." Actualizați branding-ul
PATCH /api/v1/public/branding — permisiune branding:write
Actualizare parțială — furnizați doar câmpurile pe care doriți să le modificați. Trimiteți "" pe orice câmp pentru a-l reverta la valoarea implicită a platformei. Culorile hex sunt validate față de #rrggbb; o valoare invalidă returnează 400.
curl -X PATCH https://app.nexbasira.com/api/v1/public/branding \
-H "Authorization: Bearer nb_sec_..." \
-H "Content-Type: application/json" \
-d '{
"primary_color": "#0F3D91",
"logo_url": "https://cdn.acme.com/logo-2026.png"
}' Returnează obiectul Branding actualizat. Modificarea este imediată la următoarea încărcare a paginii — nu există cache CDN de invalidat pentru SPA. Pentru emailurile de invitație + PDF-uri, noul branding se aplică oricărui conținut generat după aplicarea PATCH-ului.
Erori frecvente
| Status | Cod | Când |
|---|---|---|
| 400 | validation_error | Culoare hex invalidă, URL malformat sau șir peste lungimea maximă. |
| 403 | permission_denied | Credențiala nu are permisiunea necesară (branding:read pentru GET, branding:write pentru PATCH). |
Note
- Fără încărcare de imagini. Platforma nu găzduiește activele dvs. — furnizați URL-uri HTTPS către imagini pe care le serviți deja de pe CDN-ul dvs. Astfel, invalidarea cache-ului rămâne sub controlul dvs.
- Aplicare same-origin. URL-urile logo + favicon trebuie să servească
Access-Control-Allow-Origin: *(sau originea SPA-ului dvs.) pentru ca browserul să le poată reda în widgetul iframe-embed. - Auditat. Fiecare PATCH generează un eveniment de audit
org.branding_updatedcu diferența la nivel de câmp, astfel un logo modificat poate fi urmărit până la o credențială + marcă de timp.