Dojo Webhooks API

Webhooks notify you when a specific event has occurred. **Documentation**: [Webhooks](../../development-resources/webhooks)

Operations 9

GET /webhooks/events List all events #
GET /webhooks List all subscriptions #
POST /webhooks Subscribe to an event #
GET /webhooks/{subscriptionId}/secrets List all secrets #
POST /webhooks/{subscriptionId}/secrets Generate a secret #
PUT /webhooks/{subscriptionId}/secrets/{secretId}/activate Activate a secret #
DELETE /webhooks/{subscriptionId}/secrets/{secretId} Delete a secret #
PATCH /webhooks/{subscriptionId} Update a subscription #
DELETE /webhooks/{subscriptionId} Delete a subscription #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dojo-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dojo-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dojo Webhooks API
  version: '2026-02-27'
  description: '# Introduction


    The Dojo API is a REST API, using HTTP response codes to convey status, including successful responses and errors.'
  termsOfService: https://dojo.tech/legal/
  contact:
    name: Dojo Developer Experience Team
servers:
- url: https://api.dojo.tech
security:
- ApiKeyAuth: []
tags:
- name: Webhooks
  description: 'Webhooks notify you when a specific event has occurred.


    **Documentation**: Webhooks'
paths:
  /webhooks/events:
    get:
      tags:
      - Webhooks
      operationId: Webhooks_GetAllWebhooks
      summary: List all events
      description: Retrieves a list of all events.
      parameters:
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookEvents'
              example:
              - model: PaymentIntent
                events:
                - payment_intent.created
                - payment_intent.updated
              - model: Payment
                events:
                - payment.successful
              - model: Order
                events:
                - order.created
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /webhooks:
    get:
      tags:
      - Webhooks
      operationId: Webhooks_GetAlSubscriptions
      summary: List all subscriptions
      description: Retrieves a list of all subscriptions.
      parameters:
      - $ref: '#/components/parameters/Version'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Subscription'
                example:
                  id: ws_aNkU6yob0vOMxUlghg2oynUw
                  accountId: acc_4z3k2xP17e1JQY
                  events:
                  - payment_intent.created
                  - payment_intent.status_updated
                  url: https://example.com.com/incoming-events
                  description: Demo Webhooks
                  secrets:
                  - id: sc_qNkU6yob0vOMxUlb2oynUw
                    value: U3Vic2NyaXB0aW9uUmVzcG9uc2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxTdWJ
                    createdAt: '2023-12-13T14:15:01'
                    lastUsedAt: '2023-12-16T13:44:03.3242202Z'
                    isActive: true
                  createdAt: '2023-03-30T12:21:04.143Z'
                  updatedAt: '2023-03-30T12:21:04.143Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Webhooks
      operationId: Webhooks_Subscribe
      summary: Subscribe to an event
      description: Creates a new subscription.
      parameters:
      - $ref: '#/components/parameters/Version'
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              example:
                id: ws_aNkU6yob0vOMxUlghg2oynUw
                accountId: acc_4z3k2xP17e1JQY
                events:
                - payment_intent.created
                - payment_intent.status_updated
                url: https://example.com.com/incoming-events
                description: Demo Webhooks
                secrets:
                - id: sc_qNkU6yob0vOMxUlb2oynUw
                  value: U3Vic2NyaXB0aW9uUmVzcG9uc2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2023-12-13T14:15:01'
                  lastUsedAt: '2023-12-16T13:44:03.3242202Z'
                  isActive: true
                createdAt: '2023-03-30T12:21:04.143Z'
                updatedAt: '2023-03-30T12:21:04.143Z'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /webhooks/{subscriptionId}/secrets:
    get:
      tags:
      - Webhooks
      operationId: Webhooks_GetSecrets
      summary: List all secrets
      description: Retrieves a list of all secrets.
      parameters:
      - $ref: '#/components/parameters/Version'
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretsResponse'
              example:
                id: ws_lgQzejyXb0SD8oIDE2zcqA
                secrets:
                - id: sc_qNkU6yob0vOMxUlb2oynUw
                  value: U3Vic2NyaXB0aW9uUmVzcG9uc2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2023-12-13T14:15:01'
                  lastUsedAt: '2023-12-16T13:44:03.3656144Z'
                  isActive: true
                - id: sc_zNkU6yob0vOMxUlb2oynUw
                  value: FGswesdsaXB0aW9uUmVzcG9wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2020-12-13T14:15:01'
                  lastUsedAt: '2023-12-02T13:58:03.3656159Z'
                  isActive: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Webhooks
      operationId: Webhooks_GenerateSecret
      summary: Generate a secret
      description: Generates a new secret.
      parameters:
      - $ref: '#/components/parameters/Version'
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretsResponse'
              example:
                secrets:
                - id: sc_qNkU6yob0vOMxUlb2oynUw
                  value: U3Vic2NyaXB0aW9uUmVzcG9uc2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2023-12-13T14:15:01'
                  lastUsedAt: '2023-12-16T13:44:03.3683851Z'
                  isActive: true
                - id: sc_zNkU6yob0vOMxUlb2oynUw
                  value: FGswesdsaXB0aW9uUmVzcG9wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2023-12-13T14:15:01'
                  lastUsedAt: '2023-12-02T13:58:03.3683861Z'
                  isActive: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /webhooks/{subscriptionId}/secrets/{secretId}/activate:
    put:
      tags:
      - Webhooks
      operationId: Webhooks_ActivateSecret
      summary: Activate a secret
      description: Activates a secret.
      parameters:
      - $ref: '#/components/parameters/Version'
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      - name: secretId
        in: path
        required: true
        schema:
          type: string
        x-position: 2
        description: The unique identifier for the secret.
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /webhooks/{subscriptionId}/secrets/{secretId}:
    delete:
      tags:
      - Webhooks
      operationId: Webhooks_DeleteSecret
      summary: Delete a secret
      description: Deletes a secret.
      parameters:
      - $ref: '#/components/parameters/Version'
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      - name: secretId
        in: path
        required: true
        schema:
          type: string
        x-position: 2
        description: The unique identifier for the secret.
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /webhooks/{subscriptionId}:
    patch:
      tags:
      - Webhooks
      operationId: Webhooks_SubscribeUpdate
      summary: Update a subscription
      description: Updates your subscription details. You can change the URL or the list of events.
      parameters:
      - $ref: '#/components/parameters/Version'
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionUpdateRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Subscription'
              example:
                id: ws_aNkU6yob0vOMxUlghg2oynUw
                accountId: acc_4z3k2xP17e1JQY
                events:
                - payment_intent.created
                - payment_intent.status_updated
                url: https://example.com.com/incoming-events
                description: Demo Webhooks
                secrets:
                - id: sc_qNkU6yob0vOMxUlb2oynUw
                  value: U3Vic2NyaXB0aW9uUmVzcG9uc2VFeGFtcGxlIDogSUV4YW1wbGVQcm92aWRlcjxTdWJ
                  createdAt: '2023-12-13T14:15:01'
                  lastUsedAt: '2023-12-16T13:44:03.3242202Z'
                  isActive: true
                createdAt: '2023-03-30T12:21:04.143Z'
                updatedAt: '2023-03-30T12:21:04.143Z'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    delete:
      tags:
      - Webhooks
      operationId: Webhooks_DeleteSubscriptions
      summary: Delete a subscription
      description: Deletes a subscription.
      parameters:
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
        x-position: 1
        description: The unique identifier for the subscription.
      - $ref: '#/components/parameters/Version'
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    SubscriptionSecret:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The unique identifier for the secret.
        value:
          type: string
          description: The secret value.
        createdAt:
          type: string
          format: date-time
          description: The timestamp of the created date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
        isActive:
          type: boolean
          description: The status of the secret. It can be activated or deactivated.
    ErrorResponse:
      type: object
      additionalProperties: false
      properties:
        errors:
          type:
          - object
          - 'null'
          additionalProperties:
            type: array
            items:
              type: string
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        traceId:
          type:
          - string
          - 'null'
        detail:
          type:
          - string
          - 'null'
    Subscription:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The unique identifier for the subscription.
        accountId:
          type:
          - string
          - 'null'
          description: The unique identifier for the account.
        events:
          type: array
          description: The list of events.
          items:
            type: string
        url:
          type: string
          description: The URL of the Webhook endpoint.
          format: uri
          minLength: 1
          pattern: ^https://*.+
        description:
          type:
          - string
          - 'null'
          description: The subscription description.
        secrets:
          type: array
          description: The list of secrets associated with the subscription. Used to generate signatures.
          items:
            $ref: '#/components/schemas/SubscriptionSecret'
        createdAt:
          type: string
          format: date-time
          description: 'The creation date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.

            '
        updatedAt:
          type: string
          format: date-time
          description: The timestamp of the update date, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) UTC format.
    WebhookEvents:
      type: object
      additionalProperties: false
      properties:
        model:
          type: string
          description: The Webhook type.
        events:
          type: array
          description: The list of events.
          items:
            type: string
    SubscriptionRequest:
      type: object
      example:
        events:
        - payment_intent.created
        - payment.successful
        - order.created
        url: https://example.com/incoming-events
      additionalProperties: false
      required:
      - events
      - url
      properties:
        events:
          type: array
          description: The list of events.
          items:
            type: string
        url:
          type: string
          format: uri
          minLength: 1
          pattern: ^https://*.+
          description: The URL of the Webhook endpoint.
        description:
          type:
          - string
          - 'null'
          description: The subscription description.
    SecretsResponse:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: The unique identifier for the subscription.
        secrets:
          type: array
          description: The list of secrets associated with the subscription. Used to generate signatures.
          items:
            $ref: '#/components/schemas/SubscriptionSecret'
    SubscriptionUpdateRequest:
      type: object
      example:
        events:
        - payment_intent.created
        - order.created
      additionalProperties: false
      properties:
        events:
          type:
          - array
          - 'null'
          description: The list of events.
          items:
            type: string
        url:
          type:
          - string
          - 'null'
          description: The URL of the Webhook endpoint.
          format: uri
          pattern: ^https://*.+
        description:
          type:
          - string
          - 'null'
          description: The subscription description.
  parameters:
    Version:
      name: version
      in: header
      required: true
      schema:
        type: string
        format: date
      example: '2026-02-27'
      description: The API version with format yyyy-mm-dd. The current version is `2026-02-27`.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: Authorization
      in: header
x-tagGroups:
- name: Core payments
  tags:
  - Payment intents
  - Refunds
  - Reversal
  - Captures
  - Webhooks
  - Customers
  - Setup intents
- name: In-person payments
  tags:
  - Terminals
  - Terminal sessions
- name: Capabilities
  tags:
  - Capabilities
  - Events