Webhooks API

Configure and manage webhook subscriptions and delivery for Zai/Assembly platform events.

Business capability
Webhook & Event Subscription Management BC-4270.80

Operations 6

POST /webhooks Create a Webhook #
GET /webhooks List Webhooks #
POST /webhooks/secret_key Create a Secret Key #
GET /webhooks/{uuid} Show Webhook #
PATCH /webhooks/{uuid} Update an existing Webhook #
DELETE /webhooks/{uuid} Delete Webhook by ID #

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/assembly-payments: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

assembly-payments-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This is the Swagger definition for the AssemblyPayment's Webhooks API
  version: 1.0.4
  title: Webhooks API
  contact:
    email: support@assemblypayments.com
    url: http://docs.assemblypayments.com/
servers:
- url: https://sandbox.au-0000.api.assemblypay.com
  description: Sandbox (Pre-live) server and API
- url: https://au-0000.api.assemblypay.com
  description: Production server and API
- url: https://virtserver.swaggerhub.com/AssemblyPlatforms/WAPI/1.0.4
  description: SwaggerHub API Auto Mocking
security:
- bearerAuth: []
tags:
- name: Webhooks
paths:
  /webhooks:
    post:
      tags:
      - Webhooks
      summary: Create a Webhook
      description: Create a **Webhook** to notify you at the `URL` when the `object_type` changes
      operationId: createWebhook
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequestBody'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
              examples:
                response:
                  value:
                    uuid: 30403493-7249-433a-83ce-555388f75c01
                    description: Sample Batch Transaction Webhook
                    url: https://httpbin.org
                    http_method: post
                    object_type: batch_transactions
                    enabled: true
                    created_at: '2020-04-29T13:02:22.981Z'
                    updated_at: '2020-04-29T13:02:22.981Z'
                    links:
                      self: /webhooks/30403493-7249-433a-83ce-555388f75c01
                      jobs: /webhooks/30403493-7249-433a-83ce-555388f75c01/jobs
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Bad Request
                    message: 'Required fields missing: object_type'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Already exists
                    message: webhook already exists with the specified object_type
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Unprocessable entity
                    message: URL is not HTTPS, Object Type transdactions is not a valid value of field
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: cannot create webhook
      security:
      - bearerAuth: []
    get:
      tags:
      - Webhooks
      summary: List Webhooks
      description: Returns the webhooks associated
      operationId: getAllWebhooks
      parameters:
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/offsetParam'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhooks'
              examples:
                response:
                  value:
                    webhooks:
                    - uuid: 6a697a7a-cbaf-4029-98f4-71b4e1ef0b30
                      object_type: transactions
                      http_method: post
                      url: https://httpbin.org/post
                      description: webhook for transactions
                      enabled: true
                      created_at: '2021-05-20T04:31:00.551697677Z'
                      updated_at: '2021-05-20T04:31:00.551697677Z'
                    links:
                      self: /webhooks
                    meta:
                      limit: 10
                      offset: 0
                      total: 1
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: error fetching webhooks
      security:
      - bearerAuth: []
  /webhooks/secret_key:
    post:
      tags:
      - Webhooks
      summary: Create a Secret Key
      description: Create a **Secret Key** to authenticate the identity of webhooks received
      operationId: createSecretKey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SecretKeyRequestBody'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestResponses'
              examples:
                response:
                  value:
                    status: Created
                    message: secret key created successfully.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Bad Request
                    message: 'Required fields missing: secret_key'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                invalid_json_posted:
                  value:
                    status: Unprocessable entity
                    message: invalid json format
                invalid_secret_key:
                  value:
                    status: Unprocessable entity
                    message: Invalid SecretKey used
                weak_secret_key:
                  value:
                    status: Unprocessable entity
                    message: SecretKey must be at least 32 bytes
        '500':
          description: Internal Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: cannot create secret key
      security:
      - bearerAuth: []
  /webhooks/{uuid}:
    get:
      tags:
      - Webhooks
      summary: Show Webhook
      description: Show details of a specific **Webhook** using a given `:uuid`.
      operationId: getWebhookById
      parameters:
      - name: uuid
        in: path
        description: Webhook UUID
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
        example: 088e4cf1-2508-4bd4-97ab-a78e4e869970
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
              examples:
                response:
                  value:
                    uuid: 088e4cf1-2508-4bd4-97ab-a78e4e869970
                    description: Users Webhook
                    url: https://httpbin.org/post
                    object_type: users
                    http_method: post
                    enabled: true
                    created_at: '2019-03-29T06:12:57.686Z'
                    updated_at: '2019-03-29T06:12:57.686Z'
                    links:
                      self: /webhooks/088e4cf1-2508-4bd4-97ab-a78e4e869970
                      jobs: /webhooks/088e4cf1-2508-4bd4-97ab-a78e4e869970/jobs
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Not Found
                    message: resource not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: error fetching webhook
      security:
      - bearerAuth: []
    patch:
      tags:
      - Webhooks
      summary: Update an existing Webhook
      description: Update an existing **Webhook** using a given `:id`. You can change the `URL`, the `description` and whether the **Webhook** is `enabled` or `disabled`.
      operationId: updateWebhook
      parameters:
      - name: uuid
        in: path
        description: UUID of webhook to update
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookRequestBody'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
              examples:
                response:
                  value:
                    uuid: 088e4cf1-2508-4bd4-97ab-a78e4e869970
                    description: Users Webhook
                    url: https://httpbin.org/post
                    object_type: users
                    http_method: post
                    enabled: true
                    created_at: '2019-03-29T06:12:57.686Z'
                    updated_at: '2019-03-29T06:12:57.686Z'
                    links:
                      self: /webhooks/088e4cf1-2508-4bd4-97ab-a78e4e869970
                      jobs: /webhooks/088e4cf1-2508-4bd4-97ab-a78e4e869970/jobs
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Bad Request
                    message: field(s) object_type not allowed to update
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Not Found
                    message: resource not found
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Unprocessable entity
                    message: URL is not HTTPS
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: cannot update webhook
      security:
      - bearerAuth: []
    delete:
      tags:
      - Webhooks
      summary: Delete Webhook by ID
      description: Delete an existing Webhook using a given `:id`.
      operationId: deleteWebhookById
      parameters:
      - name: uuid
        in: path
        description: ID of webhook to delete
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Deleted
                    message: Successfully redacted
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Forbidden
                    message: token expired
        '404':
          description: Webhook not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Not Found
                    message: resource not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
              examples:
                response:
                  value:
                    status: Internal Server Error
                    message: cannot disable webhook
      security:
      - bearerAuth: []
