> ## 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 Update Branding White Label

> Perbarui branding White Label lewat Management API Didit: ubah warna, font, radius border, unggah logo, dan atur opsi UI alur verifikasi.



Prompt Pembaruan Branding
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke

## IkhtisarMemperbarui sebagian branding White Label untuk aplikasi yang diidentifikasi dari kunci API Anda. Kirim `application/json` untuk mengubah warna, font, radius sudut, dan opsi UI, atau `multipart/form-data` untuk mengunggah logo. Hanya kolom yang Anda sertakan yang diubah. Kolom lainnya tidak diubah.## Kapan menggunakannya- **Terapkan tema pada alur**: atur warna merek, font, dan radius sudut Anda.
- **Unggah logo**: atur logo persegi, logo persegi panjang beserta versi mode gelapnya, dan favicon.
- **Sesuaikan pengalaman**: atur nama aplikasi publik, URL kebijakan privasi, serta sakelar seperti melewati layar selamat datang atau menyembunyikan bilah progres.## Mengunggah logoKirim logo sebagai `multipart/form-data`:- `image_square`: rasio aspek 1:1.
- `image_rectangular`: rasio aspek 2:1.
- `image_rectangular_dark`: rasio aspek 2:1. Logo persegi panjang untuk mode gelap, ditampilkan di latar belakang gelap.
- `image_favicon`: maksimum **500 KB**.`image_square`, `image_rectangular` dan `image_rectangular_dark` harus berupa gambar PNG, JPG, atau WebP, dengan sisi terpanjang minimal 512 px dan ukuran maksimum **1 MB**.
File SVG ditolak.
Respons mengembalikan URL `logo_square`, `logo_rectangular`, `logo_rectangular_dark`, dan `favicon` yang dihasilkan.Untuk menghapus logo, kirim flag `delete_logo_square`, `delete_logo_rectangular`, `delete_logo_rectangular_dark`, atau `delete_favicon` yang sesuai dengan nilai `true`.
Setelah Anda menghapus logo mode gelap, `logo_rectangular_dark` bernilai `null`.
Jika satu permintaan mengunggah logo dan juga mengirim flag hapusnya, unggahan akan diprioritaskan.Unggahan yang ditolak mengembalikan `400` beserta nama kolom dan alasannya, misalnya:- `{"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"]}`## Catatan- Aplikasi diidentifikasi dari kunci API. Tidak ada parameter path.
- Warna hex menerima `#RRGGBB` atau `#RRGGBBAA`. `font_weight` harus berupa ketebalan yang tersedia untuk `font_family` yang dipilih.
- **Domain kustom dan email White Label tidak dapat dikonfigurasi di sini.** Kelola keduanya di [Business Console](https://docs.didit.me/id/console/white-label.md).## IzinKunci API harus memiliki izin untuk memperbarui kustomisasi aplikasi.## Terkait- [Dapatkan branding](https://docs.didit.me/id/management-api/customization/get.md)
- [White Label di Console](https://docs.didit.me/id/console/white-label.md)


## OpenAPI

````yaml id/openapi-25.json PATCH /v3/customization/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/customization/:
    patch:
      tags:
        - Customization
      summary: Perbarui kustomisasi branding
      description: >-
        Pembaruan parsial untuk branding White Label aplikasi. Kirim
        `application/json` untuk mengubah warna, font, radius, dan opsi UI, atau
        `multipart/form-data` untuk mengunggah gambar logo. Hanya kolom yang
        Anda sertakan yang akan diubah. Domain kustom dan email White Label
        tidak dapat diatur melalui endpoint ini — gunakan Business Console untuk
        pengaturan tersebut.
      operationId: update_customization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BrandingCustomizationUpdate'
            examples:
              Update colors and font:
                summary: Ubah font dan warna branding
                value:
                  color_primary: '#123456'
                  color_button_1: '#2567FF'
                  font_family: AR One Sans
                  border_radius_buttons: 16
              Update UI options:
                summary: Ubah nama publik dan opsi alur
                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: Hapus logo persegi panjang saat ini
                value:
                  delete_logo_rectangular: true
              Remove the dark-mode logo:
                summary: Hapus logo mode gelap saat ini
                value:
                  delete_logo_rectangular_dark: true
          multipart/form-data:
            schema:
              type: object
              description: >-
                Gunakan multipart/form-data hanya untuk mengunggah gambar logo.
                Kolom branding di atas juga dapat dikirim sebagai kolom form
                dalam permintaan yang sama.
              properties:
                image_square:
                  type: string
                  format: binary
                  description: >-
                    Logo persegi (rasio aspek 1:1). PNG, JPG, atau WebP,
                    setidaknya 512 px pada sisi panjang, maksimal **1 MB**.
                image_rectangular:
                  type: string
                  format: binary
                  description: >-
                    Logo persegi panjang (rasio aspek 2:1). PNG, JPG, atau WebP,
                    minimal 512 px pada sisi panjang, maksimal **1 MB**.
                image_rectangular_dark:
                  type: string
                  format: binary
                  description: >-
                    Logo persegi panjang untuk mode gelap (rasio aspek 2:1),
                    ditampilkan pada latar belakang gelap. PNG, JPG, atau WebP,
                    minimal 512 px pada sisi panjang, maksimal **1 MB**.
                    Dikembalikan sebagai `logo_rectangular_dark`.
                image_favicon:
                  type: string
                  format: binary
                  description: Gambar favicon. Maks **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 diperbarui. Objek branding LENGKAP akan dikembalikan (semua
            kolom, bukan hanya yang Anda ubah).
          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: >-
            Body tidak valid. Sebagai contoh: warna heksadesimal yang salah
            format, keluarga font atau ketebalan font yang tidak dikenal, kolom
            khusus Business Console (`domain`, `from_email`, `verify_domain`,
            `force_remove_domain`, `verify_email_domain`,
            `force_remove_email_domain`, dan pasangan hanya-baca miliknya), atau
            unggahan logo yang bukan gambar PNG, JPG, atau WebP, berukuran di
            bawah 512 px pada sisi panjangnya, lebih dari 1 MB, atau memiliki
            rasio aspek yang salah. Juga dikembalikan saat menyetel
            `disable_login_with_didit` ke `false` saat domain kustom
            dikonfigurasi.
          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: Bukan gambar PNG, JPG, atau WebP (misalnya SVG)
                  value:
                    image_rectangular_dark:
                      - Upload a PNG, JPG or WebP image.
                Logo too small:
                  summary: Di bawah 512 px pada sisi panjang
                  value:
                    image_rectangular:
                      - >-
                        Image must be at least 512 px on its long side. Got
                        400x200 image dimensions
                Logo too large:
                  summary: Lebih dari 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: >-
            Kunci API tidak ada, format salah, kedaluwarsa, atau memiliki
            cakupan untuk aplikasi yang berbeda. Kunci yang tidak ada
            mengembalikan `403`; kunci yang salah, dicabut, atau kedaluwarsa
            mengembalikan `401`.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Batas laju terlampaui. Coba lagi dengan backoff eksponensial.
      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: >-
        Body pembaruan branding parsial. Berikan hanya kolom yang ingin Anda
        ubah. Warna heksadesimal menerima `#RRGGBB` atau `#RRGGBBAA`. Domain
        kustom dan email White Label tidak diterima di sini.
      properties:
        color_primary:
          type: string
          description: Warna header / teks utama.
        color_secondary:
          type: string
          description: Warna teks paragraf / sekunder.
        color_background:
          type: string
          description: Warna latar belakang halaman.
        color_panel:
          type: string
          description: Warna panel / aksen.
        color_panel_10:
          type: string
          description: Warna panel pada opasitas 10%.
        color_on_panel_1:
          type: string
          description: Warna teks bantuan pada panel.
        color_on_panel_2:
          type: string
          description: Warna pil / lencana pada panel.
        color_on_background:
          type: string
          description: Warna teks pada latar belakang.
        color_button_1:
          type: string
          description: Warna tombol utama.
        color_button_2:
          type: string
          description: Warna tombol sekunder.
        color_button_text_1:
          type: string
          description: Warna teks tombol utama.
        color_button_text_2:
          type: string
          description: Warna teks tombol sekunder.
        color_pill_text:
          type: string
          description: Warna teks untuk badge berbentuk pil, input, dan pemilih.
        border_radius_panel:
          type: integer
          minimum: 0
          description: Radius sudut panel dalam piksel.
        border_radius_buttons:
          type: integer
          minimum: 0
          description: Radius sudut tombol dalam piksel.
        font_family:
          type: string
          description: Nama keluarga font Google (misalnya `Inter`, `AR One Sans`).
        font_weight:
          type: string
          description: >-
            Ketebalan font yang tersedia untuk famili yang dipilih (misalnya
            `regular`, `500`, `700`).
        app_public_name:
          type: string
          nullable: true
          description: Nama publik yang ditampilkan dalam alur verifikasi.
        privacy_policy_url:
          type: string
          nullable: true
          description: URL kebijakan privasi yang ditampilkan kepada pengguna akhir.
        skip_welcome_screen:
          type: boolean
          description: Lewati layar selamat datang awal.
        disable_login_with_didit:
          type: boolean
          description: >-
            Lanjutkan sebagai tamu daripada menampilkan layar masuk dengan
            Didit. Tidak dapat diubah kembali ke `false` saat domain kustom
            dikonfigurasi (400).
        hide_progress_bar:
          type: boolean
          description: Sembunyikan bilah kemajuan selama alur berlangsung.
        callback_seconds:
          type: integer
          minimum: 0
          description: Jeda (detik) sebelum mengalihkan ke URL callback.
        delete_logo_square:
          type: boolean
          description: Jika `true`, menghapus logo persegi saat ini.
        delete_logo_rectangular:
          type: boolean
          description: Jika `true`, menghapus logo persegi panjang saat ini.
        delete_logo_rectangular_dark:
          type: boolean
          description: >-
            Jika `true`, menghapus logo mode gelap saat ini, dan
            `logo_rectangular_dark` kemudian bernilai `null`. Jika permintaan
            multipart yang sama juga mengunggah `image_rectangular_dark`,
            unggahan tersebut yang diprioritaskan.
        delete_favicon:
          type: boolean
          description: Jika `true`, menghapus favicon saat ini.
    BrandingCustomization:
      type: object
      description: >-
        Branding White Label untuk aplikasi: warna, font, radius, URL logo, dan
        opsi UI/UX. URL logo hanya dapat dibaca (atur dengan mengunggah gambar).
        Domain kustom dan email White Label tidak disertakan.
      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: >-
            Hanya baca. URL stylesheet Google Fonts hasil resolusi untuk
            keluarga font yang dipilih.
        logo_square:
          type: string
          nullable: true
          description: URL logo persegi bersifat hanya-baca. Unggah melalui `image_square`.
        logo_rectangular:
          type: string
          nullable: true
          description: >-
            URL logo persegi panjang bersifat hanya-baca. Unggah melalui
            `image_rectangular`.
        logo_rectangular_dark:
          type: string
          format: uri
          nullable: true
          description: >-
            Hanya-baca. URL bertanda tangan sementara dari logo persegi panjang
            untuk mode gelap, ditampilkan pada latar belakang gelap. Bernilai
            `null` jika tidak ada logo gelap yang diatur atau logo persegi
            panjang tidak ditampilkan untuk akun Anda. Unggah dengan
            `image_rectangular_dark`.
        favicon:
          type: string
          nullable: true
          description: URL favicon bersifat hanya-baca. Unggah melalui `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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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