> ## 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 per aggiornare il branding white label

> Aggiorna il branding white label di Didit tramite la Management API: colori, font, raggi dei bordi, logo e opzioni UI del flusso di verifica.



Prompt per aggiornare il branding
        Copia il prompt negli appunti



      
      

\<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>



      
      

Incolla in

## PanoramicaAggiorna parzialmente il branding White label dell'applicazione identificata dalla tua chiave API. Invia `application/json` per modificare colori, font, raggi degli angoli e opzioni dell'interfaccia, oppure `multipart/form-data` per caricare i loghi. Vengono modificati solo i campi che includi: tutto il resto resta invariato.## Quando usarlo- **Personalizza il flusso** — imposta i colori del brand, il font e i raggi degli angoli.
- **Carica i loghi**: imposta il logo quadrato, il logo rettangolare e la sua versione per la modalità scura, e la favicon.
- **Personalizza l'esperienza** — imposta il nome pubblico dell'app, l'URL dell'informativa sulla privacy e le opzioni per saltare la schermata di benvenuto o nascondere la barra di avanzamento.## Caricamento dei loghiInvia i loghi come `multipart/form-data`:- `image_square`: proporzioni 1:1.
- `image_rectangular`: proporzioni 2:1.
- `image_rectangular_dark`: proporzioni 2:1. Il logo rettangolare per la modalità scura, mostrato su sfondo scuro.
- `image_favicon`: massimo **500 KB**.`image_square`, `image_rectangular` e `image_rectangular_dark` devono essere immagini PNG, JPG o WebP, con il lato più lungo di almeno 512 px e un peso massimo di **1 MB**.
I file SVG vengono rifiutati.
La risposta restituisce gli URL risultanti `logo_square`, `logo_rectangular`, `logo_rectangular_dark` e `favicon`.Per rimuovere un logo, invia il flag di eliminazione corrispondente `delete_logo_square`, `delete_logo_rectangular`, `delete_logo_rectangular_dark` o `delete_favicon` impostato a `true`.
Dopo aver rimosso il logo per la modalità scura, `logo_rectangular_dark` risulta `null`.
Se una richiesta carica un logo e invia anche il relativo flag di eliminazione, prevale il caricamento.Un caricamento rifiutato restituisce `400` con il nome del campo e il motivo, per esempio:- `{"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"]}`## Note- L'applicazione viene identificata dalla chiave API: non ci sono parametri di percorso.
- I colori esadecimali accettano il formato `#RRGGBB` o `#RRGGBBAA`. `font_weight` deve essere un peso disponibile per il `font_family` selezionato.
- **Il dominio personalizzato e l'email White label non sono configurabili qui.** Gestiscili nella [Business Console](https://docs.didit.me/it/console/white-label.md).## PermessiLa chiave API deve poter aggiornare la personalizzazione dell'applicazione.## Correlati- [Ottieni il branding](https://docs.didit.me/it/management-api/customization/get.md)
- [White label nella Console](https://docs.didit.me/it/console/white-label.md)


## OpenAPI

````yaml it/openapi-25.json PATCH /v3/customization/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/customization/:
    patch:
      tags:
        - Customization
      summary: Aggiorna la personalizzazione del branding
      description: >-
        Aggiornamento parziale del branding White label dell'applicazione. Invia
        `application/json` per modificare colori, font, raggi e opzioni
        dell'interfaccia utente, oppure `multipart/form-data` per caricare le
        immagini del logo. Vengono modificati solo i campi inclusi. Il dominio
        personalizzato e l'email White label non possono essere impostati
        tramite questo endpoint — usa la Business Console per queste opzioni.
      operationId: update_customization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingCustomizationUpdate'
            examples:
              Update colors and font:
                summary: Modifica i colori e il font del branding
                value:
                  color_primary: '#123456'
                  color_button_1: '#2567FF'
                  font_family: AR One Sans
                  border_radius_buttons: 16
              Update UI options:
                summary: Modifica il nome pubblico e le opzioni del flusso
                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: Elimina il logo rettangolare attuale
                value:
                  delete_logo_rectangular: true
              Remove the dark-mode logo:
                summary: Elimina il logo attuale per la modalità scura
                value:
                  delete_logo_rectangular_dark: true
          multipart/form-data:
            schema:
              type: object
              description: >-
                Usa multipart/form-data solo per caricare immagini del logo. I
                campi di branding indicati sopra possono essere inviati anche
                come campi del modulo nella stessa richiesta.
              properties:
                image_square:
                  type: string
                  format: binary
                  description: >-
                    Logo quadrato (proporzioni 1:1). PNG, JPG o WebP, almeno 512
                    px sul lato lungo, massimo **1 MB**.
                image_rectangular:
                  type: string
                  format: binary
                  description: >-
                    Logo rettangolare (proporzioni 2:1). PNG, JPG o WebP, di
                    almeno 512 px sul lato lungo, massimo **1 MB**.
                image_rectangular_dark:
                  type: string
                  format: binary
                  description: >-
                    Logo rettangolare per la modalità scura (proporzioni 2:1),
                    mostrato su sfondo scuro. PNG, JPG o WebP, di almeno 512 px
                    sul lato lungo, massimo **1 MB**. Restituito come
                    `logo_rectangular_dark`.
                image_favicon:
                  type: string
                  format: binary
                  description: Immagine della favicon. Massimo **500 KB**.
            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: >-
            Branding aggiornato. Viene restituito l'oggetto branding COMPLETO
            (tutti i campi, non solo quelli modificati).
          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: >-
            Corpo non valido. Ad esempio: un colore esadecimale non valido, una
            famiglia di caratteri o un peso del carattere sconosciuti, un campo
            riservato alla Business Console (`domain`, `from_email`,
            `verify_domain`, `force_remove_domain`, `verify_email_domain`,
            `force_remove_email_domain` e i relativi corrispondenti in sola
            lettura), o il caricamento di un logo che non è un'immagine PNG, JPG
            o WebP, ha il lato lungo inferiore a 512 px, supera 1 MB o presenta
            proporzioni errate. Viene restituito anche quando si imposta
            `disable_login_with_didit` su `false` mentre è configurato un
            dominio personalizzato.
          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: Non è un'immagine PNG, JPG o WebP (ad esempio un SVG)
                  value:
                    image_rectangular_dark:
                      - Upload a PNG, JPG or WebP image.
                Logo too small:
                  summary: Inferiore a 512 px sul lato lungo
                  value:
                    image_rectangular:
                      - >-
                        Image must be at least 512 px on its long side. Got
                        400x200 image dimensions
                Logo too large:
                  summary: Superiore a 1 MB
                  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: >-
            Chiave API mancante, malformata, scaduta o associata a
            un'applicazione diversa. Una chiave mancante restituisce `403`; una
            chiave errata, revocata o scaduta restituisce `401`.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Limite di frequenza superato. Riprova con backoff esponenziale.
      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: >-
        Corpo di aggiornamento parziale del branding. Fornisci solo i campi che
        desideri modificare. I colori esadecimali accettano `#RRGGBB` o
        `#RRGGBBAA`. Il dominio personalizzato e l'email white label non sono
        accettati qui.
      properties:
        color_primary:
          type: string
          description: Colore delle intestazioni / del testo principale.
        color_secondary:
          type: string
          description: Colore del testo secondario / dei paragrafi.
        color_background:
          type: string
          description: Colore di sfondo della pagina.
        color_panel:
          type: string
          description: Colore del pannello / accento.
        color_panel_10:
          type: string
          description: Colore del pannello al 10% di opacità.
        color_on_panel_1:
          type: string
          description: Colore del testo di supporto sui pannelli.
        color_on_panel_2:
          type: string
          description: Colore del badge sui pannelli.
        color_on_background:
          type: string
          description: Colore del testo sullo sfondo.
        color_button_1:
          type: string
          description: Colore del pulsante principale.
        color_button_2:
          type: string
          description: Colore del pulsante secondario.
        color_button_text_1:
          type: string
          description: Colore del testo del pulsante principale.
        color_button_text_2:
          type: string
          description: Colore del testo del pulsante secondario.
        color_pill_text:
          type: string
          description: Colore del testo per pill, campi di input e selettori.
        border_radius_panel:
          type: integer
          minimum: 0
          description: Raggio degli angoli del pannello in pixel.
        border_radius_buttons:
          type: integer
          minimum: 0
          description: Raggio dell'angolo del pulsante in pixel.
        font_family:
          type: string
          description: Nome della famiglia di Google Font (es. `Inter`, `AR One Sans`).
        font_weight:
          type: string
          description: >-
            Spessore del carattere disponibile per la famiglia selezionata (es.
            `regular`, `500`, `700`).
        app_public_name:
          type: string
          nullable: true
          description: Nome pubblico mostrato nel flusso di verifica.
        privacy_policy_url:
          type: string
          nullable: true
          description: URL dell'informativa sulla privacy mostrato all'utente finale.
        skip_welcome_screen:
          type: boolean
          description: Salta la schermata iniziale di benvenuto.
        disable_login_with_didit:
          type: boolean
          description: >-
            Continua come ospite invece di mostrare la schermata di accesso con
            Didit. Non può essere reimpostato a `false` mentre è configurato un
            dominio personalizzato (400).
        hide_progress_bar:
          type: boolean
          description: Nascondi la barra di avanzamento durante il flusso.
        callback_seconds:
          type: integer
          minimum: 0
          description: Ritardo (secondi) prima del reindirizzamento all'URL di callback.
        delete_logo_square:
          type: boolean
          description: Quando è `true`, rimuove il logo quadrato corrente.
        delete_logo_rectangular:
          type: boolean
          description: Quando è `true`, rimuove il logo rettangolare corrente.
        delete_logo_rectangular_dark:
          type: boolean
          description: >-
            Quando è `true`, rimuove l'attuale logo per la modalità scura e
            `logo_rectangular_dark` assume il valore `null`. Se la stessa
            richiesta multipart carica anche `image_rectangular_dark`, prevale
            il caricamento.
        delete_favicon:
          type: boolean
          description: Quando è `true`, rimuove la favicon corrente.
    BrandingCustomization:
      type: object
      description: >-
        Branding White label per un'applicazione: colori, font, raggi dei bordi,
        URL dei loghi e opzioni UI/UX. Gli URL dei loghi sono di sola lettura
        (impostali caricando le immagini). Il dominio personalizzato e l'email
        White label non sono inclusi.
      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: >-
            Sola lettura. URL del foglio di stile Google Fonts risolto per la
            famiglia di caratteri selezionata.
        logo_square:
          type: string
          nullable: true
          description: >-
            URL di sola lettura del logo quadrato. Carica tramite
            `image_square`.
        logo_rectangular:
          type: string
          nullable: true
          description: >-
            URL di sola lettura del logo rettangolare. Carica tramite
            `image_rectangular`.
        logo_rectangular_dark:
          type: string
          format: uri
          nullable: true
          description: >-
            Sola lettura. URL firmato temporaneo del logo rettangolare per la
            modalità scura, visualizzato su sfondo scuro. `null` quando non è
            impostato alcun logo per la modalità scura o i loghi rettangolari
            non sono visualizzati per il tuo account. Caricalo con
            `image_rectangular_dark`.
        favicon:
          type: string
          nullable: true
          description: URL di sola lettura della favicon. Carica tramite `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 chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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