Paystone Webhook Management API

The Webhook Management API from Paystone — 2 operation(s) for webhook management.

Operations 5

GET /webhooks Retrieve all webhooks. #
POST /webhooks Create a new webhook. #
GET /webhooks/{id} Retrieve a webhook by ID. #
PUT /webhooks/{id} Replace an existing webhook. #
PATCH /webhooks/{id} Update an existing webhook. #

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/paystone-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 email required.

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

OpenAPI Specification

paystone-webhook-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DataCandy Webhook Management API
  description: 'REST API for the DataCandy platform. Provides endpoints for managing merchants,

    clients, contacts, account types, transactions, webhooks, and portal configuration.


    All endpoints require a JWT bearer token unless stated otherwise.'
  version: 26.7.1.0-d9107e6
servers:
- url: /
  description: ''
security:
- JWT: {}
tags:
- name: Webhook Management
paths:
  /webhooks:
    get:
      operationId: api_webhooks_get_collection
      tags:
      - Webhook Management
      responses:
        200:
          description: List of webhooks.
          content:
            application/ld+json:
              schema:
                type: object
                description: Webhook.jsonld-webhook.read collection.
                allOf:
                - $ref: '#/components/schemas/HydraCollectionBaseSchema'
                - type: object
                  required:
                  - hydra:member
                  properties:
                    hydra:member:
                      type: array
                      items:
                        $ref: '#/components/schemas/Webhook.jsonld-webhook.read'
        403:
          description: Forbidden — token does not have the required role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 403
                  message:
                    type: string
                    example: Access Denied.
        401:
          description: Unauthorized — missing or invalid JWT token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  message:
                    type: string
                    example: JWT Token not found
      summary: Retrieve all webhooks.
      description: Retrieves the collection of Webhook resources.
      parameters:
      - name: page
        in: query
        description: The collection page number
        required: false
        deprecated: false
        schema:
          type: integer
          default: 1
        style: form
        explode: false
      - name: itemsPerPage
        in: query
        description: The number of items per page
        required: false
        deprecated: false
        schema:
          type: integer
          default: 30
          minimum: 0
          maximum: 30
        style: form
        explode: false
      security:
      - JWT: {}
    post:
      operationId: api_webhooks_post
      tags:
      - Webhook Management
      responses:
        201:
          description: Webhook created successfully.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Webhook.jsonld'
        400:
          description: Invalid input
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          links: null
        422:
          description: Validation error — see violations array for field-level details.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
            application/json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
        401:
          description: Unauthorized — missing or invalid JWT token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  message:
                    type: string
                    example: JWT Token not found
        403:
          description: Forbidden — token does not have the required role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 403
                  message:
                    type: string
                    example: Access Denied.
      summary: Create a new webhook.
      description: Creates a Webhook resource.
      parameters: {}
      requestBody:
        description: The new Webhook resource
        content:
          application/ld+json:
            schema:
              $ref: '#/components/schemas/Webhook-webhook.write.item'
        required: true
      security:
      - JWT: {}
  /webhooks/{id}:
    get:
      operationId: api_webhooks_id_get
      tags:
      - Webhook Management
      responses:
        200:
          description: Webhook retrieved successfully.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Webhook.jsonld-webhook.read_webhook.read.item'
        403:
          description: Forbidden — token does not have the required role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 403
                  message:
                    type: string
                    example: Access Denied.
        404:
          description: Not found — the requested resource does not exist.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        401:
          description: Unauthorized — missing or invalid JWT token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  message:
                    type: string
                    example: JWT Token not found
      summary: Retrieve a webhook by ID.
      description: Retrieves a Webhook resource.
      parameters:
      - name: id
        in: path
        description: Numeric webhook ID.
        required: true
        deprecated: false
        schema:
          type: integer
        style: simple
        explode: false
        example: 1
      security:
      - JWT: {}
    put:
      operationId: api_webhooks_id_put
      tags:
      - Webhook Management
      responses:
        200:
          description: Webhook replaced successfully.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Webhook.jsonld'
        400:
          description: Invalid input
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          links: null
        422:
          description: Validation error — see violations array for field-level details.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
            application/json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
        404:
          description: Not found — the requested resource does not exist.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        401:
          description: Unauthorized — missing or invalid JWT token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  message:
                    type: string
                    example: JWT Token not found
        403:
          description: Forbidden — token does not have the required role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 403
                  message:
                    type: string
                    example: Access Denied.
      summary: Replace an existing webhook.
      description: Replaces the Webhook resource.
      parameters:
      - name: id
        in: path
        description: Numeric webhook ID.
        required: true
        deprecated: false
        schema:
          type: integer
        style: simple
        explode: false
        example: 1
      requestBody:
        description: The updated Webhook resource
        content:
          application/ld+json:
            schema:
              $ref: '#/components/schemas/Webhook-webhook.write.item'
        required: true
      security:
      - JWT: {}
    patch:
      operationId: api_webhooks_id_patch
      tags:
      - Webhook Management
      responses:
        200:
          description: Webhook updated successfully.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Webhook.jsonld'
        400:
          description: Invalid input
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          links: null
        422:
          description: Validation error — see violations array for field-level details.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
            application/json:
              schema:
                $ref: '#/components/schemas/ConstraintViolation'
        404:
          description: Not found — the requested resource does not exist.
          content:
            application/ld+json:
              schema:
                $ref: '#/components/schemas/Error.jsonld'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        401:
          description: Unauthorized — missing or invalid JWT token.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  message:
                    type: string
                    example: JWT Token not found
        403:
          description: Forbidden — token does not have the required role.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 403
                  message:
                    type: string
                    example: Access Denied.
      summary: Update an existing webhook.
      description: Updates the Webhook resource.
      parameters:
      - name: id
        in: path
        description: Numeric webhook ID.
        required: true
        deprecated: false
        schema:
          type: integer
        style: simple
        explode: false
        example: 1
      requestBody:
        description: The updated Webhook resource
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Webhook-webhook.write.item.jsonMergePatch'
        required: true
      security:
      - JWT: {}
