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

# List outgoing webhook events

> Returns paginated records of outgoing webhooks sent to your webhook URL. Webhooks are persisted for a fixed retention period of 7days.



## OpenAPI

````yaml /api-reference/openapi.json get /transactions/webhooks
openapi: 3.0.0
info:
  title: BREET PUBLIC API
  version: 1.0.0
  license:
    name: Proprietary
    url: https://breet.io/terms
servers:
  - url: https://api.breet.io/v1
security:
  - appId: []
    appSecret: []
    breetEnv: []
tags:
  - name: Crypto Wallet
    description: Generate and manage crypto wallet addresses for receiving deposits.
    x-group: Wallets and Deposits
  - name: Withdrawals
    description: >-
      ## Withdrawals


      To help protect your funds, withdrawals support an additional security
      layer through **IP whitelisting**.


      ### IP Whitelisting


      When IP whitelisting is enabled, all withdrawal requests must originate
      from an approved IP address. Any withdrawal request coming from an IP not
      on the whitelist will be automatically blocked.


      You can add up to **7 IP addresses** from your dashboard.


      This feature is recommended for:


      - Production servers
          
      - Preventing unauthorized withdrawal attempts
          

      ### How it works


      - Enable IP whitelisting from your dashboard
          
      - Add up to 7 trusted IP addresses
          
      - Only requests from those IPs will be allowed to initiate withdrawals
          

      If IP whitelisting is disabled, withdrawals can be initiated from any IP
      address.
  - name: Banks
    description: List, validate, add, and remove bank accounts for fiat withdrawals.
  - name: Transactions
    description: Retrieve deposit and trade transaction history.
  - name: Webhooks
    description: >-
      Inspect and retry **outgoing** webhooks we send to your server (trade and
      withdrawal events). Requires an active integration with API access (VIP
      partners). For **incoming** payload shapes and verification, see the
      Webhooks guide in the Guides tab.
  - name: Assets
    description: >-
      Retrieve the list of supported deposit/sell assets and their
      configuration.
  - name: Rates and Prices
    description: >-
      Get live market prices and calculate conversion rates. These endpoints are
      public and do not require authentication.
  - name: Account
    description: Retrieve and update integration account details and preferences.
  - name: Testing
    description: Endpoints for testing your integration in development.
  - name: Conversion
    description: >-
      Convert between USD and local fiat (NGN | GHS). Available for both user
      and integration (business) flows.
  - name: Wallet addresses
    description: >-
      Add and remove withdrawal (payout) wallet addresses. If the same address,
      network, and token are sent with a different label, the existing address
      is updated.
