> ## 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 para actualizar la personalización de marca

> Actualiza la marca blanca de Didit con la Management API: cambia colores, fuentes y bordes, sube logos y ajusta la interfaz del flujo de verificación.



Prompt para actualizar la marca
        Copiar el prompt al portapapeles



      
      

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



      
      

Pegar en

## Descripción generalActualiza parcialmente la personalización de marca blanca de la aplicación que se determina a partir de tu clave de API. Envía `application/json` para cambiar colores, fuentes, radios de borde y opciones de la interfaz, o `multipart/form-data` para subir logotipos. Solo se modifican los campos que incluyas; todo lo demás queda intacto.## Cuándo usarlo- **Personaliza el tema del flujo**: define los colores de tu marca, la fuente y los radios de las esquinas redondeadas.
- **Sube logotipos**: define el logotipo cuadrado, el logotipo rectangular y su versión para modo oscuro, y el favicon.
- **Ajusta la experiencia**: define el nombre público de la aplicación, la URL de la política de privacidad y opciones como omitir la pantalla de bienvenida u ocultar la barra de progreso.## Subir logotiposEnvía los logotipos como `multipart/form-data`:- `image_square`: relación de aspecto 1:1.
- `image_rectangular`: relación de aspecto 2:1.
- `image_rectangular_dark`: relación de aspecto 2:1. El logotipo rectangular para el modo oscuro, que se muestra sobre un fondo oscuro.
- `image_favicon`: máximo **500 KB**.`image_square`, `image_rectangular` e `image_rectangular_dark` deben ser imágenes PNG, JPG o WebP, de al menos 512 px en el lado más largo y de **1 MB** como máximo.
Los archivos SVG se rechazan.
La respuesta devuelve las URL resultantes de `logo_square`, `logo_rectangular`, `logo_rectangular_dark` y `favicon`.Para eliminar un logotipo, envía con el valor `true` el indicador correspondiente: `delete_logo_square`, `delete_logo_rectangular`, `delete_logo_rectangular_dark` o `delete_favicon`.
Después de eliminar el logotipo para modo oscuro, `logo_rectangular_dark` pasa a ser `null`.
Si una misma solicitud sube un logotipo y además envía su indicador de eliminación, prevalece la subida.Una subida rechazada devuelve `400` con el nombre del campo y el motivo, por ejemplo:- `{"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"]}`## Notas- La aplicación se determina a partir de la clave de API; no hay parámetros de ruta.
- Los colores hexadecimales aceptan `#RRGGBB` o `#RRGGBBAA`. `font_weight` debe ser un peso disponible para la `font_family` seleccionada.
- **El dominio personalizado y el correo electrónico de marca blanca no se configuran aquí.** Gestiónalos en la [Business Console](https://docs.didit.me/es/console/white-label.md).## PermisosLa clave de API debe tener permiso para actualizar la personalización de la aplicación.## Relacionado- [Obtener la marca](https://docs.didit.me/es/management-api/customization/get.md)
- [Marca blanca en la Console](https://docs.didit.me/es/console/white-label.md)


## OpenAPI

````yaml es/openapi-25.json PATCH /v3/customization/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/customization/:
    patch:
      tags:
        - Customization
      summary: Actualizar la personalización de marca
      description: >-
        Actualización parcial de la marca blanca de la aplicación. Envía
        `application/json` para cambiar colores, fuentes, radios y opciones de
        la interfaz, o `multipart/form-data` para subir imágenes del logotipo.
        Solo se cambian los campos que incluyas. El dominio personalizado y el
        correo electrónico de marca blanca no se pueden configurar con este
        endpoint; usa la Business Console para ello.
      operationId: update_customization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingCustomizationUpdate'
            examples:
              Update colors and font:
                summary: Cambiar los colores y la fuente de la marca
                value:
                  color_primary: '#123456'
                  color_button_1: '#2567FF'
                  font_family: AR One Sans
                  border_radius_buttons: 16
              Update UI options:
                summary: Cambiar el nombre público y las opciones del flujo
                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: Eliminar el logotipo rectangular actual
                value:
                  delete_logo_rectangular: true
              Remove the dark-mode logo:
                summary: Eliminar el logotipo actual del modo oscuro
                value:
                  delete_logo_rectangular_dark: true
          multipart/form-data:
            schema:
              type: object
              description: >-
                Usa multipart/form-data solo para subir imágenes de logotipo.
                Los campos de marca anteriores también pueden enviarse como
                campos de formulario en la misma solicitud.
              properties:
                image_square:
                  type: string
                  format: binary
                  description: >-
                    Logotipo cuadrado (relación de aspecto 1:1). PNG, JPG o
                    WebP, de al menos 512 px en el lado más largo y como máximo
                    **1 MB**.
                image_rectangular:
                  type: string
                  format: binary
                  description: >-
                    Logotipo rectangular (relación de aspecto 2:1). PNG, JPG o
                    WebP, de al menos 512 px en el lado largo y como máximo **1
                    MB**.
                image_rectangular_dark:
                  type: string
                  format: binary
                  description: >-
                    Logotipo rectangular para el modo oscuro (relación de
                    aspecto 2:1), que se muestra sobre un fondo oscuro. PNG, JPG
                    o WebP, de al menos 512 px en el lado largo y como máximo
                    **1 MB**. Se devuelve como `logo_rectangular_dark`.
                image_favicon:
                  type: string
                  format: binary
                  description: Imagen del favicon. Máximo **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: >-
            Personalización de marca actualizada. Se devuelve el objeto de
            personalización de marca COMPLETO (todos los campos, no solo los que
            cambiaste).
          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: >-
            Cuerpo no válido. Por ejemplo: un color hexadecimal mal formado, una
            familia o un grosor de fuente desconocidos, un campo exclusivo de
            Business Console (`domain`, `from_email`, `verify_domain`,
            `force_remove_domain`, `verify_email_domain`,
            `force_remove_email_domain` y sus campos complementarios de solo
            lectura), o un logotipo subido que no es una imagen PNG, JPG o WebP,
            mide menos de 512 px en su lado largo, pesa más de 1 MB o tiene una
            relación de aspecto incorrecta. También se devuelve al establecer
            `disable_login_with_didit` en `false` mientras hay un dominio
            personalizado configurado.
          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: No es una imagen PNG, JPG ni WebP (por ejemplo, un SVG)
                  value:
                    image_rectangular_dark:
                      - Upload a PNG, JPG or WebP image.
                Logo too small:
                  summary: Menos de 512 px en el lado largo
                  value:
                    image_rectangular:
                      - >-
                        Image must be at least 512 px on its long side. Got
                        400x200 image dimensions
                Logo too large:
                  summary: Más de 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: >-
            Clave de API ausente, con formato incorrecto, expirada o asociada a
            otra aplicación. Si falta la clave, se devuelve `403`; si es
            incorrecta, está revocada o ha expirado, se devuelve `401`.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Límite de solicitudes superado. Reintenta con retroceso exponencial.
      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: >-
        Cuerpo de actualización parcial de la marca. Indica solo los campos que
        quieras cambiar. Los colores hexadecimales aceptan `#RRGGBB` o
        `#RRGGBBAA`. El dominio personalizado y el correo electrónico de marca
        blanca no se aceptan aquí.
      properties:
        color_primary:
          type: string
          description: Color de los encabezados y del texto principal.
        color_secondary:
          type: string
          description: Color del texto de párrafo / secundario.
        color_background:
          type: string
          description: Color de fondo de la página.
        color_panel:
          type: string
          description: Color del panel / de acento.
        color_panel_10:
          type: string
          description: Color del panel con un 10% de opacidad.
        color_on_panel_1:
          type: string
          description: Color del texto de apoyo en los paneles.
        color_on_panel_2:
          type: string
          description: Color de la etiqueta o insignia en los paneles.
        color_on_background:
          type: string
          description: Color del texto sobre el fondo.
        color_button_1:
          type: string
          description: Color del botón principal.
        color_button_2:
          type: string
          description: Color del botón secundario.
        color_button_text_1:
          type: string
          description: Color del texto del botón principal.
        color_button_text_2:
          type: string
          description: Color del texto del botón secundario.
        color_pill_text:
          type: string
          description: Color del texto para píldoras, campos de entrada y selectores.
        border_radius_panel:
          type: integer
          minimum: 0
          description: Radio de las esquinas del panel en píxeles.
        border_radius_buttons:
          type: integer
          minimum: 0
          description: Radio de las esquinas del botón en píxeles.
        font_family:
          type: string
          description: >-
            Nombre de la familia tipográfica de Google Fonts (p. ej., `Inter`,
            `AR One Sans`).
        font_weight:
          type: string
          description: >-
            Grosor de fuente disponible para la familia seleccionada (p. ej.,
            `regular`, `500`, `700`).
        app_public_name:
          type: string
          nullable: true
          description: Nombre público que se muestra en el flujo de verificación.
        privacy_policy_url:
          type: string
          nullable: true
          description: URL de la política de privacidad que se muestra al usuario final.
        skip_welcome_screen:
          type: boolean
          description: Omite la pantalla de bienvenida inicial.
        disable_login_with_didit:
          type: boolean
          description: >-
            Continuar como invitado en lugar de mostrar la pantalla de inicio de
            sesión con Didit. No se puede volver a establecer en `false`
            mientras haya un dominio personalizado configurado (400).
        hide_progress_bar:
          type: boolean
          description: Oculta la barra de progreso durante el flujo.
        callback_seconds:
          type: integer
          minimum: 0
          description: Retraso (en segundos) antes de redirigir a la URL de callback.
        delete_logo_square:
          type: boolean
          description: Si es `true`, elimina el logotipo cuadrado actual.
        delete_logo_rectangular:
          type: boolean
          description: Si es `true`, elimina el logotipo rectangular actual.
        delete_logo_rectangular_dark:
          type: boolean
          description: >-
            Si es `true`, elimina el logotipo actual del modo oscuro y
            `logo_rectangular_dark` pasa a ser `null`. Si la misma solicitud
            multipart también sube `image_rectangular_dark`, prevalece la
            subida.
        delete_favicon:
          type: boolean
          description: Si es `true`, elimina el favicon actual.
    BrandingCustomization:
      type: object
      description: >-
        Personalización de marca blanca de una aplicación: colores, fuentes,
        radios, URL de logotipos y opciones de UI/UX. Las URL de logotipos son
        de solo lectura (se definen subiendo imágenes). No se incluyen el
        dominio personalizado ni el correo electrónico de marca blanca.
      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: >-
            Solo lectura. URL resuelta de la hoja de estilos de Google Fonts
            para la familia seleccionada.
        logo_square:
          type: string
          nullable: true
          description: >-
            URL de solo lectura del logotipo cuadrado. Súbelo mediante
            `image_square`.
        logo_rectangular:
          type: string
          nullable: true
          description: >-
            URL de solo lectura del logotipo rectangular. Súbelo mediante
            `image_rectangular`.
        logo_rectangular_dark:
          type: string
          format: uri
          nullable: true
          description: >-
            Solo lectura. URL firmada temporal del logotipo rectangular para el
            modo oscuro, que se muestra sobre un fondo oscuro. Es `null` cuando
            no hay ningún logotipo oscuro configurado o cuando los logotipos
            rectangulares no se muestran en tu cuenta. Súbelo con
            `image_rectangular_dark`.
        favicon:
          type: string
          nullable: true
          description: URL de solo lectura del favicon. Súbelo mediante `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 clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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