components:
  schemas:
    Webhooks:
      type: object
      properties:
        webhooks:
          type: array
          items:
            $ref: '#/components/schemas/Webhook'
        meta:
          type: object
          properties:
            total:
              type: integer
            limit:
              type: integer
            offset:
              type: integer
    WebhookRequestBody:
      type: object
      required:
      - url
      - enabled
      - object_type
      properties:
        url:
          description: URL to which the webhook will notify
          type: string
          default: https://httpbin.org
          example: https://httpbin.org
        object_type:
          description: Object or entity to which the webhook refer. Please refer to [Webhook](https://developer.assemblypayments.com/docs/callbacks) for a list of object types.
          type: string
          enum:
          - batch_transactions
          - accounts
          - addresses
          - companies
          - items
          - disbursements
          - users
          - transactions
          - virtual_accounts
          - pay_ids
          - verifications
          - payto_agreements
          example: batch_transactions
        description:
          description: Description to identify the webhook
          type: string
          default: Batch Transactions Webhook
          example: Sample Batch Transaction Webhook
    SecretKeyRequestBody:
      type: object
      required:
      - secret_key
      properties:
        secret_key:
          description: unique key value to be used for authenticating webhooks events.
          type: string
          example: sk_testnvcxnbjdhfjkhdfgkljhdsfgkjhdfjklgdfg2E
    Webhook:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        object_type:
          type: string
        http_method:
          type: string
        url:
          type: string
        description:
          type: string
        enabled:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        links:
          $ref: '#/components/schemas/WebhookLinks'
    RequestResponses:
      type: object
      properties:
        response_code:
          type: string
        Message:
          type: string
        created_at:
          type: string
          format: date-time
    UpdateWebhookRequestBody:
      type: object
      properties:
        enabled:
          type: boolean
          example: false
        url:
          type: string
          format: url
          example: https://httpbin.org
        description:
          type: string
          default: Users Webhook
          example: Sample Users Webhook
    WebhookLinks:
      type: object
      properties:
        self:
          type: string
        webhooks:
          type: string
    APIResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
  parameters:
    offsetParam:
      name: offset
      in: query
      description: Number of records to offset. Required for pagination.
      required: false
      schema:
        type: integer
        minimum: 0
        default: 0
    limitParam:
      name: limit
      in: query
      description: Number of records to retrieve. Up to 200.
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 10
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-explorer-enabled: false
x-samples-languages:
- curl
- ruby
- php
- javascript
- csharp
- go
x-provenance:
  method: searched
  source: https://developer.hellozai.com/reference
  harvested: '2026-10-22'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.hellozai.com/reference/createsecretkey.md
  - https://developer.hellozai.com/reference/createwebhook.md
  - https://developer.hellozai.com/reference/deletewebhookbyid.md
  - https://developer.hellozai.com/reference/getallwebhooks.md
  - https://developer.hellozai.com/reference/getjob.md
  - https://developer.hellozai.com/reference/getjobs.md
  - https://developer.hellozai.com/reference/getstatus.md
  - https://developer.hellozai.com/reference/getwebhookbyid.md
  - https://developer.hellozai.com/reference/updatewebhook.md
  merge:
    pages: 9
    deduped: 26
    conflicts_kept_first: 0