DealHub Integrations API

The Integrations API from DealHub — 35 operation(s) for integrations.

Operations 43

POST /anrok Add a Anrok integration #
PUT /anrok/test Test an integration is valid #
POST /anrok/validate Validate an address with Anrok #
GET /anrok/{integrationId} Get integration details #
PUT /avalara/ping Pings Avalara #
GET /avalara/{integrationId} Gets Avalara integration details #
GET /avalara Gets Avalara integration details #
POST /avalara Create an Avalara integration #
POST /crm/{opportunityCrmId}/notifyNameChange Opportunity name change notification #
GET /crm/{accountId}/contacts Fetch all associated CRM contacts for an account #
POST /crm/contacts Upsert CRM contacts for an account #
GET /docusign Complete Docusign integration #
POST /docusign Create Docusign integration #
DELETE /docusign Delete Docusign integration #
POST /docusign/reauthenticate Re-authenticate Docusign integration #
GET /hubspot Handle HubSpot authorization code #
POST /hubspot Initiate a HubSpot integration #
DELETE /hubspot Delete HubSpot Integration #
POST /hubspot/setup Add custom properties to HubSpot #
POST /hubspot/setup/verify Verify HubSpot setup #
POST /hubspot/esign/{orderId} Sync esign details for order id #
POST /hubspot/sync/order/{orderId} Sync order to Hubspot #
POST /hubspot/sync/account/{accountCrmId} Import account from HubSpot #
POST /hubspot/sync/subscription/{subscriptionId} Sync subscription to Hubspot #
POST /hubspot/sync/subscription/{subscriptionId}/status Sync subscription status to Hubspot #
GET /sfdc Callback for the authorization code #
POST /sfdc Initiate integration with Salesforce #
DELETE /sfdc Delete Salesforce integration #
GET /sfdc/account Get Salesforce accounts #
POST /sfdc/account Import account from Salesforce #
GET /sfdc/account/{id} Get Salesforce account #
PUT /sfdc/order/{id} Make an order primary #
GET /sfdc/opportunity Get Salesforce opportunities #
PUT /sfdc/sync/{id} Sync order to Salesforce #
PUT /sfdc/syncOrders Sync orders to Salesforce #
PUT /sfdc/syncTenant Sync whole tenant to Salesforce in a paginated fashion #
PUT /sfdc/syncDeletedOrders Sync orders to Salesforce #
PUT /sfdc/syncAccount/{id} Sync an account to Salesforce #
PUT /sfdc/sync/subscription/{subscriptionId} Sync subscription to Salesforce #
POST /taxjar Add a TaxJar integration #
PUT /taxjar/test Test an integration is valid #
POST /taxjar/validate Validate an address with TaxJar #
GET /taxjar/{integrationId} Get integration details #

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/dealhub-integrations-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

