The Bank of London Webhook Management API

The Webhook Management API from The Bank of London — 4 operation(s) for webhook management.

Operations 6

POST /v2/webhooks Create Webhook #
GET /v2/webhooks Get Webhooks #
PATCH /v2/webhooks/{id} Update Webhook #
DELETE /v2/webhooks/{id} Delete Webhook #
POST /v2/webhooks/{id}/create-test-event Create Webhook Test Event #
POST /v2/webhooks/{id}/regenerate-key Regenerate Webhook Key #

Documentation

Specifications

Other Resources

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/the-bank-of-london-webhook-management-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

the-bank-of-london-webhook-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bank of London Webhook Management API
  version: 2.0.0
  description: ''
servers:
- description: Sandbox
  url: https://sandbox-api.bankoflondon.com/
- description: Live
  url: https://api.bankoflondon.com/
- description: Mock Server
  url: https://developer.bankoflondon.com/api/mock/the-bank-of-london-api
tags:
- name: Webhook Management
paths:
  /v2/webhooks:
    post:
      operationId: CreateWebhook
      summary: Create Webhook
      description: 'This operation allows you to configure Webhooks, enabling you to receive notifications about various events related to your payments or transactions.


        The response includes the public key of the webhook. The public key is used to verify the signature of the webhook events.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        description: The object containing data about the Webhook.
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  $ref: '#/components/schemas/WebhookName'
                url:
                  $ref: '#/components/schemas/Url'
                events:
                  type: array
                  minItems: 1
                  uniqueItems: true
                  description: '<span style="color:#f46d2a">**Attention**</span> \

                    Please note that the allowed values for the **events** are

                    extensible and new values can be added in the future without a

                    major version change. Please ensure this is factored into your

                    application code.


                    The type of event. \

                    `PAYMENT_PENDING` - payment has been created and is `PENDING` or `SCHEDULED`. \

                    `PAYMENT_SUCCESSFUL` - payment has become `SUCCESSFUL`. \

                    `PAYMENT_FAILED` - payment has been updated with a status of `REJECTED` or `FAILED`. \

                    `TRANSACTION_SUCCESSFUL` - transaction has been created and successfully settled. \

                    `TRANSACTION_EXPORT_SUCCESSFUL` - transaction export has completed successfully. \

                    `TRANSACTION_EXPORT_FAILED` - transaction export has failed.

                    '
                  items:
                    $ref: '#/components/schemas/WebhookEvent'
                version:
                  $ref: '#/components/schemas/WebhookVersion'
              required:
              - name
              - url
              - events
              - version
      responses:
        '201':
          description: Created
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
    get:
      operationId: GetWebhooks
      summary: Get Webhooks
      description: 'Retrieves the list of webhooks that are associated with the consumer application.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhooks:
                    type: array
                    uniqueItems: true
                    items:
                      $ref: '#/components/schemas/Webhook'
                  metadata:
                    $ref: '#/components/schemas/MetaData'
                required:
                - webhooks
                - metadata
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
  /v2/webhooks/{id}:
    patch:
      operationId: PatchWebhook
      summary: Update Webhook
      description: 'This operation allows you to update an existing webhook.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/WebhookId'
      - $ref: '#/components/parameters/JwsSignature'
      requestBody:
        description: The object containing data about the Webhook.
        required: true
        content:
          application/json:
            schema:
              properties:
                name:
                  $ref: '#/components/schemas/NullableWebhookName'
                url:
                  $ref: '#/components/schemas/NullableUrl'
                events:
                  allOf:
                  - type:
                    - array
                    - 'null'
                    minItems: 1
                    uniqueItems: true
                    items:
                      $ref: '#/components/schemas/WebhookEvent'
                    example:
                    - TRANSACTION_SUCCESSFUL
                  - description: 'The type of event. \

                      `PAYMENT_PENDING` - payment has been created and is `PENDING` or `SCHEDULED`. \

                      `PAYMENT_SUCCESSFUL` - payment has become `SUCCESSFUL`. \

                      `PAYMENT_FAILED` - payment has been updated with a status of `REJECTED` or `FAILED`. \

                      `TRANSACTION_SUCCESSFUL` - transaction has been created and successfully settled. \

                      `TRANSACTION_EXPORT_SUCCESSFUL` - transaction export has completed successfully. \

                      `TRANSACTION_EXPORT_FAILED` - transaction export has failed.

                      '
                version:
                  $ref: '#/components/schemas/NullableWebhookVersion'
                enabled:
                  $ref: '#/components/schemas/NullableWebhookEnabledStatus'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
    delete:
      operationId: DeleteWebhook
      summary: Delete Webhook
      description: 'This operation allows you to delete a webhook.


        Returns an empty response if the provided `id` is valid. Otherwise, a response with a 404 status code is returned.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/WebhookId'
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '204':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
  /v2/webhooks/{id}/create-test-event:
    post:
      operationId: CreateTestEvent
      summary: Create Webhook Test Event
      description: 'This operation allows you to create a test event for a webhook.


        Returns an empty response if the provided `id` is valid. Otherwise, a response with a 404 status code is returned.


        If the webhook is not enabled, a response with a 400 status code is returned.


        If the request to the webhook fails, an email will be sent to all users of the consumer application with the Webhook Degradation contact preference enabled.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/WebhookId'
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '201':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
  /v2/webhooks/{id}/regenerate-key:
    post:
      operationId: RegenerateWebhookKey
      summary: Regenerate Webhook Key
      description: 'This operation allows you to regenerate the key for an existing webhook.


        Returns a new public key if the provided webhook `id` is valid. Otherwise, a response with a 404 status code is returned.


        For more details on our webhook solution, please read our webhooks guide.'
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/WebhookId'
      - $ref: '#/components/parameters/JwsSignature'
      responses:
        '200':
          description: Success
          headers:
            x-correlation-id:
              description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
              schema:
                type: string
              example: '2579248247516384065'
              required: true
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegenerateWebhookKeyResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      tags:
      - Webhook Management
