> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API de mise à jour de la marque blanche Didit

> Mettez à jour la marque blanche via l'API de gestion Didit : couleurs, polices, rayons de bordure, logo et options d'interface du parcours de vérification.



Prompt de mise à jour de l'identité visuelle
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\`Goal: Update the white-label branding for the application tied to an API key.

Endpoint: PATCH https://verification.didit.me/v3/customization/
Auth header: x-api-key: <DIDIT_API_KEY>

Two content types:
\- application/json  -> change colors, fonts, radii and UI options
\- multipart/form-data -> upload logo images (image_square, image_rectangular, image_rectangular_dark, image_favicon)

PARTIAL update: only the fields you send are changed. The application is resolved from the API key (no path params).

JSON body fields:
\- Colors (hex '#RRGGBB' or '#RRGGBBAA'): color_primary, color_secondary, color_background, color_panel, color_panel_10, color_on_panel_1, color_on_panel_2, color_on_background, color_button_1, color_button_2, color_button_text_1, color_button_text_2, color_pill_text
\- border_radius_panel, border_radius_buttons (integers >= 0)
\- font_family (Google Font name), font_weight (must be available for the family)
\- app_public_name (string|null), privacy_policy_url (string|null)
\- skip_welcome_screen, disable_login_with_didit, hide_progress_bar (boolean)
\- callback_seconds (integer >= 0)
\- delete_logo_square, delete_logo_rectangular, delete_logo_rectangular_dark, delete_favicon (boolean) -> remove an existing logo; an upload sent in the same request wins over its delete flag

Logo upload (multipart/form-data) fields:
\- image_square (1:1)
\- image_rectangular (2:1)
\- image_rectangular_dark (2:1, the rectangular logo for dark mode; returned as logo_rectangular_dark)
\- image_favicon (max 500 KB)
Logo rules for image_square, image_rectangular and image_rectangular_dark: PNG, JPG or WebP (SVG is refused), at least 512 px on the long side, max 1 MB.

NOT allowed here (Business Console only): custom domain and white-label email.

curl (JSON):
curl -X PATCH 'https://verification.didit.me/v3/customization/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"color_primary": "#123456", "font_family": "AR One Sans"}'

curl (logo upload):
curl -X PATCH 'https://verification.didit.me/v3/customization/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'image_rectangular=@logo.png' \
-F 'image_rectangular_dark=@logo-dark.png' \
-F 'image_favicon=@favicon.ico'

Response 200: the full updated BrandingCustomization object (same shape as GET).

Failure modes:
\- 400: validation. Examples: { "color_primary": ["Invalid color format. Use '#RRGGBB' or '#RRGGBBAA' format."] }, { "image_rectangular": ["Image aspect ratio must be 2:1. Got 1024x1024 image dimensions"] }, { "image_rectangular_dark": ["Upload a PNG, JPG or WebP image."] }, { "image_rectangular": ["Image must be at least 512 px on its long side. Got 400x200 image dimensions"] }, { "image_square": ["File size should not exceed 1 MB"] }
\- 401 — missing/invalid x-api-key.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Coller dans

## Vue d'ensembleMet à jour partiellement la marque blanche de l'application identifiée par votre clé API. Envoyez `application/json` pour modifier les couleurs, les polices, les rayons de courbure et les options d'interface, ou `multipart/form-data` pour importer des logos. Seuls les champs que vous incluez sont modifiés ; tout le reste reste inchangé.## Quand l'utiliser- **Personnaliser le parcours** : définissez les couleurs de votre marque, la police et les rayons de courbure des angles.
- **Importer des logos** : définissez le logo carré, le logo rectangulaire et sa version pour le mode sombre, ainsi que le favicon.
- **Ajuster l'expérience** : définissez le nom public de l'application, l'URL de la politique de confidentialité, et des options comme le fait d'ignorer l'écran d'accueil ou le masquage de la barre de progression.## Importer des logosEnvoyez les logos en `multipart/form-data` :- `image_square` : format 1:1.
- `image_rectangular` : format 2:1.
- `image_rectangular_dark` : format 2:1. Le logo rectangulaire pour le mode sombre, affiché sur un fond sombre.
- `image_favicon` : taille maximale **500 Ko**.`image_square`, `image_rectangular` et `image_rectangular_dark` doivent être des images PNG, JPG ou WebP, d'au moins 512 px sur le côté le plus long et d'au plus **1 Mo**.
Les fichiers SVG sont refusés.
La réponse renvoie les URL `logo_square`, `logo_rectangular`, `logo_rectangular_dark` et `favicon` obtenues.Pour supprimer un logo, envoyez l'indicateur `delete_logo_square`, `delete_logo_rectangular`, `delete_logo_rectangular_dark` ou `delete_favicon` correspondant avec la valeur `true`.
Après la suppression du logo pour le mode sombre, `logo_rectangular_dark` vaut `null`.
Si une même requête importe un logo et envoie aussi son indicateur de suppression, l'import prévaut.Un import rejeté renvoie `400` avec le nom du champ et la raison, par exemple :- `{"image_rectangular_dark": ["Upload a PNG, JPG or WebP image."]}`
- `{"image_rectangular": ["Image must be at least 512 px on its long side. Got 400x200 image dimensions"]}`
- `{"image_rectangular": ["Image aspect ratio must be 2:1. Got 1024x1024 image dimensions"]}`
- `{"image_square": ["File size should not exceed 1 MB"]}`## Remarques- L'application est identifiée à partir de la clé API ; il n'y a pas de paramètres de chemin.
- Les couleurs hexadécimales acceptent `#RRGGBB` ou `#RRGGBBAA`. `font_weight` doit être une graisse disponible pour la `font_family` sélectionnée.
- **Le domaine personnalisé et l'e-mail en marque blanche ne sont pas configurables ici.** Gérez-les dans la [Business Console](https://docs.didit.me/fr/console/white-label.md).## AutorisationsLa clé API doit être autorisée à mettre à jour la personnalisation de l'application.## Liens connexes- [Obtenir l'identité visuelle](https://docs.didit.me/fr/management-api/customization/get.md)
- [Marque blanche dans la Console](https://docs.didit.me/fr/console/white-label.md)


## OpenAPI

````yaml fr/openapi-25.json PATCH /v3/customization/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/customization/:
    patch:
      tags:
        - Customization
      summary: Mettre à jour la personnalisation de marque
      description: >-
        Mise à jour partielle de l'image de marque en marque blanche de
        l'application. Envoyez `application/json` pour modifier les couleurs,
        polices, arrondis et options d'interface utilisateur, ou
        `multipart/form-data` pour importer des images de logo. Seuls les champs
        inclus sont modifiés. Le domaine personnalisé et l'e-mail en marque
        blanche ne peuvent pas être configurés via cet endpoint — utilisez la
        Business Console pour cela.
      operationId: update_customization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingCustomizationUpdate'
            examples:
              Update colors and font:
                summary: Modifier les couleurs de marque et la police
                value:
                  color_primary: '#123456'
                  color_button_1: '#2567FF'
                  font_family: AR One Sans
                  border_radius_buttons: 16
              Update UI options:
                summary: Modifier le nom public et les options de flux
                value:
                  app_public_name: Acme Verify
                  privacy_policy_url: https://acme.com/privacy
                  skip_welcome_screen: true
                  hide_progress_bar: true
                  callback_seconds: 5
              Remove a logo:
                summary: Supprimer le logo rectangulaire actuel
                value:
                  delete_logo_rectangular: true
              Remove the dark-mode logo:
                summary: Supprimer le logo actuel du mode sombre
                value:
                  delete_logo_rectangular_dark: true
          multipart/form-data:
            schema:
              type: object
              description: >-
                Utilisez multipart/form-data uniquement pour téléverser des
                images de logo. Les champs d'image de marque ci-dessus peuvent
                également être envoyés sous forme de champs de formulaire dans
                la même requête.
              properties:
                image_square:
                  type: string
                  format: binary
                  description: >-
                    Logo carré (format 1:1). PNG, JPG ou WebP, au moins 512 px
                    sur le côté le plus long, au maximum **1 MB**.
                image_rectangular:
                  type: string
                  format: binary
                  description: >-
                    Logo rectangulaire (format 2:1). PNG, JPG ou WebP, au moins
                    512 px sur le côté le plus long, au maximum **1 MB**.
                image_rectangular_dark:
                  type: string
                  format: binary
                  description: >-
                    Logo rectangulaire pour le mode sombre (format 2:1), affiché
                    sur fond sombre. PNG, JPG ou WebP, au moins 512 px sur le
                    côté le plus long, au maximum **1 MB**. Renvoyé sous la
                    forme `logo_rectangular_dark`.
                image_favicon:
                  type: string
                  format: binary
                  description: Image du favicon. **500 KB** max.
            example:
              image_rectangular: (binary PNG logo, 2:1)
              image_rectangular_dark: (binary PNG logo for dark mode, 2:1)
              image_favicon: (binary favicon)
      responses:
        '200':
          description: >-
            Image de marque mise à jour. L'objet complet d'image de marque est
            renvoyé (tous les champs, pas seulement ceux modifiés).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandingCustomization'
              examples:
                Updated:
                  value:
                    color_primary: '#123456'
                    color_secondary: '#9DA1A1'
                    color_background: '#FFFFFF'
                    color_panel: '#2567FF'
                    color_panel_10: '#1A1A1A'
                    color_on_panel_1: '#9DA1A1'
                    color_on_panel_2: '#F4F4F6'
                    color_on_background: '#000000'
                    color_button_1: '#2567FF'
                    color_button_2: '#F8F8F8'
                    color_button_text_1: '#FFFFFF'
                    color_button_text_2: '#000000'
                    color_pill_text: '#111827'
                    border_radius_panel: 10
                    border_radius_buttons: 16
                    font_family: AR One Sans
                    font_weight: '400'
                    font_url: https://fonts.googleapis.com/css2?family=AR+One+Sans
                    logo_square: null
                    logo_rectangular: https://cdn.didit.me/white_label/logo_rectangular/...
                    logo_rectangular_dark: null
                    favicon: null
                    app_public_name: Acme Verify
                    privacy_policy_url: https://acme.com/privacy
                    skip_welcome_screen: true
                    disable_login_with_didit: false
                    hide_progress_bar: false
                    callback_seconds: 3
        '400':
          description: >-
            Corps non valide. Par exemple : une couleur hexadécimale malformée,
            une famille ou graisse de police inconnue, un champ réservé à la
            Business Console (`domain`, `from_email`, `verify_domain`,
            `force_remove_domain`, `verify_email_domain`,
            `force_remove_email_domain`, ainsi que leurs équivalents en lecture
            seule), ou un import de logo qui n'est pas une image PNG, JPG ou
            WebP, fait moins de 512 px sur son côté le plus long, dépasse 1 Mo,
            ou a un rapport hauteur/largeur incorrect. Également renvoyé lors de
            la définition de `disable_login_with_didit` à `false` alors qu'un
            domaine personnalisé est configuré.
          content:
            application/json:
              examples:
                Bad color:
                  value:
                    color_primary:
                      - >-
                        Invalid color format. Use '#RRGGBB' or '#RRGGBBAA'
                        format.
                Bad logo:
                  value:
                    image_rectangular:
                      - >-
                        Image aspect ratio must be 2:1. Got 1024x1024 image
                        dimensions
                Unsupported logo format:
                  summary: Pas une image PNG, JPG ou WebP (un SVG, par exemple)
                  value:
                    image_rectangular_dark:
                      - Upload a PNG, JPG or WebP image.
                Logo too small:
                  summary: Moins de 512 px sur le côté long
                  value:
                    image_rectangular:
                      - >-
                        Image must be at least 512 px on its long side. Got
                        400x200 image dimensions
                Logo too large:
                  summary: Supérieur à 1 Mo
                  value:
                    image_square:
                      - File size should not exceed 1 MB
                Console-only field:
                  value:
                    domain:
                      - Manage this field in the Business Console.
                Bad font weight:
                  value:
                    font_weight:
                      - >-
                        Font weight 950 is not available for Inter. Available
                        weights are: 100, 200, 300, 400, 500, 600, 700, 800, 900
        '403':
          description: >-
            Clé API manquante, mal formée, expirée ou limitée à une application
            différente. Une clé manquante renvoie `403` ; une clé erronée,
            révoquée ou expirée renvoie `401`.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: >-
            Limite de débit dépassée. Réessayez avec une temporisation
            exponentielle.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PATCH 'https://verification.didit.me/v3/customization/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"color_primary": "#123456", "font_family": "AR One Sans"}'
        - lang: curl
          label: curl (logo upload)
          source: |-
            curl -X PATCH 'https://verification.didit.me/v3/customization/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -F 'image_rectangular=@logo.png' \
              -F 'image_rectangular_dark=@logo-dark.png' \
              -F 'image_favicon=@favicon.ico'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.customization.update(
                image_rectangular=open("image_rectangular.jpg", "rb"),
                image_rectangular_dark=open("image_rectangular_dark.jpg", "rb"),
                image_favicon=open("image_favicon.jpg", "rb"),
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit, { fileFromPath } from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.customization.update({
              image_rectangular: await fileFromPath("image_rectangular.jpg"),
              image_rectangular_dark: await fileFromPath("image_rectangular_dark.jpg"),
              image_favicon: await fileFromPath("image_favicon.jpg"),
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Customization.Update(ctx, didit.CustomizationUpdateParams{\n\tImageRectangular:     didit.Some(didit.FileFromPath(\"image_rectangular.jpg\")),\n\tImageRectangularDark: didit.Some(didit.FileFromPath(\"image_rectangular_dark.jpg\")),\n\tImageFavicon:         didit.Some(didit.FileFromPath(\"image_favicon.jpg\")),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.nio.file.Path;

            import me.didit.Didit;

            import me.didit.types.CustomizationUpdateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.customization().update(CustomizationUpdateParams.builder()
                    .imageRectangular(Path.of("image_rectangular.jpg"))
                    .imageRectangularDark(Path.of("image_rectangular_dark.jpg"))
                    .imageFavicon(Path.of("image_favicon.jpg"))
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;
            use Didit\File;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->customization->update([
                'image_rectangular' => File::fromPath('image_rectangular.jpg'),
                'image_rectangular_dark' => File::fromPath('image_rectangular_dark.jpg'),
                'image_favicon' => File::fromPath('image_favicon.jpg'),
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.customization.update(
              image_rectangular: Pathname("image_rectangular.jpg"),
              image_rectangular_dark: Pathname("image_rectangular_dark.jpg"),
              image_favicon: Pathname("image_favicon.jpg")
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Customization.UpdateAsync(new
            CustomizationUpdateParams

            {
                ImageRectangular = FileUpload.FromPath("image_rectangular.jpg"),
                ImageRectangularDark = FileUpload.FromPath("image_rectangular_dark.jpg"),
                ImageFavicon = FileUpload.FromPath("image_favicon.jpg"),
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    BrandingCustomizationUpdate:
      type: object
      description: >-
        Corps de mise à jour partielle de la marque. Ne fournissez que les
        champs que vous souhaitez modifier. Les couleurs hexadécimales acceptent
        `#RRGGBB` ou `#RRGGBBAA`. Le domaine personnalisé et l'e-mail en marque
        blanche ne sont pas acceptés ici.
      properties:
        color_primary:
          type: string
          description: Couleur des en-têtes / du texte principal.
        color_secondary:
          type: string
          description: Couleur de paragraphe / texte secondaire.
        color_background:
          type: string
          description: Couleur d'arrière-plan de la page.
        color_panel:
          type: string
          description: Couleur de panneau / d'accentuation.
        color_panel_10:
          type: string
          description: Couleur de panneau à 10 % d'opacité.
        color_on_panel_1:
          type: string
          description: Couleur du texte d'assistance sur les panneaux.
        color_on_panel_2:
          type: string
          description: Couleur de la pastille / du badge sur les panneaux.
        color_on_background:
          type: string
          description: Couleur du texte sur l'arrière-plan.
        color_button_1:
          type: string
          description: Couleur du bouton principal.
        color_button_2:
          type: string
          description: Couleur du bouton secondaire.
        color_button_text_1:
          type: string
          description: Couleur du texte du bouton principal.
        color_button_text_2:
          type: string
          description: Couleur du texte du bouton secondaire.
        color_pill_text:
          type: string
          description: Couleur du texte pour les badges, champs de saisie et sélecteurs.
        border_radius_panel:
          type: integer
          minimum: 0
          description: Rayon des angles du panneau en pixels.
        border_radius_buttons:
          type: integer
          minimum: 0
          description: Rayon d'arrondi des coins du bouton en pixels.
        font_family:
          type: string
          description: >-
            Nom de la famille de polices Google (par exemple `Inter`, `AR One
            Sans`).
        font_weight:
          type: string
          description: >-
            Graisse de police disponible pour la famille sélectionnée (par ex.
            `regular`, `500`, `700`).
        app_public_name:
          type: string
          nullable: true
          description: Nom public affiché dans le flux de vérification.
        privacy_policy_url:
          type: string
          nullable: true
          description: >-
            URL de la politique de confidentialité affichée à l'utilisateur
            final.
        skip_welcome_screen:
          type: boolean
          description: Ignorer l'écran de bienvenue initial.
        disable_login_with_didit:
          type: boolean
          description: >-
            Continuer en tant qu'invité au lieu d'afficher l'écran de connexion
            avec Didit. Ne peut pas être remis à `false` tant qu'un domaine
            personnalisé est configuré (400).
        hide_progress_bar:
          type: boolean
          description: Masquer la barre de progression pendant le flux.
        callback_seconds:
          type: integer
          minimum: 0
          description: Délai (secondes) avant la redirection vers l'URL de rappel.
        delete_logo_square:
          type: boolean
          description: Lorsque la valeur est `true`, supprime le logo carré actuel.
        delete_logo_rectangular:
          type: boolean
          description: Lorsque la valeur est `true`, supprime le logo rectangulaire actuel.
        delete_logo_rectangular_dark:
          type: boolean
          description: >-
            Lorsque la valeur est `true`, supprime le logo actuel en mode
            sombre, et `logo_rectangular_dark` renvoie alors `null`. Si la même
            requête multipart téléverse également `image_rectangular_dark`, le
            téléversement prévaut.
        delete_favicon:
          type: boolean
          description: Lorsque la valeur est `true`, supprime le favicon actuel.
    BrandingCustomization:
      type: object
      description: >-
        Personnalisation en marque blanche pour une application : couleurs,
        polices, arrondis, URL des logos et options UI/UX. Les URL des logos
        sont en lecture seule (définissez-les en téléversant des images). Le
        domaine personnalisé et l'e-mail en marque blanche ne sont pas inclus.
      properties:
        color_primary:
          type: string
        color_secondary:
          type: string
        color_background:
          type: string
        color_panel:
          type: string
        color_panel_10:
          type: string
        color_on_panel_1:
          type: string
        color_on_panel_2:
          type: string
        color_on_background:
          type: string
        color_button_1:
          type: string
        color_button_2:
          type: string
        color_button_text_1:
          type: string
        color_button_text_2:
          type: string
        color_pill_text:
          type: string
        border_radius_panel:
          type: integer
        border_radius_buttons:
          type: integer
        font_family:
          type: string
        font_weight:
          type: string
        font_url:
          type: string
          nullable: true
          description: >-
            Lecture seule. URL résolue de la feuille de style Google Fonts pour
            la famille sélectionnée.
        logo_square:
          type: string
          nullable: true
          description: URL en lecture seule du logo carré. Téléversez via `image_square`.
        logo_rectangular:
          type: string
          nullable: true
          description: >-
            URL en lecture seule du logo rectangulaire. Téléversez via
            `image_rectangular`.
        logo_rectangular_dark:
          type: string
          format: uri
          nullable: true
          description: >-
            Lecture seule. URL signée temporaire du logo rectangulaire pour le
            mode sombre, affiché sur fond sombre. Vaut `null` lorsqu'aucun logo
            sombre n'est configuré ou que les logos rectangulaires ne sont pas
            affichés pour votre compte. Téléversez-le avec
            `image_rectangular_dark`.
        favicon:
          type: string
          nullable: true
          description: URL en lecture seule du favicon. Téléversez via `image_favicon`.
        app_public_name:
          type: string
          nullable: true
        privacy_policy_url:
          type: string
          nullable: true
        skip_welcome_screen:
          type: boolean
        disable_login_with_didit:
          type: boolean
        hide_progress_bar:
          type: boolean
        callback_seconds:
          type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.