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: integer format: int64 orderFormTemplateIds: type: array example: '[a7b8c3d4-e5f6-4a1b-9c2d-3e4f5a6b7c8d5, f1e2d3c4-b5a6-4978-8364-1a2b3c4d5e6f]' description: Array of IDs associated with predefined terms used to generate order forms. Specified as UUIDs. items: type: string orderTerms: type: array description: Array of objects representing the terms associated with this order. items: $ref: '#/components/schemas/OrderTerms' sfdcOpportunityId: type: string description: Salesforce opportunity ID associated with the order. isPrimaryOrderForSfdcOpportunity: type: boolean description: Indicates if the order is the primary order for the Salesforce opportunity. sfdcOpportunityName: type: string description: Salesforce opportunity name. sfdcOpportunityType: type: string description: Type of Salesforce opportunity. sfdcOpportunityStage: type: string description: Stage of the Salesforce opportunity. sfdcOrderCanBeExecuted: type: boolean description: Indicates whether the order can be executed in Salesforce. opportunityCrmType: type: string example: SALESFORCE description: Type of CRM where the opportunity is managed. enum: - SALESFORCE - HUBSPOT renewalForSubscriptionId: type: string example: SUB-A1B3C4D description: ID of the subscription being renewed. Returned only when `orderType` is `RENEWAL`. renewalForSubscriptionVersion: type: integer format: int32 example: 2 description: Version number of the subscription being renewed. Returned only when `orderType` is `RENEWAL`. ownerId: type: string example: USR-12345AB description: ID of the user who owns this order. documentMasterTemplateId: type: string example: f47ac10b-58cc-4372-a567-0e02b2c3d479 description: UUID of the document template to use to generate order documents. purchaseOrderNumber: type: string example: '123456789' description: The purchase order number associated with this order. purchaseOrderRequiredForInvoicing: type: boolean example: true description: Indicates whether a purchase order number is required to generate an invoice. autoRenew: type: boolean example: false description: Indicates whether the subscription should automatically renew at the end of its term. approvalSegmentId: type: string example: APSG-ABC45 description: ID of the approval segment to use for routing this order through approval workflows. attachmentId: type: string example: '12345678' description: ID of an attachment associated with this order (e.g., signed contract). compositeOrderId: type: string example: CORD-A0B0C1D description: ID of the composite order. Returned only if this order is part of a composite order structure. restructureForSubscriptionId: type: string example: SUB-Z98Y7X6 description: ID of the subscription being restructured. Returned only when `orderType` is `RESTRUCTURE`. expiresOn: type: integer format: int64 example: 1675209600 description: Date when the order expires if the `status` is not `EXECUTED`. Specified in Unix timestamp format (seconds since epoch). customFields: type: array description: Array of custom fields to include additional metadata with the order. items: $ref: '#/components/schemas/CustomFieldEntry' startDateType: type: string example: EXECUTION_DATE description: 'Determines how the start date is calculated. Supported values: * `FIXED`: Start date is the value of `startDate`, or the first `rampInterval` timestamp if specified. * `EXECUTION_DATE`: Start date is the date when the order status changes to `EXECUTED`.' enum: - FIXED - EXECUTION_DATE customBillingEligibleOrderLineIds: type: array description: Array of line item IDs (i.e., charge IDs) in this order that are eligible for custom billing. items: type: string customPredefinedTemplatesOnOrder: type: array description: List of predefined templates that are applied specifically to this order. items: $ref: '#/components/schemas/CustomPredefinedTemplateOnOrder' subscriptionDurationModel: type: string description: 'Determines the subscription term. Supported values: * `TERMED`: Subscription has a fixed term length. * `EVERGREEN`: Subscription continues indefinitely until cancelled.' enum: - TERMED - EVERGREEN opportunity: $ref: '#/components/schemas/OpportunityJson' zeppaOutput: $ref: '#/components/schemas/OrderCreationCustomizationOutputJson' Opportunity: type: object properties: id: type: string format: uuid entityId: type: string name: type: string type: type: string stage: type: string crmId: type: string accountId: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 opportunityCrmType: type: string enum: - SALESFORCE - HUBSPOT isClosed: type: boolean primaryOrderId: type: string opportunityId: type: string currency: type: string customFields: $ref: '#/components/schemas/CustomField' CreditableAmount: type: object properties: subscriptionChargeId: type: string creditableAmount: type: number maxCreditableAmount: type: number OrderLineRuleWarningsJson: type: object properties: lineIdentifier: type: string warnings: type: array items: type: string DocuSignReauthenticationResponseJson: type: object required: - redirectUri properties: redirectUri: type: string readOnly: true SalesforceClientIntegrationRequestJson: type: object properties: clientId: type: string clientSecret: type: string redirectUri: type: string baseLoginUrl: type: string CustomFieldEntry: type: object properties: id: type: string readOnly: true type: type: string readOnly: true enum: - STRING - PICKLIST - MULTISELECT_PICKLIST name: type: string readOnly: true label: type: string readOnly: true value: type: string readOnly: true selections: type: array readOnly: true items: type: string options: type: array readOnly: true items: type: string required: type: boolean readOnly: true source: type: string readOnly: true enum: - USER - SYSTEM defaultValue: $ref: '#/components/schemas/CustomFieldDefault' DiscountDetailJson: type: object properties: name: type: string percent: type: number discountAmount: type: number status: type: string enum: - ACTIVE - DEPRECATED discountedPrice: type: number amount: type: number RuleTraceJson: type: object properties: ruleName: type: string fired: type: boolean orderActionsPerformed: type: array items: $ref: '#/components/schemas/RuleActionPerformedJson' orderLineActionsPerformed: type: array items: $ref: '#/components/schemas/OrderLineActionsPerformedJson' orderRuleWarnings: type: array items: type: string orderLineRuleWarnings: type: array items: $ref: '#/components/schemas/OrderLineRuleWarningsJson' AnrokIntegrationInput: type: object required: - apiKey properties: apiKey: type: string readOnly: true DocuSignIntegrationResponseJson: type: object properties: clientId: type: string integrationId: type: string environment: type: string enum: - DEMO - PRODUCTION isCompleted: type: boolean refreshTokenExpiresOn: type: integer format: int64 SalesforceAccount: type: object properties: id: type: string name: type: string description: type: string billingAddress: $ref: '#/components/schemas/SalesforceAccountBillingAddress' phone: type: string CurrencyIsoCode: type: string UpsertCrmContactsRequest: type: object properties: accountId: type: string contactCrmIds: type: array items: type: string maxItems: 500 minItems: 0 CustomFieldDefault: type: object properties: value: type: string selections: type: array items: type: string PricingOverrideJson: type: object properties: priceTiers: type: array readOnly: true items: $ref: '#/components/schemas/PriceTierJson' minQuantity: type: integer format: int64 readOnly: true maxQuantity: type: integer format: int64 readOnly: true AccountContactJson: type: object required: - accountId properties: id: type: string description: This is a system-generated Account Contact ID accountId: type: string description: Uniquely identifies the Account firstName: type: string description: First Name of the Contact lastName: type: string description: (optional) Last Name of the Contact email: type: string description: Email of the Contact phoneNumber: type: string description: (optional) Phone Number of the Contact title: type: string description: (optional) Title of the Contact address: $ref: '#/components/schemas/AccountAddressJson' externalId: type: string erpId: type: string fullName: type: string eventObjectId: type: string PriceTierJson: type: object required: - amount - untilQuantity properties: untilQuantity: type: string amount: type: number overage: type: number CrmOpportunityNameChangeNotificationRequest: type: object required: - id - newName properties: id: type: string oldName: type: string newName: type: string OpportunityJson: type: object properties: name: type: string id: type: string entityId: type: string type: type: string stage: type: string crmId: type: string accountId: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 opportunityCrmType: type: string enum: - SALESFORCE - HUBSPOT isClosed: type: boolean primaryOrderId: type: string opportunityId: type: string currency: type: string customFields: type: array items: $ref: '#/components/schemas/CustomFieldEntry' SalesforceAccountBillingAddress: type: object properties: street: type: string city: type: string state: type: string postalCode: type: string country: type: string Integration: type: object properties: targetService: type: string enum: - QUICKBOOKS - XERO - NETSUITE - ANROK - THOMSON_REUTERS clientId: type: string environment: type: string realmId: type: string status: type: string enum: - PENDING - ACTIVE - DELETED metadata: $ref: '#/components/schemas/JSONObject' maskedApiKey: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 deleted: type: boolean id: type: string format: uuid JSONObject: type: object properties: empty: type: boolean CustomPredefinedTemplateOnOrder: type: object properties: id: type: string orderId: type: string name: type: string description: type: string content: type: string RuleActionPerformedJson: type: object properties: action: type: string actionMessage: type: string TaxJarIntegration: type: object properties: createdOn: type: integer format: int64 updatedOn: type: integer format: int64 tenantId: type: string integrationId: type: string maskedApiKey: type: string isDeleted: type: boolean isSandbox: type: boolean OrderLineItemJson: type: object required: - chargeId properties: id: type: string itemGroupId: type: string isDryRunItem: type: boolean action: type: string enum: - ADD - UPDATE - REMOVE - RENEWAL - NONE - MISSING_RENEWAL - RESTRUCTURE planId: type: string subscriptionChargeId: type: string currencyConversionRateId: type: string subscriptionChargeGroupId: type: string chargeId: type: string quantity: type: integer format: int64 isRamp: type: boolean listUnitPrice: type: number sellUnitPrice: type: number discountAmount: type: number discounts: type: array items: $ref: '#/components/schemas/DiscountDetailJson' predefinedDiscounts: type: array items: $ref: '#/components/schemas/TenantDiscountLineItemJson' attributeReferences: type: array items: $ref: '#/components/schemas/AttributeReference' amount: type: number listAmount: type: number annualizedAmount: type: number pricingOverride: $ref: '#/components/schemas/PricingOverrideJson' listPriceOverrideRatio: type: number listUnitPriceBeforeOverride: type: number listAmountBeforeOverride: type: number taxEstimate: type: number effectiveDate: type: integer format: int64 endDate: type: integer format: int64 customFields: type: array items: $ref: '#/components/schemas/CustomFieldEntry' arrOverride: type: number replacedPlanId: type: string dryRunItem: type: boolean OrderTerms: type: object properties: id: type: string format: uuid templateGroupId: type: string templateGroupVersion: type: integer format: int32 orderId: type: string levelType: type: string enum: - ORDER - PLAN planIds: type: array uniqueItems: true items: type: string templateId: type: string readOnly: true deleted: type: boolean AccountAddress: type: object properties: id: type: string format: uuid addressId: type: string streetAddressLine1: type: string streetAddressLine2: type: string streetAddressLine3: type: string city: type: string state: type: string country: type: string zipcode: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 AvalaraIntegrationInput: type: object properties: accountId: type: string minLength: 0 maxLength: 1024 companyCode: type: string minLength: 0 maxLength: 25 accountLicenseKey: type: string sandboxEnvironment: type: boolean shouldCommitDocuments: type: boolean TaxJarIntegrationInput: type: object required: - apiKey properties: apiKey: type: string readOnly: true isSandbox: type: boolean readOnly: true UpsertCRMContactResponse: type: object properties: upserted: type: boolean error: type: string salesforceContact: $ref: '#/components/schemas/SubskribeSalesforceContact' crmContact: $ref: '#/components/schemas/CrmContact' upsertedContact: $ref: '#/components/schemas/AccountContactJson' RecurrenceJson: type: object required: - cycle - step properties: cycle: type: string enum: - DAY - MONTH - QUARTER - SEMI_ANNUAL - YEAR - PAID_IN_FULL - CUSTOM step: type: integer format: int32 minimum: 1 OrderCreationCustomizationOutputJson: type: object properties: customizationRunSkipped: type: boolean customizationDefinitionMissing: type: boolean ruleTraces: type: array items: $ref: '#/components/schemas/RuleTraceJson' OrderLineActionsPerformedJson: type: object properties: lineIdentifier: type: string actionsPerformed: type: array items: $ref: '#/components/schemas/RuleActionPerformedJson' AttributeReference: type: object properties: attributeDefinitionId: type: string readOnly: true attributeValue: type: string readOnly: true TenantDiscountJson: type: object properties: id: type: string percent: type: number name: type: string type: type: string description: type: string status: type: string enum: - ACTIVE - DEPRECATED CrmContact: 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 crmType: type: string enum: - SALESFORCE - HUBSPOT AccountAddressJson: type: object properties: streetAddressLine1: type: string description: Address Line 1 of the Contact streetAddressLine2: type: string description: Address Line 2 of the Contact streetAddressLine3: type: string description: Address Line 3 of the Contact city: type: string description: City of the Contact state: type: string description: State Code of the Contact (ISO 3166-2 state/province code). Currently supported for USA, Canada. For instance, for Arizona (USA), set state as AZ (not US-AZ).For British Columbia (Canada), set as BC (not CA-BC) country: type: string description: Country Code of the Contact ( ISO 3166 alpha-2 country code). zipcode: type: string description: Zip or Postal Code of the Contact CustomField: type: object properties: entries: type: object readOnly: true additionalProperties: $ref: '#/components/schemas/CustomFieldValue' empty: type: boolean DocuSignIntegrationRequestJson: type: object properties: clientId: type: string clientSecret: type: string environment: type: string enum: - DEMO - PRODUCTION CustomFieldValue: type: object properties: type: type: string readOnly: true enum: - STRING - PICKLIST - MULTISELECT_PICKLIST name: type: string readOnly: true label: type: string readOnly: true value: type: string readOnly: true selections: type: array readOnly: true items: type: string options: type: array readOnly: true items: type: string required: type: boolean readOnly: true source: type: string readOnly: true enum: - USER - SYSTEM defaultValue: $ref: '#/components/schemas/CustomFieldDefault' AvalaraIntegration: type: object properties: accountId: type: string companyCode: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 sandboxEnvironment: type: boolean integrationId: type: string shouldCommitDocuments: type: boolean requestBodies: AnrokIntegrationInput: content: application/json: schema: $ref: '#/components/schemas/AnrokIntegrationInput' description: Integration input as a JSON TaxJarIntegrationInput: content: application/json: schema: $ref: '#/components/schemas/TaxJarIntegrationInput' description: Integration input as a JSON AccountAddress: content: application/json: schema: $ref: '#/components/schemas/AccountAddress' description: Address input as a JSON securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key