Tackle.io Webhooks API

Operations for Webhooks

Operations 7

POST /v1/webhooks Create or Update a Webhook #
GET /v1/webhooks Get All Webhooks for Vendor #
POST /v1/webhooks/test Test a Webhook #
DELETE /v1/webhooks/vendor Delete a Vendor-Level Webhook #
GET /v1/webhooks/vendor Get a Vendor-Level Webhook #
DELETE /v1/webhooks/product/{productid} Delete a Product-Level Webhook #
GET /v1/webhooks/product/{productid} Get a Product-Level 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/tackleio-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 email required.

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

OpenAPI Specification

tackleio-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tackle Public Contracts Authentication Webhooks API
  description: "Customer-facing read API for cloud marketplace contracts that Tackle has\ningested for your Tackle account.\n\nThe response shape is a stable projection of the underlying\ncontract document. It is intended to be safe to consume long-term: fields\nwill be added over time, but documented fields will not be removed without\ndeprecation notice.\n\n## Authentication\n\nEvery request must include a valid Tackle JWT in the `Authorization`\nheader (`Authorization: Bearer <token>`). Machine-to-machine (MTM) tokens\nissued for your Tackle account are accepted. The token scopes every\nresponse to the account it represents.\n\n## Pagination\n\n`GET /api/contracts` is the only paginated endpoint. Pagination uses an\nopaque `cursor` query parameter:\n\n1. The first request omits `cursor`.\n2. If more pages exist, the response includes a `next` field. Pass that\n   value verbatim back as `cursor` on the next request.\n3. The last page omits `next`.\n\nCursors are opaque tokens. Do not parse, modify, or persist them across\nschema changes — request a fresh page from the start instead.\n"
  version: 1.0.0
servers:
- url: https://contracts.tackle.io
  description: Production
security:
- tackleJwt: []
tags:
- name: Webhooks
  description: Operations for Webhooks
