> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bbrands.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Delivery

> Soft delete of a ledger row. Requires `webhook-dispatch:delete`.



## OpenAPI

````yaml DELETE /webhook/dispatch/{document_id}
openapi: 3.0.1
info:
  title: Webhook API
  description: |
    Outbound webhook subscriptions, event catalogue, delivery ledger and
    operator actions of horizon-api. Every endpoint requires a bearer token
    whose user holds the corresponding `webhook:*`, `webhook-event:*`,
    `webhook-dispatch:*` or `event:*` permission (granted to the
    `administrator` role in the first release).

    List endpoints share the platform query contract: `filters`
    (`field|operator|value,...`), `order_by` (`field:asc|desc,...`), `page`,
    `page_size`, `fields` and `populate`.
  version: '2026-09-11'
servers:
  - description: Production
    url: https://api.bbrands.io/api/v3
  - description: Certification
    url: https://certification.api.bbrands.io/api/v3
  - description: Development
    url: https://development.api.bbrands.io/api/v3
security:
  - bearerAuth: []
tags:
  - name: Webhook
    description: Subscribers — callback URL, secret and scope.
  - name: Webhook Event
    description: Links between a subscriber and a catalogue event.
  - name: Webhook Dispatch
    description: Delivery ledger — one row per subscriber per event.
  - name: Event
    description: Catalogue rows synced from the generated catalogue.
paths:
  /webhook/dispatch/{document_id}:
    delete:
      tags:
        - Webhook Dispatch
      summary: Delete delivery
      description: Soft delete of a ledger row. Requires `webhook-dispatch:delete`.
      operationId: webhookDispatchDelete
      parameters:
        - $ref: '#/components/parameters/DocumentId'
      responses:
        '200':
          $ref: '#/components/responses/WebhookDispatchOk'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    DocumentId:
      name: document_id
      in: path
      required: true
      description: Record identifier.
      schema:
        type: string
        format: uuid
  responses:
    WebhookDispatchOk:
      description: Webhook dispatch record
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                $ref: '#/components/schemas/WebhookDispatch'
              message:
                type: string
              meta:
                $ref: '#/components/schemas/Meta'
    Unauthorized:
      description: Missing or invalid bearer token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: The user lacks the required permission
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Record not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    WebhookDispatch:
      allOf:
        - type: object
          properties:
            document_id:
              type: string
              format: uuid
              description: >-
                Delivery id; sent to the subscriber as `id` and
                `x-bbrands-delivery-id`.
            account:
              type: string
              format: uuid
              nullable: true
            attempts:
              type: integer
            delivered_at:
              type: string
              format: date-time
              nullable: true
            event:
              type: string
              format: uuid
            last_error:
              type: string
              nullable: true
            last_http_status:
              type: integer
              nullable: true
            next_retry_at:
              type: string
              format: date-time
              nullable: true
            payload:
              type: object
              description: >-
                Routing envelope stored at publish time (`occurred_at`, `route`,
                `account`).
            resource_id:
              type: string
              format: uuid
              nullable: true
            resource_type:
              type: string
              nullable: true
            source_event_id:
              type: string
              nullable: true
            status:
              type: string
              enum:
                - pending
                - delivering
                - success
                - error
                - exhausted
            webhook:
              type: string
              format: uuid
        - $ref: '#/components/schemas/Tracking'
    Meta:
      type: object
      properties:
        correlation:
          type: string
          description: Request correlation id; quote it when reporting an issue.
        status:
          type: integer
        timestamp:
          type: string
          format: date-time
        version:
          type: string
          nullable: true
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
          description: Machine-readable error code.
        errors:
          type: array
          items: {}
        message:
          type: string
        meta:
          $ref: '#/components/schemas/Meta'
        status:
          type: integer
    Tracking:
      type: object
      properties:
        created_at:
          type: string
          format: date-time
        deleted_at:
          type: string
          format: date-time
          nullable: true
        is_actived:
          type: boolean
        is_deleted:
          type: boolean
        updated_at:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````