paths:
  /transactions/webhooks:
    get:
      tags:
        - Webhooks
      summary: List outgoing webhook events
      description: >-
        Returns paginated records of outgoing webhooks sent to your webhook URL.
        Webhooks are persisted for a fixed retention period of 7days.
      operationId: listWebhookEvents
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          example: 1
          description: Page number (1-indexed).
        - name: size
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          example: 10
          description: Number of items per page (max 200 on the server).
        - name: sort
          in: query
          required: false
          schema:
            type: string
          description: Optional sort expression (string).
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: Optional filter expression (string).
        - name: exports
          in: query
          required: false
          schema:
            type: boolean
          description: Optional export flag.
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: Optional search string.
        - name: startDate
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: If used with `endDate`, filters by date range (ISO 8601).
        - name: endDate
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: If used with `startDate`, filters by date range (ISO 8601).
        - name: reference
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 32
          example: 692f91aa729255932afe9078
          description: >-
            Optional. The trade or withdrawal document ID (MongoDB ObjectId
            string) used as the webhook reference.
        - name: status
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/WebhookDeliveryStatus'
          example: delivered
          description: >-
            Optional. Filter by overall delivery status of the stored webhook
            event.
        - name: eventName
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/WebhookEventType'
          example: trade.completed
          description: >-
            Optional. Filter by webhook event type (matches `eventType` in the
            stored document).
      responses:
        '200':
          description: Paginated list of webhook event documents
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookEvent'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
              example:
                message: ''
                success: true
                data:
                  - id: 67a1b2c3d4e5f67890123456
                    integration: 692d994b7ca6e4da422363fb
                    reference: 692f91aa729255932afe9078
                    eventType: trade.completed
                    payload:
                      event: trade.completed
                      id: 692f91aa729255932afe9078
                      status: completed
                    url: https://partner.example.com/webhooks/breet
                    status: delivered
                    attemptsCount: 1
                    attempts:
                      - attemptedAt: '2025-12-03T01:26:04.066Z'
                        responseStatus: 200
                        responseBody: '{"ok":true}'
                    deliveredAt: '2025-12-03T01:26:04.066Z'
                    lastAttemptAt: '2025-12-03T01:26:04.066Z'
                    expireAt: '2025-12-10T01:26:04.066Z'
                    createdAt: '2025-12-03T01:26:04.066Z'
                    updatedAt: '2025-12-03T01:26:04.066Z'
                meta:
                  pages: 1
                  prevPage: null
                  nextPage: null
                  page: 1
                  totalDocs: 1
                  hasPrevPage: false
                  hasNextPage: false
                summary: {}
                stats: {}
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    WebhookDeliveryStatus:
      type: string
      description: Stored delivery outcome for the webhook event document.
      enum:
        - delivered
        - failed
    WebhookEventType:
      type: string
      description: >-
        Webhook event name (matches `event` / `eventType` for trade and
        withdrawal notifications).
      enum:
        - trade.pending
        - trade.completed
        - trade.flagged
        - withdrawal.pending
        - withdrawal.processing
        - withdrawal.rejected
        - withdrawal.completed
        - withdrawal.reversed
    WebhookEvent:
      type: object
      description: A persisted outgoing webhook delivery record.
      properties:
        id:
          type: string
          example: 67a1b2c3d4e5f67890123456
        integration:
          type: string
          description: Integration document ID
        reference:
          type: string
          description: Trade or withdrawal ObjectId string
        eventType:
          $ref: '#/components/schemas/WebhookEventType'
        payload:
          description: JSON body that was (or will be) POSTed to the partner URL
        url:
          type: string
          format: uri
        status:
          $ref: '#/components/schemas/WebhookDeliveryStatus'
        attemptsCount:
          type: integer
        attempts:
          type: array
          items:
            $ref: '#/components/schemas/WebhookDeliveryAttempt'
        deliveredAt:
          type: string
          format: date-time
          nullable: true
        lastAttemptAt:
          type: string
          format: date-time
          nullable: true
        expireAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    PaginationMeta:
      type: object
      description: Pagination metadata returned by list endpoints.
      properties:
        pages:
          type: integer
        prevPage:
          type: integer
          nullable: true
        nextPage:
          type: integer
          nullable: true
        page:
          type: integer
        totalDocs:
          type: integer
        hasPrevPage:
          type: boolean
        hasNextPage:
          type: boolean
    WebhookDeliveryAttempt:
      type: object
      description: A single HTTP delivery attempt.
      properties:
        attemptedAt:
          type: string
          format: date-time
        responseStatus:
          type: integer
        responseBody: {}
        errorMessage:
          type: string
        errorStatusCode:
          type: integer
    ErrorResponse:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        message:
          type: string
        meta:
          type: object
        errors:
          type: array
          items:
            type: object
        data:
          type: object
  responses:
    Unauthorized:
      description: Invalid or missing API credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            notAuthenticated:
              summary: Missing credentials
              value:
                success: false
                message: you're not authenticated
                meta: {}
                errors: []
                data: {}
            wrongCredentials:
              summary: Invalid app ID or secret
              value:
                success: false
                message: wrong app id and secret combination
                meta: {}
                errors: []
                data: {}
    Forbidden:
      description: The integration is inactive or the action is not permitted
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: you do not have api access
            meta: {}
            errors: []
            data: {}
    ValidationError:
      description: >-
        Request validation failed — check the errors array for field-level
        details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: validation errors
            meta: {}
            errors:
              - message: Invalid value
                field: amount
                location: body
            data: {}
    InternalServerError:
      description: An unexpected server error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            success: false
            message: something went wrong!
            meta: {}
            errors: []
            data: {}
  securitySchemes:
    appId:
      type: apiKey
      in: header
      name: x-app-id
      description: Your application ID from the Breet dashboard
    appSecret:
      type: apiKey
      in: header
      name: x-app-secret
      description: Your application secret from the Breet dashboard
    breetEnv:
      type: apiKey
      in: header
      name: X-Breet-Env
      description: 'Environment selector: development or production'

````