API de branding
Personnalisez les surfaces visibles par le client — habillage de la SPA, e-mails d'invitation, en-têtes + pieds de page des rapports PDF — avec votre logo, vos couleurs d'accentuation et votre nom de produit. L'objet Branding est propre à chaque organisation et s'applique à toute session émise sous cette organisation.
L'objet 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"
} | Champ | Type | Notes |
|---|---|---|
logo_url | URL | Carré ou paysage ; rendu à 40 px de haut dans l'en-tête de la SPA, 64 px dans l'en-tête du PDF. |
wordmark_url | URL | Optionnel. Utilisé aux côtés de logo_url sur les habillages plus larges. |
favicon_url | URL | PNG / ICO 32×32. Servi depuis votre CDN ; non mis en miroir. |
primary_color | hex (#rrggbb) | Accent principal — utilisé pour les boutons, les liens et le bandeau de couverture du PDF. |
accent_color | hex (#rrggbb) | Accent secondaire — utilisé pour les surlignages, les badges, les tracés de sparkline. |
product_name_override | string ≤ 120 | Remplace « NexBasira » dans les chaînes visibles par l'utilisateur (titre de page, objets des e-mails). |
support_email | Affiché sur les pages d'erreur + dans les pieds de page des e-mails d'invitation. Vide = valeur par défaut de la plateforme. | |
support_url | URL | Idem — lié depuis le menu d'aide de la SPA. |
email_from_name | string ≤ 120 | Nom d'expéditeur sur les e-mails transactionnels sortants (toujours routés via notre domaine authentifié pour préserver l'alignement DMARC). |
pdf_footer_text | string ≤ 255 | Pied de page d'une ligne sur chaque page du rapport d'audit PDF. |
Chaîne vide sur n'importe quel champ = valeur par défaut de la plateforme. La ligne Branding est créée automatiquement au premier GET, vous ne verrez donc jamais de 404 ici.
Lire le branding
GET /api/v1/public/branding — Portée branding:read
curl https://app.nexbasira.com/api/v1/public/branding \
-H "Authorization: Bearer nb_sec_..." Mettre à jour le branding
PATCH /api/v1/public/branding — Portée branding:write
Mise à jour partielle — fournissez uniquement les champs à modifier. Envoyez "" sur un champ pour le réinitialiser à la valeur par défaut de la plateforme. Les couleurs hexadécimales sont validées contre #rrggbb ; une valeur invalide renvoie 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"
}' Renvoie l'objet Branding fraîchement mis à jour. Le changement est immédiat au prochain chargement de page — il n'y a pas de cache CDN à invalider pour la SPA. Pour les e-mails d'invitation + les PDF, le nouveau branding s'applique à tout ce qui est généré après l'application du PATCH.
Erreurs courantes
| Statut | Code | Quand |
|---|---|---|
| 400 | validation_error | Couleur hexadécimale invalide, URL malformée, ou chaîne dépassant la longueur maximale. |
| 403 | permission_denied | L'identifiant n'a pas la portée requise (branding:read pour GET, branding:write pour PATCH). |
Notes
- Aucun envoi d'image. La plateforme n'héberge pas vos ressources — fournissez des URL HTTPS vers des images que vous servez déjà depuis votre CDN. Vous gardez ainsi le contrôle de l'invalidation du cache.
- Application de la même origine. Les URL du logo + du favicon doivent renvoyer
Access-Control-Allow-Origin: *(ou l'origine de votre SPA) afin que le navigateur puisse les afficher dans le widget embed en iframe. - Audité. Chaque PATCH génère un événement d'audit
org.branding_updatedavec le diff au niveau des champs, de sorte qu'un logo altéré est traçable jusqu'à un identifiant + un horodatage.