> ## 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.

# Atualizar marca branca via API de personalização

> Atualize a marca branca com a API de Gestão da Didit: cores, tipos de letra, raios de borda, logótipos e opções de interface.



Atualizar o prompt de personalização
        Copiar o prompt para a área de transferência



      
      

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



      
      

Colar em

## Visão geralAtualiza parcialmente a personalização de marca branca da aplicação associada à sua chave de API. Envie `application/json` para alterar cores, tipos de letra, raios dos cantos e opções de interface, ou `multipart/form-data` para carregar logótipos. Só são alterados os campos que incluir. Tudo o resto fica inalterado.## Quando usar- **Personalizar o fluxo**: defina as cores da sua marca, o tipo de letra e os raios dos cantos.
- **Carregar logótipos**: defina o logótipo quadrado, o logótipo retangular e a sua versão para modo escuro, e o favicon.
- **Ajustar a experiência**: defina o nome público da aplicação, o URL da política de privacidade e opções como ignorar o ecrã de boas-vindas ou ocultar a barra de progresso.## Carregar logótiposEnvie os logótipos como `multipart/form-data`:- `image_square`: proporção 1:1.
- `image_rectangular`: proporção 2:1.
- `image_rectangular_dark`: proporção 2:1. O logótipo retangular para modo escuro, apresentado sobre um fundo escuro.
- `image_favicon`: máximo de **500 KB**.`image_square`, `image_rectangular` e `image_rectangular_dark` têm de ser imagens PNG, JPG ou WebP, com pelo menos 512 px no lado maior e no máximo **1 MB**.
Ficheiros SVG são recusados.
A resposta devolve os URLs resultantes de `logo_square`, `logo_rectangular`, `logo_rectangular_dark` e `favicon`.Para remover um logótipo, envie a flag correspondente `delete_logo_square`, `delete_logo_rectangular`, `delete_logo_rectangular_dark` ou `delete_favicon` com o valor `true`.
Depois de remover o logótipo para modo escuro, `logo_rectangular_dark` fica com o valor `null`.
Se um pedido carregar um logótipo e também enviar a respetiva flag de remoção, prevalece o carregamento.Um carregamento rejeitado devolve `400` com o nome do campo e o motivo, por exemplo:- `{"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- A aplicação é identificada pela chave de API, por isso não existem parâmetros de caminho.
- As cores hexadecimais aceitam `#RRGGBB` ou `#RRGGBBAA`. `font_weight` tem de ser um peso disponível para o `font_family` selecionado.
- **O domínio personalizado e o e-mail de marca branca não são configuráveis aqui.** Faça essa gestão na [Business Console](https://docs.didit.me/pt/console/white-label.md).## PermissõesA chave de API tem de poder atualizar a personalização da aplicação.## Relacionados- [Obter personalização](https://docs.didit.me/pt/management-api/customization/get.md)
- [Marca branca na Consola](https://docs.didit.me/pt/console/white-label.md)


## OpenAPI

````yaml pt/openapi-25.json PATCH /v3/customization/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de Verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/customization/:
    patch:
      tags:
        - Customization
      summary: Atualizar personalização de marca
      description: >-
        Atualização parcial da personalização de marca branca da aplicação.
        Envie `application/json` para alterar cores, tipos de letra, raios e
        opções de interface do utilizador, ou `multipart/form-data` para
        carregar imagens de logótipos. Apenas os campos que incluir são
        alterados. Domínio personalizado e e-mail com marca branca não podem ser
        definidos através deste endpoint — utilize a Business Console para esses
        fins.
      operationId: update_customization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingCustomizationUpdate'
            examples:
              Update colors and font:
                summary: Alterar cores da marca e tipo de letra
                value:
                  color_primary: '#123456'
                  color_button_1: '#2567FF'
                  font_family: AR One Sans
                  border_radius_buttons: 16
              Update UI options:
                summary: Alterar nome público e opções do fluxo
                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 o logótipo retangular atual
                value:
                  delete_logo_rectangular: true
              Remove the dark-mode logo:
                summary: Eliminar o logótipo atual do modo escuro
                value:
                  delete_logo_rectangular_dark: true
          multipart/form-data:
            schema:
              type: object
              description: >-
                Utilize multipart/form-data apenas para carregar imagens de
                logótipo. Os campos de marca acima também podem ser enviados
                como campos de formulário no mesmo pedido.
              properties:
                image_square:
                  type: string
                  format: binary
                  description: >-
                    Logótipo quadrado (proporção 1:1). PNG, JPG ou WebP, com
                    pelo menos 512 px no lado mais longo, no máximo **1 MB**.
                image_rectangular:
                  type: string
                  format: binary
                  description: >-
                    Logótipo retangular (proporção 2:1). PNG, JPG ou WebP, com
                    pelo menos 512 px no lado mais longo, no máximo **1 MB**.
                image_rectangular_dark:
                  type: string
                  format: binary
                  description: >-
                    Logótipo retangular para o modo escuro (proporção 2:1),
                    apresentado num fundo escuro. PNG, JPG ou WebP, com pelo
                    menos 512 px no lado mais longo, no máximo **1 MB**.
                    Devolvido como `logo_rectangular_dark`.
                image_favicon:
                  type: string
                  format: binary
                  description: Imagem do favicon. Máx. **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: >-
            Identidade visual atualizada. É devolvido o objeto COMPLETO de
            identidade visual (todos os campos, não apenas os que alterou).
          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 inválido. Por exemplo: uma cor hexadecimal malformatada, uma
            família ou peso de tipo de letra desconhecido, um campo exclusivo da
            Business Console (`domain`, `from_email`, `verify_domain`,
            `force_remove_domain`, `verify_email_domain`,
            `force_remove_email_domain` e os respetivos equivalentes de apenas
            leitura) ou um carregamento de logótipo que não seja uma imagem PNG,
            JPG ou WebP, tenha menos de 512 px no lado mais longo, tenha mais de
            1 MB ou tenha uma proporção incorreta. Também devolvido ao definir
            `disable_login_with_didit` como `false` enquanto um domínio
            personalizado estiver 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: Não é uma imagem PNG, JPG ou WebP (um SVG, por exemplo)
                  value:
                    image_rectangular_dark:
                      - Upload a PNG, JPG or WebP image.
                Logo too small:
                  summary: Inferior a 512 px no lado mais longo
                  value:
                    image_rectangular:
                      - >-
                        Image must be at least 512 px on its long side. Got
                        400x200 image dimensions
                Logo too large:
                  summary: Mais 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: >-
            Chave de API em falta, mal formatada, expirada ou com âmbito
            limitado a uma aplicação diferente. Uma chave em falta devolve
            `403`; uma chave incorreta, revogada ou expirada devolve `401`.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Limite de pedidos excedido. Tente novamente com recuo 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: >-
        Corpo de atualização parcial de personalização de marca. Forneça apenas
        os campos que pretende alterar. Cores hexadecimais aceitam `#RRGGBB` ou
        `#RRGGBBAA`. Domínio personalizado e e-mail com marca branca não são
        aceites aqui.
      properties:
        color_primary:
          type: string
          description: Cor dos cabeçalhos / texto principal.
        color_secondary:
          type: string
          description: Cor do parágrafo / texto secundário.
        color_background:
          type: string
          description: Cor de fundo da página.
        color_panel:
          type: string
          description: Cor do painel / de destaque.
        color_panel_10:
          type: string
          description: Cor do painel com 10% de opacidade.
        color_on_panel_1:
          type: string
          description: Cor do texto de apoio nos painéis.
        color_on_panel_2:
          type: string
          description: Cor da etiqueta / do distintivo nos painéis.
        color_on_background:
          type: string
          description: Cor do texto sobre o fundo.
        color_button_1:
          type: string
          description: Cor do botão principal.
        color_button_2:
          type: string
          description: Cor do botão secundário.
        color_button_text_1:
          type: string
          description: Cor do texto do botão principal.
        color_button_text_2:
          type: string
          description: Cor do texto do botão secundário.
        color_pill_text:
          type: string
          description: Cor do texto para pílulas, campos de entrada e seletores.
        border_radius_panel:
          type: integer
          minimum: 0
          description: Raio dos cantos do painel em píxeis.
        border_radius_buttons:
          type: integer
          minimum: 0
          description: Raio dos cantos do botão em píxeis.
        font_family:
          type: string
          description: >-
            Nome da família de tipos de letra do Google (ex.: `Inter`, `AR One
            Sans`).
        font_weight:
          type: string
          description: >-
            Espessura da fonte disponível para a família selecionada (por
            exemplo, `regular`, `500`, `700`).
        app_public_name:
          type: string
          nullable: true
          description: Nome público apresentado no fluxo de verificação.
        privacy_policy_url:
          type: string
          nullable: true
          description: URL da política de privacidade apresentado ao utilizador final.
        skip_welcome_screen:
          type: boolean
          description: Ignorar o ecrã inicial de boas-vindas.
        disable_login_with_didit:
          type: boolean
          description: >-
            Continuar como convidado em vez de mostrar o ecrã de início de
            sessão com o Didit. Não pode ser reposto para `false` enquanto um
            domínio personalizado estiver configurado (400).
        hide_progress_bar:
          type: boolean
          description: Ocultar a barra de progresso durante o fluxo.
        callback_seconds:
          type: integer
          minimum: 0
          description: Atraso (segundos) antes de redirecionar para o URL de retorno.
        delete_logo_square:
          type: boolean
          description: Quando `true`, remove o logótipo quadrado atual.
        delete_logo_rectangular:
          type: boolean
          description: Quando `true`, remove o logótipo retangular atual.
        delete_logo_rectangular_dark:
          type: boolean
          description: >-
            Quando `true`, remove o logótipo atual do modo escuro, e
            `logo_rectangular_dark` passa a apresentar `null`. Se o mesmo pedido
            multipart também enviar `image_rectangular_dark`, o carregamento
            prevalece.
        delete_favicon:
          type: boolean
          description: Quando `true`, remove o favicon atual.
    BrandingCustomization:
      type: object
      description: >-
        Personalização de marca branca para uma aplicação: cores, tipos de
        letra, raios, URLs do logótipo e opções de UI/UX. Os URLs do logótipo
        são apenas de leitura (defina-os carregando imagens). O domínio
        personalizado e o e-mail de marca branca não estão incluídos.
      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: >-
            Apenas de leitura. URL resolvido da folha de estilos do Google Fonts
            para a família selecionada.
        logo_square:
          type: string
          nullable: true
          description: >-
            URL apenas de leitura do logótipo quadrado. Carregue através de
            `image_square`.
        logo_rectangular:
          type: string
          nullable: true
          description: >-
            URL apenas de leitura do logótipo retangular. Carregue através de
            `image_rectangular`.
        logo_rectangular_dark:
          type: string
          format: uri
          nullable: true
          description: >-
            Apenas de leitura. URL assinado temporário do logótipo retangular
            para o modo escuro, apresentado num fundo escuro. `null` quando
            nenhum logótipo escuro estiver definido ou logótipos retangulares
            não forem apresentados para a sua conta. Carregue-o com
            `image_rectangular_dark`.
        favicon:
          type: string
          nullable: true
          description: >-
            URL apenas de leitura do favicon. Carregue através de
            `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: >-
        A chave de API da sua aplicação, a partir de Programadores -> Chaves de
        API na Business Console. A chave principal tem acesso total. Uma chave
        nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por
        recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de
        endereços IP e a uma data de validade. 401 significa que a chave está
        incorreta, revogada ou expirada; 403 significa que nenhuma chave foi
        enviada, que a chave não tem acesso a este recurso ou ação, ou que o
        pedido veio de um endereço fora da sua lista de IP; 404 numa rota de
        sessão significa que a sessão está fora dos fluxos ou estados da chave.
        Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs
        como nulos, e uma chave sem permissão de escrita em sessões recebe
        ligações de sessão e tokens como nulos. Consulte
        https://docs.didit.me/console/api-keys.

````

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