paths:
  /v1/webhooks:
    parameters: []
    post:
      tags:
      - Webhooks
      summary: Create or Update a Webhook
      description: Create or update an existing webhook to receive order, private offer, and metering events as they happen
      operationId: v1-create-or-update-webhook
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhooksRequest'
            examples:
              example-1-header_api_key_clouds:
                value:
                  url: http://example.com
                  auth:
                    auth_type: header_api_key
                    auth_header_name: header_api_key_authorization
                    api_key: s0m3-3x4mp1e-4p1-k3y
                  filters:
                    supported_clouds:
                    - aws
                  private_offer_events_enabled: false
              example-2-basic_auth_product_id:
                value:
                  url: http://example.com
                  auth:
                    auth_type: basic
                    username: exampleUsername12345
                    password: securePassword67890
                  filters:
                    productid: 12345-abcdef-67890
                  private_offer_events_enabled: false
              example-3-oauth2-auth:
                value:
                  url: http://example.com
                  auth:
                    auth_type: oauth2
                    oauth2:
                      client_id: client-id-example
                      client_secret: client-secret-example
                      token_url: https://www.example.com/oauth-token
                  filters:
                    supported_clouds:
                    - aws
                    - azure
                    - gcp
                    private_offer_events_enabled: false
      security:
      - BearerAuth: []
      callbacks:
        onEvent:
          '{$request.body#/url}':
            post:
              requestBody:
                description: Webhook information; to receive order and private offer events as they happen
                content:
                  application/json:
                    schema:
                      oneOf:
                      - $ref: '#/components/schemas/AWSPrivateOfferCallback'
                      - $ref: '#/components/schemas/AzurePrivateOfferCallback'
                      - $ref: '#/components/schemas/GCPPrivateOfferCallback'
                      - $ref: '#/components/schemas/RedhatPrivateOfferCallback'
                      - $ref: '#/components/schemas/AWSNewOrderCallback'
                      - $ref: '#/components/schemas/AzureNewOrderCallback'
                      - $ref: '#/components/schemas/GCPNewOrderCallback'
                      - $ref: '#/components/schemas/RedhatNewOrderCallback'
              security:
              - BasicAuthCallback: []
              - HeaderApiKeyAuthCallback: []
              - Oauth2AuthCallback: []
              responses:
                '200':
                  description: Returns a `200` code if it accepts the callback
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/ResponseStatusCode'
                        properties:
                          id:
                            type: string
                '400':
                  description: Returns a `400` code if there is an error. Provide error information
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/ResponseStatusCode'
                        properties:
                          id:
                            type: string
    get:
      tags:
      - Webhooks
      summary: Get All Webhooks for Vendor
      description: Get all webhook configurations for a vendor including vendor-level and product-level webhooks
      operationId: v1-get-all-webhooks
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-GET-All'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
      parameters: []
      security:
      - BearerAuth: []
  /v1/webhooks/test:
    post:
      tags:
      - Webhooks
      summary: Test a Webhook
      description: Verify your webhooks by sending a test payload to the configured webhook URL
      operationId: v1-test-webhook
      security:
      - BearerAuth: []
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-Test'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized-MTM'
        '403':
          $ref: '#/components/responses/403-Forbidden'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhooksTestRequest'
            examples:
              example-test-request-with-forward-to-url:
                value:
                  forward_to_url: http://example.com
                  event_type: order_modified
                  productid: 12345-abcdef-67890
              example-test-request:
                value:
                  event_type: order_modified
                  productid: 12345-abcdef-67890
  /v1/webhooks/vendor:
    delete:
      tags:
      - Webhooks
      summary: Delete a Vendor-Level Webhook
      description: Delete an existing vendor-level webhook
      operationId: v1-delete-webhook
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-Deleted-Vendor'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/Webhooks_404-Not-Found-Webhooks'
      security:
      - BearerAuth: []
    get:
      tags:
      - Webhooks
      summary: Get a Vendor-Level Webhook
      operationId: v1-get-vendor-webhook
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-GET'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/Webhooks_404-Not-Found-Webhooks'
      description: Get your current vendor-level webhook configuration
      security:
      - BearerAuth: []
  /v1/webhooks/product/{productid}:
    parameters:
    - $ref: '#/components/parameters/productid_path'
    delete:
      tags:
      - Webhooks
      summary: Delete a Product-Level Webhook
      description: Delete an existing webhook for a given product
      operationId: v1-delete-product-webhook
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-Deleted-Product'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/Webhooks_404-Not-Found-Webhooks'
      security:
      - BearerAuth: []
    get:
      tags:
      - Webhooks
      summary: Get a Product-Level Webhook
      operationId: v1-get-product-webhook
      responses:
        '200':
          $ref: '#/components/responses/Webhooks_200-OK-Webhooks-GET'
        '400':
          $ref: '#/components/responses/400-Bad-Request'
        '401':
          $ref: '#/components/responses/401-Unauthorized'
        '403':
          $ref: '#/components/responses/403-Forbidden'
        '404':
          $ref: '#/components/responses/Webhooks_404-Not-Found-Webhooks'
      description: Get your current webhook configuration for a given product
      security:
      - BearerAuth: []
