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

> 단일 webhook 대상으로 보낸 모든 전송 시도를 최신순으로 페이지 단위 조회합니다. Didit에서 HTTP 상태, 응답 시간, 이벤트 유형을 확인하세요.



웹훅 대상 전송 내역 조회 API 프롬프트
        프롬프트를 클립보드에 복사



      
      

\<pre>

\`List the delivery attempts made to one Didit webhook destination through the Management API.

Endpoint:
GET https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/deliveries/

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs webhooks: read and decisions: read. A key limited to some workflows or to approved sessions cannot use this endpoint.

Goal:
\- Find the webhooks my endpoint failed to accept, so I can fix the endpoint and resend them.

Path parameter:
\- destination_uuid: the destination uuid from GET /v3/webhook/destinations/.

Query parameters (optional):
\- limit (default 50) and offset for pagination.
\- date_from, date_to: UTC days as YYYY-MM-DD, both inclusive.

Behavior:
\- Newest first. Every attempt is its own entry: the first send of an event, each automatic retry and each resend.
\- Response: { count, next, previous, results }. count is exact up to 100 and reads 100 above that, so follow next until it is null instead of computing pages from count.
\- Entries do not carry the payload. Fetch one with GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/ to read the headers and body.

Example call:
curl -X GET "https://verification.didit.me/v3/webhook/destinations/{destination_uuid}/deliveries/?limit=50&date_from=2026-05-01" \
-H "x-api-key: YOUR_API_KEY"

What to read from each result:
\- uuid: the delivery id, for the detail and resend calls.
\- response_status: what my endpoint answered. null means the attempt has not been made yet; 504 is a timeout, 503 a connection failure, 400 a URL Didit refused to call, 404 any other request error; 400 or above is a failure.
\- Delivery records are available for about 30 days.
\- response_time_ms, created_at, webhook_type, status, request_url.
\- session_id: the verification session the event is about, or null for business, user, transaction and other events.

Failure modes:
\- 400: invalid date_from or date_to, date_to earlier than date_from, or limit or offset above 1000000.
\- 401: { "detail": "This API key has expired." }
\- 403: { "detail": "You do not have permission to perform this action." }, { "detail": "This API key has no read access to webhooks." }, { "detail": "This API key has no read access to decisions." }, or the limited-key message.
\- 404: { "detail": "Webhook destination not found." }
\- 429: more than 600 GET requests per minute with this key; wait for Retry-After.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

붙여넣을 곳

전송 내역은 Didit이 이 대상으로 webhook을 보내려고 시도한 기록입니다. 자동 재시도는 [재시도 정책](https://docs.didit.me/ko/integration/webhooks.md#재시도-정책)을 따르며, 각 재시도는 별도의 항목으로 표시됩니다. 엔드포인트를 수정한 후 전송을 다시 보내려면 [웹훅 대상 전송 재전송](https://docs.didit.me/ko/management-api/webhook/resend-delivery.md)을 호출하십시오. 기간별 합계가 필요하면 [웹훅 대상 분석 조회](https://docs.didit.me/ko/management-api/webhook/destination-analytics.md)를 사용합니다.


## OpenAPI

````yaml ko/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 신분증 인증 API입니다. x-api-key 헤더로 인증합니다.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/webhook/destinations/{destination_uuid}/deliveries/:
    get:
      tags:
        - Webhook
      summary: webhook 대상 전송 내역 목록 조회
      description: >-
        하나의 webhook 대상으로 전송된 모든 시도를 최신순으로 페이징합니다. 각 이벤트의 첫 번째 전송, 각 자동
        [재시도](https://docs.didit.me/ko/integration/webhooks#재시도-정책) 및 각 재전송은 개별
        항목으로 구분됩니다. 항목에는 HTTP 상태 및 응답 시간이 포함되지만 payload는 포함되지 않으므로, 헤더와 본문을
        확인하려면 단일 전송 건을 조회하십시오. `count`는 100까지 정확하며 그 이상은 100으로 표시되므로 `next`가
        `null`이 될 때까지 따라가십시오. 전송 기록은 약 30일 동안 사용할 수 있습니다. 범위가 지정된 API 키에는
        `webhooks: read` 및 `decisions: read` 권한이 필요합니다. 일부 워크플로 또는 승인된 세션으로 제한된
        키는 이 endpoint를 사용할 수 없습니다.
      operationId: list_webhook_destination_deliveries
      parameters:
        - name: destination_uuid
          in: path
          required: true
          description: webhook 대상의 UUID입니다(`GET /v3/webhook/destinations/`에서 반환된 `uuid`).
          schema:
            type: string
            format: uuid
          example: 11111111-2222-3333-4444-555555555555
        - name: limit
          in: query
          required: false
          description: >-
            페이지당 최대 전송 건수입니다. 기본값은 50입니다. 양의 정수가 아닌 값은 50으로 대체되며, 1000000을 초과하는
            값은 `400`을 반환합니다.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 50
        - name: offset
          in: query
          required: false
          description: 건너뛸 전송 수입니다. 기본값은 0입니다. 응답의 `next` 및 `previous` URL을 따르는 것을 권장합니다.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 0
        - name: date_from
          in: query
          required: false
          description: >-
            포함할 첫 번째 UTC 날짜로, `YYYY-MM-DD` 형식(포함)입니다. 사용 가능한 가장 오래된 전송부터 시작하려면
            생략하십시오. `dateFrom`도 별칭으로 허용됩니다.
          schema:
            type: string
            format: date
          example: '2026-10-01'
        - name: date_to
          in: query
          required: false
          description: >-
            포함할 마지막 UTC 일자(`YYYY-MM-DD`, 해당 일자 포함)입니다. `date_from`보다 이전일 수 없습니다.
            `dateTo`도 별칭으로 허용됩니다.
          schema:
            type: string
            format: date
          example: '2026-10-16'
      responses:
        '200':
          description: 최신순으로 정렬된 전송 페이지 하나입니다.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    minimum: 0
                    description: >-
                      일치하는 전송 건수이며 100개까지는 정확하고 그 이상은 100개로 제한됩니다. 추가 페이지가 있는지
                      확인하려면 `next`를 사용하십시오.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: 다음 페이지의 절대 URL이며, 마지막 페이지에서는 `null`입니다.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: 이전 페이지의 절대 URL이며, 첫 번째 페이지에서는 `null`입니다.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookDestinationDelivery'
              examples:
                Failed delivery, its retry and a queued event:
                  value:
                    count: 3
                    next: null
                    previous: null
                    results:
                      - uuid: 66666666-7777-8888-9999-000000000003
                        session_id: null
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: null
                        response_time_ms: null
                        status: APPROVED
                        webhook_type: transaction.created
                        created_at: '2026-10-15T09:23:02.871190Z'
                      - uuid: 66666666-7777-8888-9999-000000000002
                        session_id: 22222222-3333-4444-5555-666666666666
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: 200
                        response_time_ms: 143
                        status: In Progress
                        webhook_type: status.updated
                        created_at: '2026-10-15T09:22:19.104233Z'
                      - uuid: 66666666-7777-8888-9999-000000000001
                        session_id: 22222222-3333-4444-5555-666666666666
                        request_url: https://yourapp.com/webhooks/didit
                        response_status: 503
                        response_time_ms: 412
                        status: In Progress
                        webhook_type: status.updated
                        created_at: '2026-10-15T09:21:18.412345Z'
        '400':
          description: >-
            `date_from` 또는 `date_to`가 `YYYY-MM-DD` 형식의 날짜가 아니거나, `date_to`가
            `date_from`보다 이전이거나, `limit` 또는 `offset`이 1000000을 초과합니다(해당 오류는 메시지의
            JSON 배열로 반환됩니다).
          content:
            application/json:
              examples:
                Malformed date:
                  value:
                    date_from:
                      - >-
                        Date has wrong format. Use one of these formats instead:
                        YYYY-MM-DD.
                Reversed range:
                  value:
                    date_to:
                      - date_to must be greater than or equal to date_from.
                Limit too large:
                  value:
                    - limit must not exceed 1000000.
        '401':
          description: >-
            API 키가 만료되었습니다. 생성 시 설정된 만료일이 지났습니다. 잘못되었거나 취소된 키도 `401`을 수신하며, 누락된
            키는 `403`을 수신합니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 사람이 읽기 쉬운 오류 메시지입니다.
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            요청이 허용되지 않습니다. `x-api-key`가 누락되었거나 유효하지 않거나 폐기된 경우 `You do not have
            permission to perform this action.`을 수신합니다. 이 endpoint에 필요한 접근 권한이
            없는 범위 지정 키는 누락된 권한을 명시하는 메시지를 수신하며, IP 허용 목록 외부에서 사용된 키는 `This API
            key can't be used from this IP address.`를 수신합니다. 일부 워크플로나 승인된 세션으로
            제한된 키는 `This API key only reaches sessions inside its workflow or
            status limits, so it can't use this endpoint.`를 수신합니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 사람이 읽기 쉬운 오류 메시지입니다.
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without webhooks read:
                  value:
                    detail: This API key has no read access to webhooks.
                Scoped key without decisions read:
                  value:
                    detail: This API key has no read access to decisions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the IP allowlist:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: 애플리케이션에 이 UUID를 가진 대상이 존재하지 않거나 삭제되었습니다.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 사람이 읽기 쉬운 오류 메시지입니다.
              examples:
                Destination not found:
                  value:
                    detail: Webhook destination not found.
        '429':
          description: >-
            속도 제한 초과: 이 API 키의 현재 1분 시간 창에서 600개를 초과하는 GET 요청이 발생했습니다. 재시도하기 전에
            `Retry-After`초 동안 대기하세요.
          headers:
            Retry-After:
              description: 재시도하기 전 대기할 시간(초)입니다.
              schema:
                type: integer
                minimum: 1
                example: 30
            X-RateLimit-Limit:
              description: 1분 동안 허용되는 요청 수(600)입니다.
              schema:
                type: integer
                example: 600
            X-RateLimit-Remaining:
              description: 현재 윈도우에 남은 요청 수입니다.
              schema:
                type: integer
                example: 0
            X-RateLimit-Reset:
              description: 현재 윈도우가 리셋되는 Unix 시간(초)입니다.
              schema:
                type: integer
                example: 1792056120
            X-RateLimit-Scope:
              description: 초과된 예산의 이름입니다.
              schema:
                type: string
                example: generic-get
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: 사람이 읽기 쉬운 오류 메시지입니다.
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/webhook/destinations/11111111-2222-3333-4444-555555555555/deliveries/?limit=50&date_from=2026-10-01'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

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


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            for await (const item of
            didit.webhooks.destinations.listDeliveries("11111111-2222-3333-4444-555555555555"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Webhooks.Destinations.ListDeliveriesAutoPaging(ctx, \"11111111-2222-3333-4444-555555555555\", didit.WebhooksDestinationsListDeliveriesParams{})\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 client = new Didit();


            for (var item :
            client.webhooks().destinations().listDeliveries("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 = new DiditClient();


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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            didit.webhooks.destinations.list_deliveries("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.

            using var client = new DiditClient();


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

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    WebhookDestinationDelivery:
      type: object
      description: webhook 대상으로의 전송 시도 1회입니다. 이벤트의 최초 전송, 각 자동 재시도 및 각 재전송은 별도의 전송으로 처리됩니다.
      required:
        - uuid
        - session_id
        - request_url
        - response_status
        - response_time_ms
        - status
        - webhook_type
        - created_at
      properties:
        uuid:
          type: string
          format: uuid
          description: 상세 조회 및 재전송 호출용 전송 ID입니다.
        session_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            해당 이벤트의 대상인 사용자 인증 세션입니다. 기업 세션, 사용자, 기업, 거래, Travel Rule 및 워크플로
            이벤트의 경우 `null`입니다.
        request_url:
          type: string
          format: uri
          nullable: true
          description: '전송이 전송된 대상의 URL: 이벤트가 생성되었을 때 대상의 URL입니다.'
        response_status:
          type: integer
          nullable: true
          description: >-
            endpoint가 반환한 HTTP 상태입니다. 전송이 대기열에 있고 아직 시도되지 않은 동안에는 `null`입니다.
            HTTP 응답을 받지 못한 경우 Didit은 자체 상태를 기록합니다. endpoint가 5초 이내에 응답하지 않은 경우
            `504`, 연결 실패의 경우 `503`, URL이 안전하지 않은 것으로 거부된 경우(예: 사설 또는 내부 주소)
            `400`, 기타 모든 요청 오류의 경우 `404`를 기록합니다. `400` 이상은 전송 실패로 간주됩니다.
        response_time_ms:
          type: integer
          nullable: true
          minimum: 0
          description: 시도에 걸린 시간(밀리초 단위)입니다. 전송이 대기열에 있는 동안에는 `null`입니다.
        status:
          type: string
          nullable: true
          description: >-
            이벤트 생성 시 보고된 상태: 세션 이벤트의 경우 세션 상태(예: `Approved` 또는 `In Review`), 사용자
            및 기업 이벤트의 경우 개인 또는 회사의 상태, 거래 이벤트의 경우 거래 상태입니다. 상태가 없는 이벤트의 경우
            `null`입니다.
        webhook_type:
          $ref: '#/components/schemas/WebhookEvent'
        created_at:
          type: string
          format: date-time
          description: 전송이 생성된 시점입니다.
    WebhookEvent:
      type: string
      description: >-
        지원되는 webhook 이벤트 이름입니다. `subscribed_events`에 이 정확한 문자열을 사용해야 하며, 지원되지 않는
        값은 거부됩니다.
      enum:
        - status.updated
        - data.updated
        - user.status.updated
        - user.data.updated
        - business.status.updated
        - business.data.updated
        - activity.created
        - transaction.created
        - transaction.status.updated
        - travel_rule.status.updated
        - workflow.compliance_changed
        - transaction_rule_suggestions.created
        - auth.signup
        - auth.login
        - auth.login_failed
        - auth.password_reset_requested
        - auth.password_reset_completed
        - auth.mfa_changed
        - auth.new_device
        - auth.account_locked
        - investigator.report.ready
        - investigator.decision.automated
        - investigator.decision.overridden
        - investigator.decision.contested
        - investigator.question.raised
        - investigator.automation.paused
        - investigator.rfi.answered
        - investigator.rfi.overdue
        - investigator.drift.detected
        - investigator.sla.breached
        - investigator.qa.failed
        - investigator.external.report.ready
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Business Console의 Developers -> API keys에서 발급받은 귀하 애플리케이션의 API 키입니다. 기본
        키는 전체 접근 권한을 갖습니다. 이름이 지정된 키는 리소스별 none, read, write 범위로 권한을 제한할 수 있으며
        특정 워크플로나 승인된 세션, IP 주소 목록, 만료일 등으로 제한할 수도 있습니다. 401은 키가 잘못되었거나 폐기되었거나
        만료되었음을 의미합니다. 403은 키가 전송되지 않았거나, 키에 해당 리소스나 작업에 대한 접근 권한이 없거나, 요청이 허용된
        IP 목록 외부 주소에서 발생했음을 의미합니다. 세션 경로에서의 404는 해당 세션이 키의 허용 워크플로 또는 상태 범위를
        벗어났음을 의미합니다. 미디어 접근 권한이 없는 키는 이미지, 비디오, PDF URL을 null로 수신하며, 세션 write
        권한이 없는 키는 세션 링크와 token을 null로 수신합니다.
        https://docs.didit.me/console/api-keys 를 참고하십시오.

````

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