dealhub-integrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Subskribe Integrations API
servers:
- url: https://api.app.subskribe.com
security:
- ApiKeyAuth: []
tags:
- name: Integrations
paths:
  /anrok:
    post:
      tags:
      - Integrations
      summary: Add a Anrok integration
      description: Returns the integration ID if successful
      operationId: addIntegration
      requestBody:
        $ref: '#/components/requestBodies/AnrokIntegrationInput'
      responses:
        default:
          description: successful operation
  /anrok/test:
    put:
      tags:
      - Integrations
      summary: Test an integration is valid
      description: ''
      operationId: testIntegration
      requestBody:
        $ref: '#/components/requestBodies/AnrokIntegrationInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: string
  /anrok/validate:
    post:
      tags:
      - Integrations
      summary: Validate an address with Anrok
      description: ''
      operationId: validateAddress
      requestBody:
        $ref: '#/components/requestBodies/AccountAddress'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountAddress'
  /anrok/{integrationId}:
    get:
      tags:
      - Integrations
      summary: Get integration details
      description: Gets the integration details of the specified integration id
      operationId: getIntegration
      parameters:
      - name: integrationId
        in: path
        description: integration id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Integration'
  /avalara/ping:
    put:
      tags:
      - Integrations
      summary: Pings Avalara
      description: Once an integration is set up Avalara can be pinged to ensure it is working correctly. On success "PONG" is returned.
      operationId: ping
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AvalaraIntegrationInput'
      responses:
        default:
          description: successful operation
  /avalara/{integrationId}:
    get:
      tags:
      - Integrations
      summary: Gets Avalara integration details
      description: Gets the integration details of the specified integration id
      operationId: getIntegration_1
      parameters:
      - name: integrationId
        in: path
        description: integration id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvalaraIntegration'
  /avalara:
    get:
      tags:
      - Integrations
      summary: Gets Avalara integration details
      description: Returns the details of the Avalara integration for your tenant
      operationId: getIntegrationByTenant
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AvalaraIntegration'
    post:
      tags:
      - Integrations
      summary: Create an Avalara integration
      description: Creates an integration with Avalara according to the specified details. On success the id of the integration is returned
      operationId: integrate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AvalaraIntegrationInput'
        description: json representing the integration
      responses:
        default:
          description: successful operation
  /crm/{opportunityCrmId}/notifyNameChange:
    post:
      tags:
      - Integrations
      summary: Opportunity name change notification
      description: Subskribe is notified for the opportunity name change happening in Crm systems. This is used to update the opportunity name in Subskribe.
      operationId: opportunityNameChangeNotification
      parameters:
      - name: opportunityCrmId
        in: path
        description: crm id of the opportunity
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrmOpportunityNameChangeNotificationRequest'
        description: opportunity request
        required: true
      responses:
        default:
          description: successful operation
  /crm/{accountId}/contacts:
    get:
      tags:
      - Integrations
      summary: Fetch all associated CRM contacts for an account
      description: ''
      operationId: getCrmContactsByAccountId
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /crm/contacts:
    post:
      tags:
      - Integrations
      summary: Upsert CRM contacts for an account
      description: ''
      operationId: upsertCrmContacts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCrmContactsRequest'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UpsertCRMContactResponse'
  /docusign:
    get:
      tags:
      - Integrations
      summary: Complete Docusign integration
      description: Complete the docusign integration. This should be called after the integration has been created and an authorization code has been received from Docusign.
      operationId: completeIntegration
      parameters:
      - name: code
        in: query
        description: authorization code received from Docusign
        required: false
        schema:
          type: string
      - name: state
        in: query
        description: id of the integration
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocuSignIntegrationResponseJson'
    post:
      tags:
      - Integrations
      summary: Create Docusign integration
      description: Creates an integration with Docusign. On success a redirect URL is returned.
      operationId: initiateIntegration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocuSignIntegrationRequestJson'
        description: details of the integration
      responses:
        default:
          description: successful operation
    delete:
      tags:
      - Integrations
      summary: Delete Docusign integration
      description: Removes integration with Docusign from your tenant
      operationId: deleteIntegration
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocuSignIntegrationResponseJson'
  /docusign/reauthenticate:
    post:
      tags:
      - Integrations
      summary: Re-authenticate Docusign integration
      description: Generates a fresh DocuSign authorization URL for the existing integration so an administrator can re-authenticate.
      operationId: reauthenticateIntegration
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocuSignReauthenticationResponseJson'
  /hubspot:
    get:
      tags:
      - Integrations
      summary: Handle HubSpot authorization code
      description: Endpoint to handle and process a HubSpot authorization code
      operationId: authorizationCodeCallback
      parameters:
      - name: code
        in: query
        description: authorization code
        required: true
        schema:
          type: string
      - name: state
        in: query
        description: HubSpot integration id
        required: true
        schema:
          type: string
      - name: redirect_uri
        in: query
        description: uri to redirect to HubSpot
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
    post:
      tags:
      - Integrations
      summary: Initiate a HubSpot integration
      description: Initiates an integration with HubSpot. On success redirect URL is returned.
      operationId: initiateIntegration_1
      requestBody:
        content:
          application/json:
            schema:
              type: string
        description: admin email
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: string
    delete:
      tags:
      - Integrations
      summary: Delete HubSpot Integration
      description: Deletes your integration with HubSpot.
      operationId: deleteIntegration_1
      responses:
        default:
          description: successful operation
  /hubspot/setup:
    post:
      tags:
      - Integrations
      summary: Add custom properties to HubSpot
      description: Add custom properties to HubSpot
      operationId: setupHubSpot
      responses:
        default:
          description: successful operation
  /hubspot/setup/verify:
    post:
      tags:
      - Integrations
      summary: Verify HubSpot setup
      description: Verify custom objects and properties
      operationId: verifySetup
      responses:
        default:
          description: successful operation
  /hubspot/esign/{orderId}:
    post:
      tags:
      - Integrations
      summary: Sync esign details for order id
      description: ''
      operationId: syncEsignDetailsForOrderToHubSpot
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /hubspot/sync/order/{orderId}:
    post:
      tags:
      - Integrations
      summary: Sync order to Hubspot
      description: ''
      operationId: syncOrder
      parameters:
      - name: orderId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /hubspot/sync/account/{accountCrmId}:
    post:
      tags:
      - Integrations
      summary: Import account from HubSpot
      description: ''
      operationId: importAccountFromHubspot
      parameters:
      - name: accountCrmId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /hubspot/sync/subscription/{subscriptionId}:
    post:
      tags:
      - Integrations
      summary: Sync subscription to Hubspot
      description: ''
      operationId: syncHubspotSubscription
      parameters:
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /hubspot/sync/subscription/{subscriptionId}/status:
    post:
      tags:
      - Integrations
      summary: Sync subscription status to Hubspot
      description: ''
      operationId: syncHubspotSubscriptionStatus
      parameters:
      - name: subscriptionId
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /sfdc:
    get:
      tags:
      - Integrations
      summary: Callback for the authorization code
      description: Handles the authorization code callback from Salesforce
      operationId: authorizationCodeCallback_1
      parameters:
      - name: code
        in: query
        description: authorization code
        required: true
        schema:
          type: string
      - name: state
        in: query
        description: id of the integration
        required: true
        schema:
          type: string
      - name: redirect_uri
        in: query
        description: uri to redirect to
        required: false
        schema:
          type: string
      responses:
        default:
          description: successful operation
    post:
      tags:
      - Integrations
      summary: Initiate integration with Salesforce
      description: Initiate a Salesforce integration. On success a redirect url is returned.
      operationId: initiateIntegration_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesforceClientIntegrationRequestJson'
      responses:
        default:
          description: successful operation
    delete:
      tags:
      - Integrations
      summary: Delete Salesforce integration
      description: Removes the Salesforce integration for the tenant.
      operationId: deleteIntegration_2
      responses:
        default:
          description: successful operation
  /sfdc/account:
    get:
      tags:
      - Integrations
      summary: Get Salesforce accounts
      description: Returns Salesforce accounts matching the specified name.
      operationId: getAccountsByName
      parameters:
      - name: name
        in: query
        description: account name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SalesforceAccount'
    post:
      tags:
      - Integrations
      summary: Import account from Salesforce
      description: Imports an account from Salesforce. On success a redirect uri is returned.
      operationId: importAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SalesforceAccount'
        description: json representation of the account
        required: true
      responses:
        default:
          description: successful operation
  /sfdc/account/{id}:
    get:
      tags:
      - Integrations
      summary: Get Salesforce account
      description: Gets a Salesforce account by its id.
      operationId: getAccountById
      parameters:
      - name: id
        in: path
        description: id of the account
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SalesforceAccount'
  /sfdc/order/{id}:
    put:
      tags:
      - Integrations
      summary: Make an order primary
      description: Marks an order as the primary order for its opportunity.
      operationId: updatePrimaryOrderIdForOpportunity
      parameters:
      - name: id
        in: path
        description: order id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderJson'
  /sfdc/opportunity:
    get:
      tags:
      - Integrations
      summary: Get Salesforce opportunities
      description: Returns the Salesforce opportunities associated withe the specified account.
      operationId: getOpportunitiesByAccountId
      parameters:
      - name: accountId
        in: query
        description: id of the account
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Opportunity'
  /sfdc/sync/{id}:
    put:
      tags:
      - Integrations
      summary: Sync order to Salesforce
      description: Syncs the specified order to Salesforce.
      operationId: syncOrderToSalesforce
      parameters:
      - name: id
        in: path
        description: order id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderJson'
  /sfdc/syncOrders:
    put:
      tags:
      - Integrations
      summary: Sync orders to Salesforce
      description: Syncs the specified order to Salesforce.
      operationId: syncOrdersToSalesforce
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        description: order ids
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderJson'
  /sfdc/syncTenant:
    put:
      tags:
      - Integrations
      summary: Sync whole tenant to Salesforce in a paginated fashion
      description: Syncs the specified tenant to Salesforce. Returns paginated JSON of accounts which were synced
      operationId: syncTenantToSalesforce
      parameters:
      - name: cursor
        in: query
        required: false
        schema:
          type: string
          format: uuid
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: tenantId
        in: query
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /sfdc/syncDeletedOrders:
    put:
      tags:
      - Integrations
      summary: Sync orders to Salesforce
      description: Syncs the specified order to Salesforce.
      operationId: syncDeletedOrdersToSalesforce
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        description: opportunityIds
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderJson'
  /sfdc/syncAccount/{id}:
    put:
      tags:
      - Integrations
      summary: Sync an account to Salesforce
      description: Syncs the account ARR and its orders to Salesforce.
      operationId: syncAccountToSalesforce
      parameters:
      - name: id
        in: path
        description: account id to sync
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /sfdc/sync/subscription/{subscriptionId}:
    put:
      tags:
      - Integrations
      summary: Sync subscription to Salesforce
      description: Syncs the specified subscription to Salesforce.
      operationId: syncSubscriptionToSalesforce
      parameters:
      - name: subscriptionId
        in: path
        description: subscription id
        required: true
        schema:
          type: string
      responses:
        default:
          description: successful operation
  /taxjar:
    post:
      tags:
      - Integrations
      summary: Add a TaxJar integration
      description: Returns the integration ID if successful
      operationId: addIntegration_1
      requestBody:
        $ref: '#/components/requestBodies/TaxJarIntegrationInput'
      responses:
        default:
          description: successful operation
  /taxjar/test:
    put:
      tags:
      - Integrations
      summary: Test an integration is valid
      description: ''
      operationId: testIntegration_1
      requestBody:
        $ref: '#/components/requestBodies/TaxJarIntegrationInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: string
  /taxjar/validate:
    post:
      tags:
      - Integrations
      summary: Validate an address with TaxJar
      description: Returns a suggested addresses if found
      operationId: validateAddress_1
      requestBody:
        $ref: '#/components/requestBodies/AccountAddress'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountAddress'
  /taxjar/{integrationId}:
    get:
      tags:
      - Integrations
      summary: Get integration details
      description: Gets the integration details of the specified integration id
      operationId: getIntegration_2
      parameters:
      - name: integrationId
        in: path
        description: integration id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxJarIntegration'