components:
  schemas:
    Error:
      type: object
      description: A representation of common errors.
      properties:
        title:
          readOnly: true
          description: A short, human-readable summary of the problem.
          type:
          - string
          - 'null'
        detail:
          readOnly: true
          description: A human-readable explanation specific to this occurrence of the problem.
          type:
          - string
          - 'null'
        status:
          type:
          - number
          - 'null'
          examples:
          - 404
          default: 400
        instance:
          readOnly: true
          description: A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
          type:
          - string
          - 'null'
        type:
          readOnly: true
          description: A URI reference that identifies the problem type
          type: string
    AccessGroup.jsonld:
      type: object
      properties:
        id:
          readOnly: true
          type: integer
        name:
          type: string
        banners:
          type: array
          items:
            $ref: '#/components/schemas/Banner.jsonld'
        merchants:
          type: array
          items:
            $ref: '#/components/schemas/Client.Merchant.jsonld'
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
      required:
      - creationDate
      - modificationDate
    Event.jsonld:
      type: object
      properties:
        id:
          readOnly: true
          type: integer
        webhook:
          type: string
          format: iri-reference
          example: https://example.com/
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        type:
          readOnly: true
          type: string
          enum:
          - contact
          - transaction
        event:
          anyOf:
          - type: string
            enum:
            - created
            - modified
            - unsubscribed
            - anonymized
          - type: string
            enum:
            - loyalty.accumulation
            - loyalty.add
            - loyalty.complete_cancel
            - loyalty.item_cancel
            - loyalty.partial_cancel
            - loyalty.redeem
            - loyalty.subtract
            - loyalty.balance_import
            - loyalty.reward_earned
            - loyalty.reward_redeem
            - loyalty.reward_expired
            - prepaid.complete_cancel
            - prepaid.partial_cancel
            - prepaid.balance_import
            - prepaid.subtract
            - prepaid.card_empty
            - prepaid.redeem
            - prepaid.redeem_unlock
            - prepaid.add
            - prepaid.activation
            - prepaid.increment
            - prepaid.credit_note_activation
            - prepaid.credit_note_increment
    Event.jsonld-webhook.read_webhook.read.item:
      type: object
    Webhook-webhook.write.item.jsonMergePatch:
      type: object
      description: 'Webhooks let you subscribe to certain events and be notified '
      properties:
        name:
          minLength: 2
          type: string
        active:
          default: true
          type: boolean
        callbackUrl:
          format: uri
          externalDocs:
            url: https://schema.org/url
          type: string
        secretToken:
          type:
          - string
          - 'null'
        events:
          type: array
          items:
            $ref: '#/components/schemas/Event-webhook.write.item'
        merchants:
          type: array
          items:
            $ref: '#/components/schemas/Client.Merchant-webhook.write.item'
    HydraCollectionBaseSchemaNoPagination:
      type: object
      properties:
        hydra:totalItems:
          type: integer
          minimum: 0
        hydra:search:
          type: object
          properties:
            '@type':
              type: string
            hydra:template:
              type: string
            hydra:variableRepresentation:
              type: string
            hydra:mapping:
              type: array
              items:
                type: object
                properties:
                  '@type':
                    type: string
                  variable:
                    type: string
                  property:
                    type:
                    - string
                    - 'null'
                  required:
                    type: boolean
    Client.Merchant.jsonld:
      type: object
      properties:
        parentMerchant:
          anyOf:
          - $ref: '#/components/schemas/Client.Merchant.jsonld'
          - type: 'null'
        name:
          maxLength: 128
          type:
          - string
          - 'null'
        storeNumber:
          maxLength: 20
          type:
          - string
          - 'null'
        lang:
          type: string
        active:
          default: y
          type: string
        compensation:
          default: y
          type: string
        chargeAdministrativeFees:
          type: boolean
        isSalesLocation:
          type: boolean
        institutionNumber:
          maxLength: 10
          type:
          - string
          - 'null'
        companyName:
          maxLength: 80
          type:
          - string
          - 'null'
        accountNumber:
          maxLength: 15
          type:
          - string
          - 'null'
        transitNumber:
          maxLength: 10
          type:
          - string
          - 'null'
        email:
          maxLength: 45
          format: email
          externalDocs:
            url: https://schema.org/email
          type:
          - string
          - 'null'
        address:
          maxLength: 255
          type:
          - string
          - 'null'
        address2:
          maxLength: 255
          type:
          - string
          - 'null'
        city:
          maxLength: 255
          type:
          - string
          - 'null'
        phone:
          maxLength: 40
          type:
          - string
          - 'null'
        fax:
          maxLength: 30
          type:
          - string
          - 'null'
        postalCode:
          maxLength: 255
          type:
          - string
          - 'null'
        countryId:
          minLength: 2
          maxLength: 2
          type:
          - string
          - 'null'
        regionId:
          minLength: 2
          maxLength: 2
          type:
          - string
          - 'null'
        trxDollarToPointNumerator:
          minimum: 0
          maximum: 100
          default: 0
          type: integer
        trxDollarToPointDenominator:
          minimum: 0
          maximum: 100
          default: 0
          type: integer
        trxPointToDollarNumerator:
          minimum: 0
          maximum: 100
          default: 0
          type: integer
        trxPointToDollarDenominator:
          minimum: 0
          maximum: 100
          default: 0
          type: integer
        timezone:
          maxLength: 30
          type: string
        externalReferenceId:
          maxLength: 20
          type:
          - string
          - 'null'
        useShift:
          default: y
          type: string
        contactName:
          maxLength: 255
          type:
          - string
          - 'null'
        lastTerminalInitDate:
          externalDocs:
            url: https://schema.org/DateTime
          type:
          - string
          - 'null'
          format: date-time
        geomPoint:
          anyOf:
          - $ref: '#/components/schemas/GeomPoint.jsonld'
          - type: 'null'
        banner:
          anyOf:
          - $ref: '#/components/schemas/Banner.jsonld'
          - type: 'null'
        paymentTerminalAcquirerId:
          type:
          - integer
          - 'null'
        posManufacturerId:
          type:
          - integer
          - 'null'
        type:
          type: string
        merchantSubcategories:
          type: array
          items:
            $ref: '#/components/schemas/MerchantSubcategory.jsonld'
        caaLocationCode:
          anyOf:
          - $ref: '#/components/schemas/CaaLocationcode.jsonld'
          - type: 'null'
        creationDate:
          externalDocs:
            url: https://schema.org/DateTime
          type: string
          format: date-time
        modificationDate:
          externalDocs:
            url: https://schema.org/DateTime
        accessGroups:
          type: array
          items:
            $ref: '#/components/schemas/AccessGroup.jsonld'
        redacted:
          default: false
          type: boolean
        id:
          type: integer
        hashedPassword: null
        clearPassword:
          writeOnly: true
          type: string
        systemLogableId:
          readOnly: true
          type: string
        systemLogableType:
          readOnly: true
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
      required:
      - name
      - storeNumber
      - lang
      - active
      - compensation
      - chargeAdministrativeFees
      - isSalesLocation
      - useShift
      - creationDate
      - modificationDate
    Client.Merchant.jsonld-webhook.read_webhook.read.item:
      type: object
    BannerTranslation.jsonld:
      type: object
      properties:
        id:
          readOnly: true
          type: integer
        name:
          type: string
        websiteUrl:
          format: uri
          externalDocs:
            url: https://schema.org/url
          type: string
        customerServiceEmail:
          format: email
          externalDocs:
            url: https://schema.org/email
          type:
          - string
          - 'null'
        customerServicePhoneNumber:
          type:
          - string
          - 'null'
        imageId:
          type:
          - integer
          - 'null'
        translatable:
          anyOf:
          - $ref: '#/components/schemas/Banner.jsonld'
          - type: 'null'
        locale:
          maxLength: 2
          type: string
        translatableEntityClass:
          readOnly: true
        empty:
          readOnly: true
          type: boolean
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
      required:
      - locale
    HydraItemBaseSchema:
      type: object
      properties:
        '@context':
          oneOf:
          - type: string
          - type: object
            properties:
              '@vocab':
                type: string
              hydra:
                type: string
                enum:
                - http://www.w3.org/ns/hydra/core#
            required:
            - '@vocab'
            - hydra
            additionalProperties: true
        '@id':
          type: string
        '@type':
          type: string
      required:
      - '@id'
      - '@type'
    MerchantCategory.jsonld:
      type: object
      properties:
        exclusive:
          default: '1'
          type: boolean
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        id:
          readOnly: true
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
    HydraCollectionBaseSchema:
      allOf:
      - $ref: '#/components/schemas/HydraCollectionBaseSchemaNoPagination'
      - type: object
        properties:
          hydra:view:
            type: object
            properties:
              '@id':
                type: string
                format: iri-reference
              '@type':
                type: string
              hydra:first:
                type: string
                format: iri-reference
              hydra:last:
                type: string
                format: iri-reference
              hydra:previous:
                type: string
                format: iri-reference
              hydra:next:
                type: string
                format: iri-reference
            example:
              '@id': string
              '@type': string
              hydra:first: string
              hydra:last: string
              hydra:previous: string
              hydra:next: string
    Collection.jsonld:
      type: object
      properties:
        empty:
          readOnly: true
        keys:
          readOnly: true
        values:
          readOnly: true
        iterator:
          readOnly: true
    ConstraintViolation:
      type: object
      description: Unprocessable entity
      properties:
        status:
          default: 422
          type: integer
        violations:
          type: array
          items:
            type: object
            properties:
              propertyPath:
                type: string
                description: The property path of the violation
              message:
                type: string
                description: The message associated with the violation
              code:
                type: string
                description: The code of the violation
              hint:
                type: string
                description: An extra hint to understand the violation
              payload:
                type: object
                additionalProperties: true
                description: The serialized payload of the violation
            required:
            - propertyPath
            - message
        detail:
          readOnly: true
          type: string
        type:
          readOnly: true
          type: string
        title:
          readOnly: true
          type:
          - string
          - 'null'
        instance:
          readOnly: true
          type:
          - string
          - 'null'
    MerchantSubcategory.jsonld:
      type: object
      properties:
        externalReference:
          type:
          - string
          - 'null'
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        merchantCategory:
          anyOf:
          - $ref: '#/components/schemas/MerchantCategory.jsonld'
          - type: 'null'
        merchants:
          type: array
          items:
            $ref: '#/components/schemas/Client.Merchant.jsonld'
        id:
          readOnly: true
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
    Client.Merchant-webhook.write.item:
      type: object
    Event.jsonld-webhook.read:
      type: object
    CaaLocationcode.jsonld:
      type: object
      properties:
        caaLocationcodeId:
          readOnly: true
          type: string
        merchant:
          $ref: '#/components/schemas/Client.Merchant.jsonld'
        id:
          readOnly: true
        properties:
          writeOnly: true
          type: array
          items:
            type:
            - string
            - 'null'
        propertyValue:
          writeOnly: true
        validationName:
          readOnly: true
        entityTranslationPrefix:
          readOnly: true
          type: string
        entitySearchValue:
          readOnly: true
          type: string
        dbTranslationKey:
          readOnly: true
        translationKeyPrefix:
          readOnly: true
          type:
          - string
          - 'null'
    Webhook.jsonld:
      allOf:
      - $ref: '#/components/schemas/HydraItemBaseSchema'
      - type: object
        properties:
          id:
            readOnly: true
            type: integer
          name:
            minLength: 2
            type: string
          active:
            default: true
            type: boolean
          callbackUrl:
            format: uri
            externalDocs:
              url: https://schema.org/url
            type: string
          secretToken:
            type:
            - string
            - 'null'
          events:
            type: array
            items:
              $ref: '#/components/schemas/Event.jsonld'
          merchants:
            type: array
            items:
              $ref: '#/components/schemas/Client.Merchant.jsonld'
          creationDate:
            type: string
            format: date-time
          modificationDate:
            type: string
            format: date-time
        required:
        - name
        - callbackUrl
      description: 'Webhooks let you subscribe to certain events and be notified '
    Banner.jsonld:
      type: object
      properties:
        id:
          readOnly: true
          type: integer
        externalReference:
          type:
          - string
          - 'null'
        creationDate:
          type:
          - str

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paystone/refs/heads/main/openapi/paystone-webhook-management-api-openapi.yml