components:
  schemas:
    NullableWebhookEnabledStatus:
      type:
      - boolean
      - 'null'
      description: 'Indicates whether the webhook is enabled or not.

        '
      example: true
    WebhookVersion:
      type: number
      description: "The version of API to subscribe to. \n\nA combination of the `url` and `version` must be unique within an environment (`sandbox` or `live`) for an account.\n"
      example: 2
      enum:
      - 2
      - 3
    ErrorResponseDetails:
      additionalProperties: true
      properties: {}
      type:
      - object
      - 'null'
      description: A map of additional details about the error. For example, a validation error might include a map of field names to error messages
      example:
        body.extraProperty:
          message: '"extraProperty" is an excess property and therefore is not allowed'
          value: extraProperty
    ForbiddenError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 403
          name:
            enum:
            - Forbidden
          message:
            example: You do not have permission to access this resource
    ValidationError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 422
          name:
            enum:
            - ValidationFailure
            - UnprocessableEntity
          message:
            example: Validation Failed
    RegenerateWebhookKeyResponse:
      properties:
        id:
          $ref: '#/components/schemas/WebhookId'
        publicKey:
          $ref: '#/components/schemas/WebhookPublicKey'
      required:
      - id
      - publicKey
    NullableUrl:
      type:
      - string
      - 'null'
      description: 'The url of webhook target.


        - <span style="font-size:14px; font-family:Inter;">Url must be `https`.</span>

        - <span style="font-size:14px; font-family:Inter;">A combination of the `version` and `url` must be unique within an environment (`sandbox` or `live`) for an account.</span>

        '
      example: https://www.your-webhook-handling-url.com/api/callback
    TooManyRequestsError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 429
          name:
            enum:
            - TooManyRequests
          message:
            example: Rate limiting has been applied
    WebhookEnabledStatus:
      type: boolean
      description: 'Indicates whether the webhook is enabled or not.

        '
      example: true
    InternalServerError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          name:
            enum:
            - InternalServerError
          status:
            enum:
            - 500
          message:
            example: Request failed with status code 500
    WebhookPublicKey:
      type: string
      description: 'The public key of the webhook.

        '
      example: '-----BEGIN PUBLIC KEY-----\nMvQI...SjAgEA-----END PUBLIC KEY-----

        '
    NullableWebhookName:
      type:
      - string
      - 'null'
      description: 'The name of the webhook.


        - <span style="font-size:14px; font-family:Inter;">Name must be unique within an environment (`sandbox` or `live`) for an account.</span>

        '
      example: My Webhook
      minLength: 1
      maxLength: 50
    WebhookCreatedDate:
      type: string
      format: date-time
      description: 'The date and time the webhook was created.

        '
      example: '2023-01-01T00:00:00.000Z'
    Webhook:
      properties:
        id:
          $ref: '#/components/schemas/WebhookId'
        name:
          $ref: '#/components/schemas/WebhookName'
        url:
          $ref: '#/components/schemas/Url'
        events:
          type: array
          uniqueItems: true
          description: '<span style="color:#f46d2a">**Attention**</span> \

            Please note that the allowed values for the **events** are

            extensible and new values can be added in the future without a

            major version change. Please ensure this is factored into your

            application code.


            Array of events which the webhook subscribes to. The events must be unique and cannot be empty. \

            The type of event. \

            `PAYMENT_PENDING` - payment has been created and is `PENDING` or `SCHEDULED`. \

            `PAYMENT_SUCCESSFUL` - payment has become `SUCCESSFUL`. \

            `PAYMENT_FAILED` - payment has been updated with a status of `REJECTED` or `FAILED`. \

            `TRANSACTION_SUCCESSFUL` - transaction has been created and successfully settled. \

            `TRANSACTION_EXPORT_SUCCESSFUL` - transaction export has completed successfully. \

            `TRANSACTION_EXPORT_FAILED` - transaction export has failed.

            '
          items:
            $ref: '#/components/schemas/WebhookEvent'
        version:
          $ref: '#/components/schemas/WebhookVersion'
        enabled:
          $ref: '#/components/schemas/WebhookEnabledStatus'
        publicKey:
          $ref: '#/components/schemas/WebhookPublicKey'
        createdDate:
          $ref: '#/components/schemas/WebhookCreatedDate'
      required:
      - id
      - name
      - url
      - events
      - version
      - enabled
      - publicKey
      - createdDate
    NotFoundError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 404
          name:
            enum:
            - NotFound
          message:
            example: The requested resource was not found
    WebhookName:
      type: string
      description: 'The name of the webhook.


        - <span style="font-size:14px; font-family:Inter;">Name must be unique within an environment (`sandbox` or `live`) for an account.</span>

        '
      example: My Webhook
      minLength: 1
      maxLength: 50
    WebhookId:
      type: string
      description: The id of the webhook
      example: cpNBTqwaiqem3mI72UEcP
    WebhookEvent:
      type: string
      description: '<span style="color:#f46d2a">**Attention**</span> \

        Please note that the allowed values for the **events** are

        extensible and new values can be added in the future without a

        major version change. Please ensure this is factored into your

        application code.


        The type of event. \

        `PAYMENT_PENDING` - payment has been created and is `PENDING` or `SCHEDULED`. \

        `PAYMENT_SUCCESSFUL` - payment has become `SUCCESSFUL`. \

        `PAYMENT_FAILED` - payment has been updated with a status of `REJECTED` or `FAILED`. \

        `TRANSACTION_SUCCESSFUL` - transaction has been created and successfully settled. \

        `TRANSACTION_EXPORT_SUCCESSFUL` - transaction export has completed successfully. \

        `TRANSACTION_EXPORT_FAILED` - transaction export has failed.

        '
      enum:
      - PAYMENT_PENDING
      - PAYMENT_SUCCESSFUL
      - PAYMENT_FAILED
      - TRANSACTION_SUCCESSFUL
      - TRANSACTION_EXPORT_SUCCESSFUL
      - TRANSACTION_EXPORT_FAILED
    MetaData:
      type: object
      properties:
        totalRecords:
          type: integer
          description: The total number of available records for the query.
          example: 100
        page:
          type: integer
          description: The page number returned for the query.
          example: 1
        pageSize:
          type: integer
          description: The number of records per page for the query.
          example: 20
      required:
      - totalRecords
      - page
      - pageSize
    BadRequestError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 400
          name:
            enum:
            - BadRequest
          message:
            example: The request has validation errors
    UnauthorizedError:
      allOf:
      - $ref: '#/components/schemas/ErrorResponseJSON'
      - properties:
          status:
            enum:
            - 401
          name:
            enum:
            - Unauthorized
          message:
            example: Missing x-jws-signature header
    ErrorResponseJSON:
      additionalProperties: false
      properties:
        status:
          type:
          - integer
          - 'null'
        name:
          type:
          - string
          - 'null'
        message:
          type:
          - string
          - 'null'
        details:
          $ref: '#/components/schemas/ErrorResponseDetails'
        code:
          type:
          - string
          - 'null'
          description: A unique code for the error, if available.
      type: object
    NullableWebhookVersion:
      type:
      - number
      - 'null'
      description: "The version of API to subscribe to. \n\nA combination of the `url` and `version` must be unique within an environment (`sandbox` or `live`) for an account.\n"
      example: 2
      enum:
      - 2
      - 3
    Url:
      type: string
      description: 'The url of webhook target.


        - <span style="font-size:14px; font-family:Inter;">Url must be `https`.</span>

        - <span style="font-size:14px; font-family:Inter;">A combination of the `version` and `url` must be unique within an environment (`sandbox` or `live`) for an account.</span>

        '
      example: https://www.your-webhook-handling-url.com/api/callback
  responses:
    '429':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsError'
      description: Too Many Requests
    '403':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenError'
      description: Forbidden
    '400':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
      description: Bad Request
    '500':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerError'
      description: Internal Server Error
    '401':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedError'
      description: Unauthorized
    '422':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
      description: Validation Failed
    '404':
      headers:
        x-correlation-id:
          description: A unique identifier assigned to each request, facilitating issue tracing. In the event that a problem arises with a request, this ID can be provided to Bank of London support team for assistance.
          schema:
            type: string
          example: '2579248247516384065'
          required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NotFoundError'
      description: Not Found
  parameters:
    JwsSignature:
      in: header
      name: x-jws-signature
      description: A JSON web signature representing signed content using JSON data structures. It contains contextual information from the request signed using a private key generated within Bank of London Developer Studio application.
      content:
        application/json:
          schema:
            type: string