components:
  schemas:
    PrivateOfferEventsEnabled:
      type: boolean
      title: PrivateOfferEventsEnabled
      description: 'This setting registers webhooks for private offer events. Note: This setting can only be configured on a vendor level webhook but applies to all webhooks, including the vendor level webhook and all product level webhooks'
      default: false
    PrivateOfferId:
      type: string
    PrivateOfferMetadata:
      type: object
      description: Contains information for a private offer associated with the subscription
      properties:
        renewal:
          type: boolean
          description: Whether the private offer has a renewal
        offer_expiration_at:
          type: string
          description: When the private offer expires.
        pricing:
          description: Pricing information for private offer.
          oneOf:
          - $ref: '#/components/schemas/AwsPricing'
          - $ref: '#/components/schemas/AzureGcpPricing'
    ResponseStatusCode:
      title: ResponseStatusCode
      description: Client's status code from executing test webhook
      type: integer
      example: 200
    WebhooksUpsertResponse:
      title: WebhooksUpsertResponse
      type: object
      properties:
        data:
          type: object
          properties:
            url:
              $ref: '#/components/schemas/WebhookUrl'
            auth_type:
              $ref: '#/components/schemas/AuthType'
            filters:
              $ref: '#/components/schemas/WebhooksRequestFilters'
            private_offer_events_enabled:
              $ref: '#/components/schemas/PrivateOfferEventsEnabled'
            metering_events_enabled:
              $ref: '#/components/schemas/MeteringEventsEnabled'
          required:
          - url
          - auth_type
          - filters
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
      - metadata
    SupportedCloudsFilter:
      title: SupportedCloudsFilter
      type: object
      properties:
        supported_clouds:
          type: array
          items:
            $ref: '#/components/schemas/Clouds'
      required:
      - supported_clouds
    WebhookUrlResponse:
      type:
      - string
      - 'null'
      description: A valid URL for the endpoint you created to receive Tackle events
      format: uri
      example: https://www.example.com
    AwsMarketplaceData:
      type: object
      properties:
        data:
          type: object
          properties:
            CustomerAWSAccountId:
              title: CustomerAWSAccountId
              type: string
              description: AWS account ID associated to the customerid for the individual customer
              example: example-account-id
      description: Marketplace data specific to AWS
      title: AWS
    AwsCloud:
      type: string
      description: AWS Cloud
      default: aws
      enum:
      - aws
      example: aws
    DeleteWebhookResponse:
      title: DeleteWebhookResponse
      type: object
      properties:
        deleted:
          type: boolean
      required:
      - deleted
    Oauth2:
      title: Oauth2Auth
      type: object
      properties:
        auth_type:
          type: string
          default: oauth2
          description: This auth-type is for oauth2 client credentials flow. We will use the client_id and client_secret to call the token_url to get an access token.
          enum:
          - oauth2
        oauth2:
          type: object
          required:
          - client_id
          - client_secret
          - token_url
          properties:
            client_id:
              type: string
              minLength: 1
            client_secret:
              type: string
              minLength: 1
            token_url:
              type: string
              minLength: 1
      required:
      - auth_type
    GroupId:
      type: string
    WebhooksRequestFilters:
      description: An object with either a valid `productid` or `supported_clouds`
      oneOf:
      - $ref: '#/components/schemas/ProductIdFilter'
      - $ref: '#/components/schemas/SupportedCloudsFilter'
    VendorId:
      type: string
      description: Tackle issued identifier for the Vendor
    SubscriptionId:
      type:
      - string
      - 'null'
      description: Subscription Id
      example: 5fd2a7e8908e88888c7f0e71
      minLength: 0
    GcpCustomerId:
      type: string
      description: GCP External Account ID
      example: E-ABC2-D330-E2FG-H2Q2
      minLength: 0
    AzureCustomerId:
      type: string
      description: Azure Subscription ID
      example: 1b3gs3f4-2794-abcd-3fa3-063ga0s3t3re
      minLength: 0
    RedHatEntitlement:
      type: object
      description: A purchase entitlement from Red Hat Marketplace
      properties:
        subscription_id:
          type: string
        edition_id:
          type: string
          description: Unique ID of the product's edition being subscribed to
        edition_name:
          type: string
          description: Readable name for the edition
        attributes:
          type: object
          description: Optional customer properties
        term:
          type: integer
          description: The duration of a single subscription term
        term_unit:
          $ref: '#/components/schemas/RedHatTermUnit'
        term_end_date:
          type: string
          description: The new term end date in format YYYY-MM-DD
          format: date
          example: '2021-11-02'
        type:
          $ref: '#/components/schemas/RedHatSubscriptionType'
        renew_type:
          $ref: '#/components/schemas/RedHatSubscriptionRenewType'
      required:
      - subscription_id
      - edition_id
      - edition_name
      - attributes
      - term
      - term_unit
      - term_end_date
      - type
      - renew_type
    Clouds:
      anyOf:
      - $ref: '#/components/schemas/AwsCloud'
      - $ref: '#/components/schemas/GcpCloud'
      - $ref: '#/components/schemas/AzureCloud'
      - $ref: '#/components/schemas/RedHatCloud'
      description: A string identifying a cloud marketplace
    ProductIdFilter:
      title: ProductIdFilter
      type: object
      properties:
        productid:
          $ref: '#/components/schemas/ProductId'
      required:
      - productid
    GcpProductId:
      type: string
      description: GCP Solution ID
      example: tackle-for-gcp
      minLength: 0
    AzurePrivateOfferCallback:
      description: Link to information on Private Offer payload variables https://developers.tackle.io/reference/private-offer-payloads
      type: object
      properties:
        group_id:
          type: string
          example: 2h58473p-c70i-1234-9d7b-7we9585e2c9w
        created_at:
          type: string
          example: '2021-11-09T16:29:24.707456+00:00'
        actor:
          type: object
          properties:
            email:
              type: string
              example: john.smith@example.com
            name:
              type: string
              example: John Smith
            picture:
              type: string
              example: https://www.example.com/jpeg
            user_id:
              type: string
              example: abc123
        customer_id:
          type: string
          example: 1b3gs3f4-2794-abcd-3fa3-062fa0s3t3re
        destination:
          type: string
          example: callback
        event_type:
          type: string
          example: private_offer_created
        extra_data:
          type: object
        marketplace:
          type: string
          example: azure
        offerid:
          type: string
          example: 00-000-apitest-private
        po_id:
          type: string
          example: 2h58473p-c70i-1234-9d7b-7we9585e2c9w
        private_offer_metadata:
          type: object
          properties:
            buyers:
              type: array
              items:
                type: object
                properties:
                  email_address:
                    type: string
                    example: john.smith@example.com
                  full_name:
                    type: string
                    example: John Smith
                  title:
                    type: string
                    example: Example Title
            enable_zero_dollar_prices:
              type: boolean
            eula:
              type: object
              properties:
                files:
                  type: array
                  items:
                    type: string
            offer_metadata:
              type: object
            pre_registration_details:
              type: object
              properties:
                Company:
                  type: string
                  example: Example Company
            pricing:
              type: object
              properties:
                dimensions:
                  type: array
                  items:
                    type: object
                    properties:
                      dimension_value:
                        type: string
                        example: 0
                      name:
                        type: string
                        example: 00-000-apitest-private
                      price:
                        type: string
                        example: 0
                      quantity:
                        type: integer
                        format: int32
                        example: 1
                duration:
                  type: string
                  example: Annual
                marketplace_fee:
                  type: string
                  example: 0
                monthly_contract_value:
                  type: string
                  example: 0
                net_contract_value:
                  type: string
                  example: 0
                show_on_email:
                  type: boolean
                total_contract_value:
                  type: string
                  example: 0
                version:
                  type: string
                  example: simple-pricing-v1-azure
            renewal:
              type: boolean
        productid:
          type: string
          example: example-product
        source:
          type: string
          example: po_url
        test:
          type: boolean
        vendorid:
          type: string
          example: 12345
    GcpEntitlement:
      type: object
      description: A purchase entitlement from GCP Marketplace
      properties:
        account:
          type: string
          description: The resource name of the account that this entitlement is based on, if any
        consumers:
          type: array
          description: The resources using this entitlement, if applicable
          items:
            type: string
        createTime:
          type: string
          format: date-time
          example: '2020-10-02T15:01:23.045123456Z'
        messageToUser:
          type: string
          description: Provider-supplied message that is displayed to the end user
        name:
          type: string
          description: The resource name of the entitlement
        newPendingPlan:
          type: string
          description: The identifier of the pending new plan, required if the product has plans and the entitlement has a pending plan change
        offer:
          type: string
        offerEndTime:
          type: string
          format: date-time
        plan:
          type: string
          description: The identifier of the plan that was procured, required if the product has plans
        product:
          type: string
          description: The identifier of the product that was procured
        provider:
          type: string
          description: The identifier of the service provider that this entitlement was created against
        productExternalName:
          type: string
        quoteExternalName:
          type: string
        state:
          type: string
          description: The state of the entitlement
        subscriptionEndTime:
          type: string
        updateTime:
          type: string
          format: date-time
          example: '2019-10-25T21:38:20.865Z'
        usageReportingId:
          type: string
          description: The consumerId to use when reporting usage through the Service Control API. See the consumerId field at Reporting Metrics for more details. This field is present only if the product has usage-based billing configured.
      required:
      - account
      - createTime
      - name
      - plan
      - product
      title: GcpEntitlement
    RedHatSubscriptionType:
      type: string
      description: Type of the subscription
      enum:
      - TRIAL
      - FREE
      - PURCHASE
      example: TRIAL
    AzureCloud:
      type: string
      description: Azure Cloud
      default: azure
      enum:
      - azure
      example: azure
    AuthPayload:
      oneOf:
      - $ref: '#/components/schemas/BasicAuth'
      - $ref: '#/components/schemas/HeaderApiKeyAuth'
      - $ref: '#/components/schemas/Oauth2'
      description: An object describing the type of authentication used by your Webhook URL
    GetWebhooksResponseList:
      title: GetWebhooksResponseList
      type: array
      items:
        $ref: '#/components/schemas/WebhooksGetAllResponseObject'
    WebhookTestExecutionResponseRequest:
      oneOf:
      - $ref: '#/components/schemas/WebhookTestExecutionResponseRequestOrder'
      - $ref: '#/components/schemas/WebhookTestExecutionResponseRequestPO'
    AzureEntitlement:
      type: object
      description: A purchase entitlement from Azure Marketplace
      properties:
        plan:
          type: string
        quantity:
          type: integer
        subscription_id:
          type: string
        subscription_name:
          type: string
        offer_id:
          type: string
      required:
      - plan
      - quantity
      - subscription_id
      - subscription_name
      - offer_id
    RedhatPrivateOfferCallback:
      description: Link to information on Private Offer payload variables https://developers.tackle.io/reference/private-offer-payloads
      type: object
      properties:
        cloud:
          type: string
          example: redhat
        metadata:
          type: object
          properties:
            buyers:
              type: array
              items:
                type: object
                properties:
                  title:
                    type: string
                    example: Sr. Test
                  full_name:
                    type: string
                    example: Someone That Buys
                  email_address:
                    type: string
                    example: test@test.com
            renewal:
              type: boolean
            eula:
              type: object
              properties:
                files:
                  type: array
                  items:
                    type: object
            enable_zero_dollar_prices:
              type: boolean
            offer_metadata:
              type: object
              properties:
                type:
                  type: object
                RHM Account ID:
                  type: string
                  example: 123456789
            pre_registration_details:
              type: object
              properties:
                Company:
                  type: string
                  example: Test
            offer_expiration_at:
              type: string
              example: '2022-05-31T00:00:00.000Z'
            pricing:
              type: object
              properties:
                dimensions:
                  type: array
                  items:
                    type: string
        po_ref:
          type: string
          example: redhat#DEMOVENDOR1-redhat-1603121145#None#None#6894afad-1cc2-40fc-8d96-b7f96699d95c
        po_id:
          type: string
          example: 6894afad-1cc2-40fc-8d96-b7f96699d95c
        activities:
          type: array
          items:
            type: object
            properties:
              created_at:
                type: string
                example: '2022-05-27T18:03:37.589597+00:00'
              metadata:
                type: object
                properties:
                  user:
                    type: object
                    properties:
                      name:
                        type: string
                        example: John Smith
                      email:
                        type: string
                        example: john.smith@example.com
                      buyer:
                        type: boolean
              user_id:
                type: string
                example: abc123
              slug:
                type: string
                example: vendor-created-offer
              activity_type:
                type: string
                example: PO
        vendor_id:
          type: string
          example: DEMOVENDOR1
        users_to_notify:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                example: john smith
              contact_type:
                type: string
                example: auth0
        created_at:
          type: string
          example: '2022-05-27T18:03:37.590560+00:00'
        product_ref:
          type: string
          example: example-redhat-1603100000
        last_modified_at:
          type: string
          example: '2022-05-27T18:03:37.589504+00:00'
    ProductId:
      description: Cloud Marketplace issued ID for a product
      example: abcd-1234-efgh-5678
      anyOf:
      - $ref: '#/components/schemas/AwsProductId'
      - $ref: '#/components/schemas/GcpProductId'
      - $ref: '#/components/schemas/AzureProductId'
      - $ref: '#/components/schemas/RedHatProductId'
    GetWebhooksResponse:
      title: GetWebhooksResponse
      type: object
      properties:
        data:
          $ref: '#/components/schemas/GetWebhooksResponseList'
        metadata:
          $ref: '#/components/schemas/Metadata'
      required:
      - data
      - metadata
    RedhatNewOrderCallback:
      description: Link to New Offer payload variables https://developers.tackle.io/reference/payload-variables
      type: object
      properties:
        event_type:
          type: string
          example: order_created
        vendorid:
          type: string
          example: U9T21A
        productid:
          type: string
          example: d3m012b345678cd9e1234f56gh78ij90
        customerid:
          type: string
          example: d3m023c9d3a15b420c4ab123
        marketplace:
          type: string
          example: redhat
        entitlements:
          type: array
          items:
            type: object
            properties:
              subscription_id:
                type: string
                example: MOCK-CUSTOMER
              edition_id:
                type: string
                example: test_edition_123123-12321-5455123
              edition_name:
                type: string
                example: Test Edition 1
              attributes:
                type: object
                properties:
                  part1:
                    type: integer
                    format: int32
                    example: 10
                  sku1:
                    type: integer
                    format: int32
                    example: 50
                  part2:
                    type: string
                    example: PREMIUM
                  sku2:
                    type: integer
                    format: int32
                    example: 50
              term:
                type: integer
                format: int32
                example: 12
              term_unit:
                type: string
                example: MONTHS
              term_end_date:
                type: string
                example: '2022-10-18T11:34:41.062665'
              type:
                type: string
                example: PURCHASE
              renew_type:
                type: string
                example: ORIGINAL_TERM
        properties:
          type: object
          properties:
            Company:
              type: string
              example: Tackle
            Company Address:
              type: string
              example: 104 S. Capitol Blvd.
            Company Website:
              type: string
              example: https://tackle.io
            Email Address:
              type: string
              example: support@tackle.io
            Full Name:
              type: string
              example: Jane Doe
            Phone Number:
              type: string
              example: 1234567890
        offerid:
          type: string
          example: offer-abcdefghijkl1
        contract_metadata:
          type: object
          properties:
            key:
              type: string
              example: value
        private_offer_metadata:
          type: object
          properties:
            buyers:
              type: array
              items:
                type: object
                properties:
                  full_name:
                    type: string
                    example: Example Person
                  email_address:
                    type: string
                    example: example-email@example.com
                  title:
                    type: string
                    example: CEO
            offer_metadata:
              type: object
            renewal:
              type: boolean
            eula:
              type: object
              properties:
                files:
                  type: array
                  items:
                    type: string
            enable_zero_dollar_prices:
              type: boolean
            offer_expiration_at:
              type: string
              format: date-time
              example: '2022-08-12T12:00:00+00:00'
            pricing:
              type: object
        is_free_trial:
          $ref: '#/components/schemas/IsFreeTrial'
        tackle_subscription_id:
          type: string
          example: 52fZSV7JbMI
        marketplace_data:
          $ref: '#/components/schemas/OtherMarketplaceData'
    WebhookUrl:
      type: string
      description: A valid URL for the endpoint you created to receive Tackle events
      format: uri
      example: https://www.example.com
    AzureNewOrderCallback:
      description: Link to New Offer payload variables https://developers.tackle.io/reference/payload-

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