Fireblocks Webhooks API

Receive push notifications when workspace events occur — TRANSACTION_CREATED, TRANSACTION_STATUS_UPDATED, VAULT_ACCOUNT_ADDED, EMBEDDED_WALLET_DEVICE_PAIRED, SMART_TRANSFER events, and more. Each event is signed with RSA-SHA512 in the Fireblocks-Signature header so the consumer can verify authenticity before processing. Webhooks V2 surface adds destination management and replay-from-history.

OpenAPI Specification

fireblocks-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Webhooks API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development
    platform to build your business on the blockchain.


    - Visit our website for more information: [Fireblocks Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)

    '
  version: 1.8.0
  contact:
    email: [email protected]
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /webhooks/resend:
    post:
      summary: Resend failed webhooks
      description: '**Deprecation notice:** Webhooks v1 will be deprecated in March 2026. Please use the Developer Center
        in the Fireblocks Console to upgrade to Webhooks v2, which offers improved reliability, performance, and observability.


        Resends all failed webhook notifications.


        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.

        '
      tags:
      - Webhooks
      x-readme:
        code-samples:
        - language: javascript
          code: const result = await fireblocks.resendWebhooks();
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ResendWebhooksResponse>> = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ResendWebhooksResponse>> response = fireblocks.webhooks().resendWebhooks(idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks.resend_webhooks(idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendWebhooksResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: resendWebhooks
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ResendWebhooksResponse>> = fireblocks.webhooks.resendWebhooks(webhooksApiResendWebhooksRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ResendWebhooksResponse>> response = fireblocks.webhooks().resendWebhooks(idempotencyKey);
      - lang: Python
        source: response = fireblocks.webhooks.resend_webhooks(idempotency_key);
  /webhooks/resend/{txId}:
    post:
      summary: Resend webhooks for a transaction by ID
      description: '**Deprecation notice:** Webhooks v1 will be deprecated in March 2026. Please use the Developer Center
        in the Fireblocks Console to upgrade to Webhooks v2, which offers improved reliability, performance, and observability.


        Resends webhook notifications for a transaction by its unique identifier.


        **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor.

        '
      tags:
      - Webhooks
      x-readme:
        code-samples:
        - language: javascript
          code: const result = await fireblocks.resendTransactionWebhooksById(txId, resendCreated, resendStatusUpdated);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ResendWebhooksByTransactionIdResponse>> = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ResendWebhooksByTransactionIdResponse>> response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,
            txId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request, tx_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - in: path
        name: txId
        required: true
        description: The ID of the transaction for webhooks
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendTransactionWebhooksRequest'
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendWebhooksByTransactionIdResponse'
        default:
          $ref: '#/components/responses/Error'
      operationId: resendTransactionWebhooks
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ResendWebhooksByTransactionIdResponse>> = fireblocks.webhooks.resendTransactionWebhooks(webhooksApiResendTransactionWebhooksRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ResendWebhooksByTransactionIdResponse>> response = fireblocks.webhooks().resendTransactionWebhooks(resendTransactionWebhooksRequest,
          txId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.webhooks.resend_transaction_webhooks(resend_transaction_webhooks_request, tx_id, idempotency_key);
  /webhooks:
    post:
      operationId: createWebhook
      summary: Create a new webhook
      description: 'Creates a new webhook, which will be triggered on the specified events


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookRequest'
      responses:
        '201':
          description: created new webhook successfully
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.create_webhook(create_webhook_request, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.createWebhook(webhooksV2ApiCreateWebhookRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().createWebhook(createWebhookRequest,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.webhooks_v2.create_webhook(create_webhook_request, idempotency_key);
    get:
      operationId: getWebhooks
      summary: Get all webhooks
      description: 'Get all webhooks (paginated).


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: order
        required: false
        in: query
        description: ASC / DESC ordering (default DESC)
        schema:
          default: DESC
          example: ASC
          enum:
          - ASC
          - DESC
          type: string
      - name: pageCursor
        required: false
        in: query
        description: Cursor of the required page
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Maximum number of items on the page
        schema:
          minimum: 1
          maximum: 100
          default: 10
          example: 10
          type: number
      responses:
        '200':
          description: A paginated response containing WebhookDto objects
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookPaginatedResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<WebhookPaginatedResponse>> = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<WebhookPaginatedResponse>> response = fireblocks.webhooksV2().getWebhooks(order,
            pageCursor, pageSize);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor, page_size);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<WebhookPaginatedResponse>> = fireblocks.webhooksV2.getWebhooks(webhooksV2ApiGetWebhooksRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<WebhookPaginatedResponse>> response = fireblocks.webhooksV2().getWebhooks(order,
          pageCursor, pageSize);
      - lang: Python
        source: response = fireblocks.webhooks_v2.get_webhooks(order, page_cursor, page_size);
  /webhooks/{webhookId}:
    get:
      operationId: getWebhook
      summary: Get webhook by id
      description: 'Retrieve a webhook by its ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: webhookId
        required: true
        in: path
        description: The unique identifier of the webhook
        schema:
          format: uuid
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          type: string
      responses:
        '200':
          description: A webhook object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().getWebhook(webhookId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.get_webhook(webhook_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.getWebhook(webhooksV2ApiGetWebhookRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().getWebhook(webhookId);
      - lang: Python
        source: response = fireblocks.webhooks_v2.get_webhook(webhook_id);
    patch:
      operationId: updateWebhook
      summary: Update webhook
      description: 'Update a webhook by its ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: webhookId
        required: true
        in: path
        description: The unique identifier of the webhook
        schema:
          format: uuid
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookRequest'
      responses:
        '200':
          description: Updated webhook object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,
            webhookId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.update_webhook(update_webhook_request, webhook_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.updateWebhook(webhooksV2ApiUpdateWebhookRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().updateWebhook(updateWebhookRequest,
          webhookId);
      - lang: Python
        source: response = fireblocks.webhooks_v2.update_webhook(update_webhook_request, webhook_id);
    delete:
      operationId: deleteWebhook
      summary: Delete a webhook
      description: 'Delete a webhook by its ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: webhookId
        required: true
        in: path
        description: The unique identifier of the webhook
        schema:
          format: uuid
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          type: string
      responses:
        '200':
          description: Deleted webhook object
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().deleteWebhook(webhookId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.delete_webhook(webhook_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Webhook>> = fireblocks.webhooksV2.deleteWebhook(webhooksV2ApiDeleteWebhookRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Webhook>> response = fireblocks.webhooksV2().deleteWebhook(webhookId);
      - lang: Python
        source: response = fireblocks.webhooks_v2.delete_webhook(webhook_id);
  /webhooks/{webhookId}/notifications:
    get:
      operationId: getNotifications
      summary: Get all notifications by webhook ID
      description: 'Get all notifications by webhook ID (paginated).


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: webhookId
        required: true
        in: path
        schema:
          format: uuid
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          type: string
      - name: order
        required: false
        in: query
        description: ASC / DESC ordering (default DESC)
        schema:
          default: DESC
          example: ASC
          enum:
          - ASC
          - DESC
          type: string
      - name: sortBy
        required: false
        in: query
        description: Sort by field (id, createdAt, updatedAt, status, eventType, resourceId)
        schema:
          default: id
          example: id
          enum:
          - id
          - createdAt
          - updatedAt
          - status
          - eventType
          - resourceId
          type: string
      - name: pageCursor
        required: false
        in: query
        description: Cursor of the required page
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Maximum number of items on the page
        schema:
          minimum: 1
          maximum: 100
          default: 100
          example: 10
          type: number
      - name: startTime
        required: false
        in: query
        description: Start time in milliseconds since epoch to filter by notifications created after this time (default 31
          days ago)
        schema:
          example: '1625097600000'
          type: string
      - name: endTime
        required: false
        in: query
        description: End time in milliseconds since epoch to filter by notifications created before this time (default current
          time)
        schema:
          example: '1625017600000'
          type: string
      - name: statuses
        required: false
        in: query
        description: List of notification statuses to filter by
        schema:
          example: COMPLETED
          type: array
          items:
            $ref: '#/components/schemas/NotificationStatus'
      - name: events
        required: false
        in: query
        description: List of webhook event types to filter by
        schema:
          example:
          - transaction.created
          - transaction.status.updated
          type: array
          items:
            $ref: '#/components/schemas/WebhookEvent'
      - name: resourceId
        required: false
        in: query
        description: Resource ID to filter by
        schema:
          type: string
      responses:
        '200':
          description: A paginated response containing NotificationExternalDTO objects
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationPaginatedResponse'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<NotificationPaginatedResponse>> = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<NotificationPaginatedResponse>> response = fireblocks.webhooksV2().getNotifications(webhookId,
            order, pageCursor, pageSize, createdStartDate, createdEndDate, statuses, eventTypes, resourceId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.get_notifications(webhook_id, order, page_cursor, page_size, created_start_date,
            created_end_date, statuses, event_types, resource_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<NotificationPaginatedResponse>> = fireblocks.webhooksV2.getNotifications(webhooksV2ApiGetNotificationsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<NotificationPaginatedResponse>> response = fireblocks.webhooksV2().getNotifications(webhookId,
          order, pageCursor, pageSize, createdStartDate, createdEndDate, statuses, eventTypes, resourceId);
      - lang: Python
        source: response = fireblocks.webhooks_v2.get_notifications(webhook_id, order, page_cursor, page_size, created_start_date,
          created_end_date, statuses, event_types, resource_id);
  /webhooks/{webhookId}/notifications/{notificationId}/resend:
    post:
      operationId: resendNotificationById
      summary: Resend notification by ID
      description: 'Resend a notification by its ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin, Signer, Editor.

        '
      parameters:
      - name: webhookId
        description: The ID of the webhook
        required: true
        in: path
        schema:
          type: string
      - name: notificationId
        description: The ID of the notification
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '202':
          description: Resend notification request was accepted and is being processed
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
  /webhooks/{webhookId}/notifications/resend_by_resource:
    post:
      operationId: resendNotificationsByResourceId
      summary: Resend notifications by resource ID
      description: 'Resend notifications by their resource ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin, Signer, Editor.

        '
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      - name: webhookId
        description: The ID of the webhook
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendNotificationsByResourceIdRequest'
      responses:
        '202':
          description: Resend notifications by resource request was accepted and is being processed
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
  /webhooks/{webhookId}/notifications/{notificationId}:
    get:
      operationId: getNotification
      summary: Get notification by ID
      description: 'Get a notification by its notification ID.


        **Endpoint Permissions:** Owner, Admin, Non-Signing Admin.

        '
      parameters:
      - name: includeData
        description: Include the data of the notification
        required: false
        in: query
        schema:
          type: boolean
      - name: webhookId
        description: The ID of the webhook to fetch
        required: true
        in: path
        schema:
          type: string
      - name: notificationId
        description: The ID of the notification to fetch
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationWithData'
      tags:
      - Webhooks V2
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<NotificationWithData>> = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<NotificationWithData>> response = fireblocks.webhooksV2().getNotification(webhookId,
            notificationId, includeData);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id, include_data);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<NotificationWithData>> = fireblocks.webhooksV2.getNotification(webhooksV2ApiGetNotificationRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<NotificationWithData>> response = fireblocks.webhooksV2().getNotification(webhookId,
          notificationId, includeData);
      - lang: Python
        source: response = fireblocks.webhooks_v2.get_notification(webhook_id, notification_id, include_data);
  /webhooks/{webhookId}/notifications/{notificationId}/attempts:
    get:
      operationId: getNotificationAttempts
      summary: Get notification attempts
      description: Get notification attempts by notification ID.
      parameters:
      - name: webhookId
        description: The ID of the webhook to fetch
        required: true
        in: path
        schema:
          type: string
      - name: notificationId
        description: The ID of the notification to fetch
        required: true
        in: path
        schema:
          type: string
      - name: pageCursor
        required: false
        in: query
        description: Cursor of the required page
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Maximum number of items in the page
        schema:
          minimum: 1
          maximum: 100
          default: 10
          example: 10
          type: number
      responses:
        '200':
          description: OK
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationAttemptsPaginatedResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
  /webhooks/{webhookId}/notifications/resend_failed:
    post:
      operationId: resendFailedNotifications
      summary: Resend failed notifications
      description: 'Resend all failed notifications for a webhook in the last 24 hours.


        **Endpoint Permission:** Owner, Admin, Non-Signing Admin, Signer, Editor.

        '
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      - name: webhookId
        description: The ID of the webhook
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendFailedNotificationsRequest'
      responses:
        '200':
          description: No failed notifications to resend
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendFailedNotificationsResponse'
        '202':
          description: Resend failed notifications request was accepted and is being processed
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            Location:
              $ref: '#/components/headers/Location'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendFailedNotificationsResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-rate-limit-category: high_compute
  /webhooks/{webhookId}/notifications/resend_failed/jobs/{jobId}:
    get:
      operationId: getResendJobStatus
      summary: Get resend job status
      description: Get the status of a resend job.
      parameters:
      - name: webhookId
        description: The ID of the webhook
        required: true
        in: path
        schema:
          type: string
      - name: jobId
        description: The ID of the resend job
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: Job status
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResendFailedNotificationsJobStatusResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Webhooks V2
      x-rate-limit-category: read
components:
  schemas:
    CreateWebhookRequest:
      type: object
      properties:
        url:
          type: string
          description: The url of the webhook where notifications will be sent. URL must be valid, unique and https.
          example: https://example.com/webhook
          minLength: 1
        description:
          type: string
          description: description of the webhook. should not contain special characters.
          example: This webhook is used for transactions notifications
          minLength: 1
        events:
          type: array
          description: event types the webhook will subscribe to
          items:
            $ref: '#/components/schemas/WebhookEvent'
          example:
          - transaction.created
          - transaction.status.updated
        enabled:
          type: boolean
          description: The status of the webhook. If false, the webhook will not receive notifications.
          example: false
          default: true
      required:
      - url
      - description
      - events
    Notification:
      type: object
      properties:
        id:
          type: string
          description: The id of the Notification
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          format: uuid
        createdAt:
          type: string
          description: The creation date of the notification
          example: '2021-07-01T00:00:00.000Z'
          format: date-time
        updatedAt:
          type: string
          description: The date when the notification was updated
          example: '2021-07-01T00:00:00.000Z'
          format: date-time
        status:
          $ref: '#/components/schemas/NotificationStatus'
        eventType:
          $ref: '#/components/schemas/WebhookEvent'
        eventVersion:
          type: number
          description: The event version of the Notification
          example: 1
        resourceId:
          type: string
          nullable: true
          default: null
          description: The resource id of the event which the Notification is listen to
          example: 44fcead0-7053-4831-a53a-df7fb90d440f
          format: uuid
        attempts:
          default: []
          description: The attempts related to Notification
          type: array
          items:
            type: string
      required:
      - id
      - createdAt
      - updatedAt
      - status
      - eventType
      - eventVersion
    NotificationAttempt:
      type: object
      properties:
        sentTime:
          type: integer
          format: int64
          description: The time when the attempt was sent in milliseconds.
          example: 1625126400000
        duration:
          type: integer
          description: The duration of the attempt in milliseconds.
          example: 130
        responseCode:
          type: integer
          description: The response code of the attempt, when missing refer to failureReason.
          example: 200
        failureReason:
          type: string
          enum:
          - TIMED_OUT
    

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-webhooks-api-openapi.yml