> ## 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 User: Entitas User Vendor

> Perbarui field User vendor Didit yang dapat diubah: nama tampilan, metadata, tag. Field identitas terverifikasi tidak dapat diubah.



Prompt Pembaruan Pengguna
        Salin prompt ke papan klip



      
      

\<pre>

\`Goal: Partial-update a Didit User entity by vendor_data.

Endpoint: PATCH https://verification.didit.me/v3/users/{vendor_data}/
Auth header: x-api-key: <DIDIT_API_KEY>
Content-Type: application/json

Path param:
\- vendor_data (string, REQUIRED) — free-form string, NOT a UUID. URL-encode.

Request body (PARTIAL — only included fields are touched; auto-derived counters and session history are left alone):
\- full_name (string, max 512, nullable)
\- display_name (string, nullable)
\- date_of_birth (string YYYY-MM-DD, nullable)
\- status (enum) — "ACTIVE" | "FLAGGED" | "BLOCKED" (VendorUserStatusChoices). Setting "BLOCKED" auto-adds vendor_data to the system blocklist; flipping away removes it.
\- metadata (object, nullable) — REPLACES existing metadata wholesale; merge client-side if you only want to add keys.
\- approved_emails (object<string, boolean>)
\- approved_phones (object<string, boolean>)
\- issuing_states (object<ISO3, int>)
\- reason (string, optional, max 1000): why the status changed. Recorded as the comment of the STATUS_CHANGED entry in the user's activity (comments[].comment), only when this update actually changes status. Webhooks do not carry it.

curl:
curl -X PATCH 'https://verification.didit.me/v3/users/user-abc-123/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"display_name": "Jane S.", "status": "FLAGGED", "reason": "Address does not match the billing country"}'

Response 200: full updated UserDetailItem (same shape as GET). See /reference/data-models.

Side effects:
\- Writes to the user's comments activity log (actor derived from the API key): a STATUS_CHANGED entry with reason when status changes, and a PROFILE_UPDATED entry when display_name, full_name, date_of_birth or metadata change.
\- last_activity_at bumped to now().
\- Concurrent updates: last-write-wins per field.
\- Re-sending an unchanged body is safe (no extra audit row).

Failure modes:
\- 400 — validation. Examples:
\{ "status": ["Invalid status. Valid options are: ACTIVE, FLAGGED, BLOCKED"] }
\{ "metadata": ["Metadata must be a JSON object."] }
date_of_birth must be YYYY-MM-DD.
\{ "reason": ["Ensure this field has no more than 1000 characters."] }
\- 401 — missing/invalid x-api-key. { "detail": "Authentication credentials were not provided." }
\- 403 — the API key is revoked or is not valid for this application. { "detail": "You do not have permission to perform this action." }
\- 403: a scoped API key without users write. { "detail": "This API key has no write access to people." }
\- 404 — vendor_data not found. { "detail": "Not found." }
\- 429 — rate-limited.

Notes:
\- vendor_data in the URL itself cannot be changed via this endpoint — create new + delete old to rekey.
\- For status-only flips, prefer the dedicated PATCH /v3/users/{vendor_data}/update-status/.
\- Overriding fields populated by a verified session is allowed but flagged in the audit log.

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

\</pre>



      
      

Tempel ke

## IkhtisarMemperbarui kolom yang dapat diubah pada [entitas Pengguna](https://docs.didit.me/id/entities/users/overview.md). Kolom yang berasal dari sesi Verifikasi Pengguna (KYC) yang telah terverifikasi (`full_name`, `date_of_birth`, `portrait_image`, penghitung agregat, `features`) bersifat hanya-baca.## Kapan digunakan- **Perbarui metadata Anda sendiri** — pindahkan pengguna ke tingkat lain, ubah tag, buat catatan internal.
- **Ubah nama** — tetapkan `display_name` yang lebih baik untuk tampilan konsol internal.
- **Timpa data terverifikasi** (dengan hati-hati) — penimpaan manual diizinkan tetapi dicatat di log audit.## Catatan- `vendor_data` di URL tidak dapat diubah melalui endpoint ini. Buat pengguna baru dan hapus yang lama jika Anda perlu mengganti kunci.
- Mengirimkan webhook `user.data.updated` dengan array `changed_fields` agar konsumen dapat menyinkronkan data secara efisien.
- Perubahan `status` di sini berfungsi seperti [Perbarui Status Pengguna](https://docs.didit.me/id/management-api/users/update-status.md). Perubahan ini dicatat dalam aktivitas pengguna tersebut, dengan `reason` opsional (hingga 1000 karakter) sebagai komentarnya, dan `BLOCKED` menambahkan `vendor_data` ke daftar blokir sistem. Webhook `user.status.updated` tidak memuat `reason`.
- Jika Anda melakukan PATCH pada kolom yang saat ini dikelola oleh sesi terverifikasi, penimpaan akan diterima tetapi ditandai di [log audit](https://docs.didit.me/id/console/audit-logs.md).## IzinRahasia utama dan [kunci API](https://docs.didit.me/id/console/api-keys.md) dengan akses penuh selalu dapat memanggil endpoint ini. Kunci dengan akses kustom memerlukan izin tulis untuk **Orang** (`users`). Kunci yang dibatasi hanya untuk alur kerja tertentu atau sesi yang disetujui tidak dapat mengakses endpoint ini.[Peran dan izin](https://docs.didit.me/id/console/roles-permissions.md) di Konsol menentukan apa yang dapat dilakukan anggota tim di Konsol. Keduanya tidak dievaluasi untuk permintaan melalui kunci API.## Terkait- [Operasi pengguna](https://docs.didit.me/id/entities/users/operations.md)
- [Model data](https://docs.didit.me/id/entities/users/data-model.md)
- [Perbarui status](https://docs.didit.me/id/management-api/users/update-status.md)


## OpenAPI

````yaml id/openapi-25.json PATCH /v3/users/{vendor_data}/
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/users/{vendor_data}/:
    patch:
      tags:
        - Users
      summary: Perbarui pengguna
      description: >-
        Pembaruan parsial untuk pengguna: `display_name`, `full_name`,
        `date_of_birth`, `status`, `metadata`,
        `approved_emails`/`approved_phones`/`issuing_states`. `metadata`
        menggantikan sepenuhnya. Mengubah `status` di sini berfungsi seperti
        [Perbarui Status
        Pengguna](#patch-/v3/users/-vendor_data-/update-status/): ini mencatat
        aktivitas `STATUS_CHANGED` dengan `reason` opsional, dan `BLOCKED`
        menambahkan `vendor_data` ke daftar blokir sistem (mengubahnya dari
        `BLOCKED` akan menghapus entri tersebut). Perubahan pada `display_name`,
        `full_name`, `date_of_birth`, atau `metadata` dicatat sebagai aktivitas
        `PROFILE_UPDATED`.
      operationId: update_user
      parameters:
        - name: vendor_data
          in: path
          required: true
          schema:
            type: string
          description: >-
            Pengidentifikasi unik Anda untuk pengguna (string bentuk bebas,
            BUKAN UUID).
          example: user-abc-123
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                full_name:
                  type: string
                  nullable: true
                  maxLength: 512
                  description: Nama lengkap pengguna
                display_name:
                  type: string
                  nullable: true
                  description: Nama tampilan kustom untuk pengguna ini
                date_of_birth:
                  type: string
                  format: date
                  nullable: true
                  description: Tanggal lahir dalam format YYYY-MM-DD
                status:
                  type: string
                  enum:
                    - ACTIVE
                    - FLAGGED
                    - BLOCKED
                  description: >-
                    Status siklus hidup pengguna. Perubahan dicatat sebagai
                    aktivitas `STATUS_CHANGED`, dan `BLOCKED` menambahkan
                    `vendor_data` ke daftar blokir sistem (berpindah dari
                    `BLOCKED` akan menghapus entri tersebut).
                metadata:
                  type: object
                  nullable: true
                  description: >-
                    Objek JSON arbitrer yang Anda lampirkan ke pengguna.
                    **Menggantikan sepenuhnya** metadata yang ada saat pembaruan
                    — gabungkan di sisi klien jika Anda hanya ingin menambahkan
                    kunci.
                approved_emails:
                  type: array
                  items:
                    type: string
                  description: >-
                    Alamat email terverifikasi untuk pengguna ini, contoh
                    `["john@example.com"]`. Menggantikan daftar yang tersimpan
                    sepenuhnya.
                approved_phones:
                  type: array
                  items:
                    type: string
                  description: >-
                    Nomor telepon terverifikasi untuk pengguna ini. Menggantikan
                    daftar yang tersimpan sepenuhnya.
                issuing_states:
                  type: array
                  items:
                    type: string
                  description: >-
                    Negara penerbit (ISO 3166-1 alpha-3), mis. `["USA"]`.
                    Menggantikan sepenuhnya daftar yang tersimpan.
                reason:
                  type: string
                  nullable: true
                  maxLength: 1000
                  description: >-
                    Alasan mengapa status berubah. Dicatat pada entri perubahan
                    status aktivitas pengguna (`comments[].comment`, dan
                    **Activity** di Business Console), hanya jika status
                    benar-benar berubah. Webhook tidak menyertakannya.
            examples:
              Rename:
                summary: Atur nama tampilan
                value:
                  display_name: Jane S.
              Override status:
                summary: Tandai pengguna untuk ditinjau
                value:
                  status: FLAGGED
              Add metadata:
                summary: Ganti JSON metadata
                value:
                  metadata:
                    tier: premium
                    risk_level: low
              Fix extracted DOB:
                summary: Koreksi kolom profil yang diekstrak
                value:
                  full_name: Jane Elizabeth Smith
                  date_of_birth: '1985-11-22'
              Flag with reason:
                summary: Tandai pengguna dan catat alasannya
                value:
                  status: FLAGGED
                  reason: Address does not match the billing country
      responses:
        '200':
          description: >-
            Pengguna diperbarui. Rekor pengguna lengkap yang diperbarui (bentuk
            yang sama seperti Dapatkan Pengguna) dikembalikan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserDetailItem'
              examples:
                Updated:
                  value:
                    didit_internal_id: f4e5e1f2-94a9-4f86-8c16-2b7d9b4db418
                    vendor_data: user-abc-123
                    display_name: Jane S.
                    full_name: Jane Elizabeth Smith
                    date_of_birth: '1985-11-22'
                    effective_name: Jane S.
                    status: FLAGGED
                    metadata:
                      tier: premium
                    portrait_image_url: https://<media-host>/...
                    session_count: 3
                    approved_count: 2
                    declined_count: 0
                    in_review_count: 1
                    issuing_states:
                      - USA
                    approved_emails:
                      - john@example.com
                    approved_phones:
                      - '+14155551234'
                    features:
                      ID_VERIFICATION: Approved
                      LIVENESS: Approved
                      FACE_MATCH: Approved
                      AML: Approved
                    features_list:
                      - feature: ID_VERIFICATION
                        status: Approved
                      - feature: LIVENESS
                        status: Approved
                      - feature: FACE_MATCH
                        status: Approved
                      - feature: AML
                        status: Approved
                    last_session_at: '2025-06-15T10:30:00Z'
                    last_activity_at: '2025-06-15T10:30:00Z'
                    first_session_at: '2025-06-01T08:00:00Z'
                    tags:
                      - uuid: 9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d
                        tag:
                          uuid: e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b
                          name: VIP
                          color: '#2567FF'
                          description: null
                          source: custom
                          created_at: '2025-05-01T09:00:00Z'
                          updated_at: '2025-05-01T09:00:00Z'
                        added_by_email: analyst@acme.com
                        added_by_name: Jane Analyst
                        created_at: '2025-06-02T11:00:00Z'
                    comments: []
                    created_at: '2025-06-01T08:00:00Z'
                    updated_at: '2025-06-15T10:30:00Z'
        '400':
          description: >-
            Body tidak valid — biasanya `status` yang tidak dikenal atau
            `date_of_birth` bukan dalam format `YYYY-MM-DD`.
          content:
            application/json:
              examples:
                Bad status:
                  value:
                    status:
                      - '"INVALID" is not a valid choice.'
                Bad date_of_birth:
                  value:
                    date_of_birth:
                      - >-
                        Date has wrong format. Use one of these formats instead:
                        YYYY-MM-DD.
                Reason too long:
                  value:
                    reason:
                      - Ensure this field has no more than 1000 characters.
        '401':
          description: >-
            Tidak ada kredensial yang diberikan. Permintaan ke jalur
            `/v3/users/*` tanpa header `x-api-key` (atau token `Authorization:
            Bearer`) akan ditolak oleh middleware autentikasi sebelum mencapai
            API.
          content:
            application/json:
              examples:
                Missing credentials:
                  value:
                    detail: >-
                      You must be authenticated with a valid access token to
                      access this endpoint.
        '403':
          description: >-
            Kunci tidak dapat memperbarui pengguna untuk aplikasi ini. Kunci
            yang hilang mengembalikan `403`; kunci yang salah, dicabut, atau
            kedaluwarsa mengembalikan `401`.
          content:
            application/json:
              examples:
                Forbidden:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Tidak ada pengguna dengan `vendor_data` yang diberikan untuk
            aplikasi ini.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Not found.
        '429':
          description: >-
            Batas laju terlampaui; kurangi laju permintaan dan coba lagi setelah
            interval yang ditunjukkan dalam `Retry-After`.
          content:
            application/json:
              examples:
                Rate limited:
                  value:
                    detail: Request was throttled. Expected available in 30 seconds.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X PATCH 'https://verification.didit.me/v3/users/user-abc-123/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"display_name": "Jane S.", "status": "FLAGGED"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.users.update(
                "user-abc-123",
                display_name="Jane S.",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

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

            const result = await didit.users.update("user-abc-123", {
              display_name: "Jane S.",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Users.Update(ctx, \"user-abc-123\", didit.UsersUpdateParams{\n\tDisplayName: didit.String(\"Jane S.\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.UsersUpdateParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result = client.users().update("user-abc-123",
            UsersUpdateParams.builder()
                    .displayName("Jane S.")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

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

            $result = $didit->users->update('user-abc-123', [
                'display_name' => 'Jane S.',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.users.update(
              "user-abc-123",
              display_name: "Jane S."
            )
            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.Users.UpdateAsync("user-abc-123", new
            UsersUpdateParams

            {
                DisplayName = "Jane S.",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    UserDetailItem:
      type: object
      description: >-
        Detail pengguna lengkap. Memperluas UserListItem dengan metadata,
        komentar, dan updated_at.
      allOf:
        - $ref: '#/components/schemas/UserListItem'
        - type: object
          properties:
            metadata:
              type: object
              description: >-
                JSON metadata kustom yang Anda lampirkan ke pengguna ini.
                Default adalah `{}`.
            tags:
              type: array
              description: >-
                Penetapan tag. CATATAN: pada respons detail, setiap entri berupa
                objek *tautan* tag (`{uuid, tag: {...}, added_by_email,
                added_by_name, created_at}`), berbeda dengan format datar
                `{uuid, name, color}` yang digunakan pada respons daftar.
              items:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: UUID penetapan tag (bukan tag itu sendiri).
                  tag:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                      name:
                        type: string
                      color:
                        type: string
                      description:
                        type: string
                        nullable: true
                      source:
                        type: string
                        enum:
                          - didit
                          - custom
                      created_at:
                        type: string
                        format: date-time
                      updated_at:
                        type: string
                        format: date-time
                  added_by_email:
                    type: string
                    nullable: true
                  added_by_name:
                    type: string
                    nullable: true
                  created_at:
                    type: string
                    format: date-time
            comments:
              type: array
              items:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                  comment_type:
                    type: string
                    enum:
                      - COMMENT
                      - STATUS_CHANGED
                      - METADATA_UPDATED
                      - TAG_ADDED
                      - TAG_REMOVED
                      - PROFILE_UPDATED
                  comment:
                    type: string
                    nullable: true
                  actor_email:
                    type: string
                    nullable: true
                  actor_name:
                    type: string
                    nullable: true
                  previous_status:
                    type: string
                    nullable: true
                    enum:
                      - ACTIVE
                      - FLAGGED
                      - BLOCKED
                      - null
                  new_status:
                    type: string
                    nullable: true
                    enum:
                      - ACTIVE
                      - FLAGGED
                      - BLOCKED
                      - null
                  previous_value:
                    type: object
                    nullable: true
                    description: Nilai kolom sebelumnya untuk entri PROFILE_UPDATED.
                  new_value:
                    type: object
                    nullable: true
                    description: Nilai kolom baru untuk entri PROFILE_UPDATED.
                  changed_fields:
                    type: array
                    items:
                      type: string
                    description: Nama kolom yang diubah oleh entri PROFILE_UPDATED.
                  metadata:
                    type: object
                    nullable: true
                  mentioned_emails:
                    type: array
                    items:
                      type: string
                  created_at:
                    type: string
                    format: date-time
              description: >-
                Log aktivitas dan komentar untuk pengguna ini (perubahan status,
                pengeditan profil, catatan manual).
            updated_at:
              type: string
              format: date-time
    UserListItem:
      type: object
      description: Pengguna yang terverifikasi.
      properties:
        didit_internal_id:
          type: string
          format: uuid
          description: UUID internal yang stabil dari Didit untuk pengguna ini.
        vendor_data:
          type: string
          nullable: true
          description: >-
            Pengidentifikasi unik Anda untuk pengguna ini (diteruskan saat
            membuat sesi). Nilai ini dapat berupa null jika tidak ada
            pengidentifikasi vendor yang diberikan.
        display_name:
          type: string
          nullable: true
          description: Nama tampilan kustom yang Anda tetapkan
        full_name:
          type: string
          nullable: true
          description: Nama lengkap yang diekstrak dari dokumen yang diverifikasi
        date_of_birth:
          type: string
          format: date
          nullable: true
        effective_name:
          type: string
          nullable: true
          description: >-
            Nama terbaik yang tersedia: display_name jika disetel, selain itu
            full_name
        status:
          type: string
          enum:
            - ACTIVE
            - FLAGGED
            - BLOCKED
          description: >-
            Status siklus hidup rekaman pengguna (BUKAN status sesi). `ACTIVE`
            adalah default, `FLAGGED` menandai pengguna untuk perhatian manual,
            `BLOCKED` mencegah sesi baru untuk `vendor_data` ini.
        portrait_image_url:
          type: string
          nullable: true
          description: >-
            URL presigned untuk foto potret pengguna (kedaluwarsa setelah
            beberapa jam)
        session_count:
          type: integer
          description: Jumlah total sesi verifikasi untuk pengguna ini
        approved_count:
          type: integer
          description: Jumlah sesi yang disetujui
        declined_count:
          type: integer
          description: Jumlah sesi yang ditolak
        in_review_count:
          type: integer
          description: Jumlah sesi dalam peninjauan
        issuing_states:
          type: array
          items:
            type: string
          description: >-
            Kode ISO 3166-1 alpha-3 dari negara penerbit yang terlihat pada
            dokumen ID pengguna yang disetujui ini, misalnya `["USA", "ESP"]`.
            Berupa array kosong jika tidak ada.
        approved_emails:
          type: array
          items:
            type: string
          description: >-
            Alamat email terverifikasi yang dikumpulkan dari sesi pengguna ini
            yang disetujui, contoh `["john@example.com"]`.
        approved_phones:
          type: array
          items:
            type: string
          description: >-
            Nomor telepon terverifikasi yang dikumpulkan dari sesi pengguna ini
            yang disetujui, contoh `["+14155551234"]`.
        features:
          type: object
          description: >-
            Status per-fitur agregat di semua sesi pengguna ini. Kunci yang
            memungkinkan: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`,
            `POA`, `QUESTIONNAIRE`, `EMAIL_VERIFICATION`, `PHONE`, `AML`,
            `IP_ANALYSIS`, `AGE_ESTIMATION`, `DATABASE_VALIDATION`. Nilai yang
            memungkinkan: `Approved`, `Declined`, `In Review`, `Not Finished`,
            `Resub Requested`.
        features_list:
          type: array
          items:
            type: object
            properties:
              feature:
                type: string
              status:
                type: string
          description: >-
            Data yang sama dengan `features`, sebagai array berurutan dari objek
            `{feature, status}`.
        last_session_at:
          type: string
          format: date-time
          nullable: true
          description: Cap waktu sesi terbaru
        first_session_at:
          type: string
          format: date-time
          nullable: true
          description: Cap waktu sesi pertama
        last_activity_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Cap waktu aktivitas terbaru pada pengguna ini (sesi, transaksi,
            perubahan status, pengeditan data, dll.).
        tags:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              color:
                type: string
          description: Tag yang ditetapkan untuk pengguna ini
        created_at:
          type: string
          format: date-time
  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.