components:
  schemas:
    SubskribeSalesforceContact:
      type: object
      properties:
        id:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        mailingStreet:
          type: string
        mailingCity:
          type: string
        mailingState:
          type: string
        mailingPostalCode:
          type: string
        mailingCountry:
          type: string
        phone:
          type: string
        email:
          type: string
        title:
          type: string
        action:
          type: string
          enum:
          - UPDATE
          - INSERT
    TenantDiscountLineItemJson:
      type: object
      properties:
        id:
          type: string
        percent:
          type: number
        name:
          type: string
        type:
          type: string
        description:
          type: string
        status:
          type: string
          enum:
          - ACTIVE
          - DEPRECATED
        amount:
          type: number
    OrderJson:
      type: object
      required:
      - orderType
      - startDate
      - status
      properties:
        id:
          type: string
          example: ORD-AXBY123
          description: System-generated unique identifier for the order.
        entityId:
          type: string
          example: ENT-98765AB
          description: ID of the entity (e.g., business or subsidiary) associated with this order.
        externalId:
          type: string
          example: EXT-456789
          description: Unique external reference ID for the order that can be used for integration with other systems. This ID can't be reused on multiple orders.
          minLength: 0
          maxLength: 36
        name:
          type: string
          example: CreativePro Monthly Subscription Order
          description: Name or title of the order for easy identification.
        accountId:
          type: string
          example: ACCT-ADE4567
          description: Unique identifier of the account associated with this order.
        orderType:
          type: string
          example: NEW
          description: 'Type of order being placed. This value determines how the order will impact a subscription when it is executed.


            Supported values:

            * `NEW`: Create a new subscription.

            * `CANCEL`: Cancel an existing subscription.

            * `AMENDMENT`: Amend an existing subscription.

            * `RENEWAL`: Renew an existing subscription.

            * `RESTRUCTURE`: Restructure an existing subscription.'
          enum:
          - NEW
          - AMENDMENT
          - CANCEL
          - RENEWAL
          - RESTRUCTURE
        currency:
          type: string
          example: USD
          description: ISO 4217 currency code for the order. If you don't specify a value, the account's default currency is used.
        paymentTerm:
          type: string
          example: NET30
          description: Specifies when the payment for the invoice is due. Supported values are `NET0`, `NET30`, `NET45`, `NET60`, and `NET90`.
          enum:
          - NET0
          - NET30
          - NET45
          - NET60
          - NET90
        subscriptionId:
          type: string
          example: SUB-BCDE123
          description: The ID of the subscription that you want to amend, restructure, or cancel.
        subscriptionTargetVersion:
          type: integer
          format: int32
          example: 3
          description: The subscription version targeted by this order. Each time a subscription is modified, the version is incremented. Orders target a specific version to maintain consistency. Orders may become outdated if the subscription is modified before the order is executed.
          readOnly: true
        shippingContactId:
          type: string
          example: CONT-XYZ7891
          description: ID of the contact to use for shipping information.
        billingContactId:
          type: string
          example: CONT-ABC1234
          description: ID of the contact to use for billing information.
        predefinedDiscounts:
          type: array
          description: Array of predefined discount objects to apply to the order.
          items:
            $ref: '#/components/schemas/TenantDiscountJson'
        creditableAmounts:
          type: array
          description: Array of creditable amount which can be refunded when one time charges are cancelled/debooked during amendment or cancellation of a subscription
          items:
            $ref: '#/components/schemas/CreditableAmount'
        lineItems:
          type: array
          description: Array of line item objects (i.e., charges) that you added order.
          items:
            $ref: '#/components/schemas/OrderLineItemJson'
        lineItemsNetEffect:
          type: array
          description: 'Array of line item objects (i.e., charges) representing the changes that will be made to the subscription when the order is executed.


            The number of objects in this array depends on the type of order being created:

            * For `NEW` orders, this array includes all line items that will be added to the new subscription.

            * For `CANCEL` orders, this array includes the line items that will be removed from the subscription on the cancellation date. Any line items that expire before the cancellation date are not included.

            * For `AMENDMENT` orders, this array includes only those line items that contain the changes to make the requested amendments to the subscription.

            * For `RENEWAL` orders, this array includes all line items from the subscription that is being renewed.

            * For `RESTRUCTURE` orders, this array includes line items that will be added to the restructured subscription.'
          readOnly: true
          items:
            $ref: '#/components/schemas/OrderLineItemJson'
        startDate:
          type: integer
          format: int64
          example: 1672531200
          description: Start date of the subscription in Unix timestamp format (seconds since epoch). This date is inclusive.
        endDate:
          type: integer
          format: int64
          example: 1704067200
          description: "End date of the subscription in Unix timestamp format (seconds since epoch). If not provided for `TERMED` subscriptions, it will be calculated based on `termLength`. \n\n**NOTE:** This date is exclusive. For example, if the subscription's start date is 1735689600 (January 1, 2025 00:00:00) and the term length is 1 year, specify the end date as 1767225600 (January 1, 2026 00:00:00).\nSince the date is exclusive, the subscription is still active at December 31, 2025 23:59:59 but will have ended at January 1, 2026 00:00:00."
        termLength:
          $ref: '#/components/schemas/RecurrenceJson'
        billingCycle:
          $ref: '#/components/schemas/RecurrenceJson'
        billingTerm:
          type: string
          example: UP_FRONT
          description: 'Specifies when billing occurs relative to service delivery.


            Supported values:

            * `UP_FRONT`: Billing occurs before the product or service is delivered

            * `IN_ARREARS`: The customer is billed after receiving the product or service.'
          enum:
          - UP_FRONT
          - IN_ARREARS
        billingAnchorDate:
          type: integer
          format: int64
          example: 1672531200
          description: Specific date to anchor billing cycles to, in Unix timestamp format (seconds since epoch). Useful for aligning billing with specific dates (e.g., first of the month).
        totalAmount:
          type: number
          example: 1500
          description: Total currency amount for the order, including all line items, taxes, and discounts.
        totalListAmount:
          type: number
          example: 1800
          description: Total list amount for the order before any discounts are applied.
        totalListAmountBeforeOverride:
          type: number
          example: 2000
          description: Total list amount for the order before any manual overrides are applied.
        taxEstimate:
          type: number
          example: 120
          description: Estimated tax amount for the order based on tax considerations.
        status:
          type: string
          example: APPROVED
          description: 'Current status of the order.

            **NOTE:** Order details can be modified only when the status is `DRAFT`. When the order is in any other state, only a few attributes such as order name, shipping and billing contacts, PO number, and CRM opportunity details can be modified.


            Supported values:

            * `DRAFT`: Initial and default status of an order. An order in this status can be modified.

            * `SUBMITTED`: Order has been submitted for review and approval. No further modifications are allowed without changing the order status back to `DRAFT`.

            * `APPROVED`: Order has been approved and is ready for execution.

            * `EXECUTED`: Order has been executed and the associated subscription has been created or modified.

            * `EXPIRED`: Order has reached its expiration date without being executed. You can change an expired order''s status to `DRAFT` if the expiration date is removed or updated to a later date.'
          enum:
          - DRAFT
          - SUBMITTED
          - APPROVED
          - EXECUTED
          - EXPIRED
        executedOn:
          type: integer
          format: int64
          example: 1672617600
          description: Date when the order was executed in Unix timestamp format. This field is populated only when the order status is `EXECUTED`.
        createdOn:
          type: integer
          format: int64
        updatedOn:
          type: integer
          format: int64
          example: 1672704000
          description: Date when the order was last updated in Unix timestamp format (seconds since epoch).
        executedOnFormatted:
          type: string
          example: '2023-01-02T00:00:00Z'
          description: Formatted date when the order was executed.
        rampInterval:
          type: array
          example: '[1672531200, 1680307200, 1688083200]'
          description: Array of timestamps (in Unix timestamp format) defining intervals for ramped pricing schedules. The timestamps must be in chronological order from earliest to latest, and there must be no duplicate entries. Used when implementing gradual quantity or price changes over time.
          items:
            type: int

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