> ## 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 Aktivitas Kegagalan Tujuan Webhook

> Daftar peringatan kegagalan tujuan webhook Didit dengan stempel waktu dan jumlah kegagalan, menggunakan akses baca dan paginasi limit/offset.

API aktivitas tujuan webhook Didit mengembalikan alert kegagalan yang tercatat, dengan yang terbaru lebih dulu. Setiap entri berisi `id`, `type` (`failure_alert`), `occurred_at` dan `failure_count`.

Gunakan `limit` dan `offset` untuk melakukan paginasi, lalu ikuti `next` hingga nilainya null. `count` dapat dibatasi atau diperkirakan. Tujuan yang tidak ada mengembalikan `404`.

Alert ini berbeda dari [percobaan pengiriman](https://docs.didit.me/id/management-api/webhook/list-deliveries.md). Lihat juga [aktivitas kegagalan webhook](https://docs.didit.me/id/integration/webhooks.md#kebijakan-coba-lagi) dan [analitik tujuan](https://docs.didit.me/id/management-api/webhook/destination-analytics.md).


## OpenAPI

````yaml id/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/
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/organization/{organization_id}/application/{application_id}/webhook/destinations/{destination_uuid}/activity/:
    get:
      tags:
        - Webhook
      summary: Daftar aktivitas tujuan webhook
      description: >-
        Menampilkan daftar alert kegagalan yang tercatat untuk satu tujuan, dari
        yang terbaru. Membutuhkan read:webhooks. Kredensial aplikasi atau kunci
        API harus milik aplikasi di path; token Bearer anggota harus memiliki
        akses ke aplikasi tersebut. Ini adalah event alert kegagalan, bukan
        percobaan pengiriman individual atau jenis event webhook keluaran. Lihat
        [Webhook](https://docs.didit.me/id/integration/webhooks#kebijakan-coba-lagi).
      operationId: list_activity_webhooks_destinations
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID organisasi.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID aplikasi.
        - name: destination_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID tujuan.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: Jumlah hasil maksimum per halaman.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: Jumlah hasil yang dilewati.
      responses:
        '200':
          description: Daftar aktivitas tujuan webhook.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDestinationActivityList'
        '401':
          description: Kredensial tidak ada, tidak valid, atau sudah kedaluwarsa.
        '403':
          description: >-
            Pemanggil tidak memiliki akses ke aplikasi ini atau izin yang
            diperlukan.
        '404':
          description: Tujuan webhook tidak ditemukan.
        '429':
          $ref: '#/components/responses/RateLimitedRead'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            for item in client.webhooks.destinations.list_activity(
                "11111111-2222-3333-4444-555555555555",
            ):
                print(item)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            for await (const item of
            didit.webhooks.destinations.listActivity("11111111-2222-3333-4444-555555555555"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\niter := client.Webhooks.Destinations.ListActivityAutoPaging(ctx, \"11111111-2222-3333-4444-555555555555\", didit.WebhooksDestinationsListActivityParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            for (var item :
            client.webhooks().destinations().listActivity("11111111-2222-3333-4444-555555555555"))
            {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            foreach
            ($didit->webhooks->destinations->listActivity('11111111-2222-3333-4444-555555555555')
            as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            # and DIDIT_APPLICATION_ID.

            didit = Didit::Client.new


            didit.webhooks.destinations.list_activity("11111111-2222-3333-4444-555555555555").auto_paging_each
            do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            await foreach (var item in await
            client.Webhooks.Destinations.ListActivityAsync("11111111-2222-3333-4444-555555555555"))

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    WebhookDestinationActivityList:
      type: object
      required:
        - count
        - next
        - previous
        - results
      properties:
        count:
          type: integer
          description: >-
            Jumlah hasil, biasanya dibatasi hingga 100; bisa berupa perkiraan.
            Ikuti next, bukan menggunakan count untuk menghentikan paginasi.
        next:
          type: string
          description: URL halaman berikutnya, atau null.
          nullable: true
        previous:
          type: string
          description: URL halaman sebelumnya, atau null.
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/WebhookDestinationActivity'
      example:
        count: 1
        next: null
        previous: null
        results:
          - id: 00000000-0000-4000-8000-000000000003
            type: failure_alert
            occurred_at: '2026-11-11T01:00:00Z'
            failure_count: 3
    WebhookDestinationActivity:
      type: object
      required:
        - id
        - type
        - occurred_at
        - failure_count
      properties:
        id:
          type: string
          description: Pengenal alert kegagalan.
          format: uuid
        type:
          type: string
          description: Jenis aktivitas.
          enum:
            - failure_alert
        occurred_at:
          type: string
          description: Waktu alert kegagalan.
          format: date-time
        failure_count:
          type: integer
          description: Jumlah kegagalan yang dicatat bersama alert ini.
          minimum: 0
    RateLimitBudgetError:
      type: object
      description: >-
        Hanya dikembalikan untuk penolakan anggaran batas laju middleware.
        Kesalahan 429 lainnya, termasuk konflik idempotensi dan batas khusus
        endpoint, tidak menjamin bidang metadata ini.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: Pesan penolakan anggaran yang sudah ada dan mudah dibaca manusia.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: >-
            Referensi dukungan (tidak transparan): RL- diikuti 32 karakter
            heksadesimal UUID huruf kecil.
        limit:
          type: integer
          description: >-
            Anggaran untuk cakupan yang terlampaui; sama dengan
            X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: >-
            Sisa anggaran, dibatasi hingga nol; sama dengan
            X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: Waktu reset jendela dalam detik Unix; sama dengan X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            Durasi jendela tetap dalam detik, bukan sisa waktu tunggu. Patuhi
            Retry-After sebelum mencoba lagi.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
  responses:
    RateLimitedRead:
      description: >-
        Anggaran baca middleware terlampaui. Patuhi Retry-After sebelum mencoba
        lagi.
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              GET request rate limit exceeded. You can make up to 600 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 600
            remaining: 0
            reset: 1794358860
            window_seconds: 60
  headers:
    BudgetRetryAfter:
      description: >-
        Detik untuk menunggu, dibulatkan ke atas ke jendela berikutnya. Tersedia
        pada penolakan anggaran middleware.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: >-
        Cakupan yang anggarannya terlampaui. Tersedia pada penolakan anggaran
        middleware.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        Anggaran untuk cakupan yang terlampaui; sama dengan batas pada body.
        Hadir pada penolakan anggaran middleware.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        Sisa anggaran, dibatasi hingga nol; sama dengan remaining pada body. Ada
        pada penolakan anggaran middleware.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        Waktu reset dalam detik Unix; sama dengan reset di body. Tersedia pada
        penolakan anggaran middleware.
      schema:
        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.
    BearerAuth:
      type: http
      scheme: bearer
      description: Token akses client-credentials milik aplikasi.

````

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