openapi: 3.0.0 security: - ApiKeyAuth: [] info: version: 1.0.0 title: Subskribe API tags: - name: Billing - name: Accounts - name: Intelligent Sales Room - name: Accounting - name: AI Agent - name: Experimental - name: AI Summary - name: Integrations - name: Authentication - name: Approvals - name: Attachments - name: Usage - name: BankTransactions - name: Product Catalog - name: Orders - name: Credit Memo - name: CRM field mapping - name: Custom Field - name: Customization - name: Deal Pulse - name: Discounts - name: Documents - name: Email - name: Entities - name: ERP - name: Import - name: MetricsReporting - name: Notifications - name: Opportunity - name: Payments - name: Health - name: Platform Feature - name: Settings - name: Prismatic - name: RateCard - name: Refunds - name: Reports - name: Revenue Enablement - name: Revenue Recognition - name: Subscriptions - name: TemplateScript - name: Jobs - name: Foreign Exchange - name: Users - name: Order - name: Search - name: Account - name: Invoice - name: Product Provisioning - name: Tenant paths: /accountReceivableContact: get: tags: - Billing summary: Get the contact for accounts receivable description: Returns the details of the account receivable contact for your tenant operationId: getAccountReceivableContact responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountReceivableContactJson' put: tags: - Billing summary: Set the contact for accounts receivable description: Sets the details of the account receivable contact for your tenant operationId: putAccountReceivableContact requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountReceivableContactJson' description: contact details responses: default: description: successful operation /accounts: get: tags: - Accounts summary: Get all accounts description: Returns a paginated list of accounts operationId: getAccounts parameters: - name: cursor in: query description: A string token is used to fetch next set of results. If not provided, the first page of results will be returned. Use the 'next_cursor' value from the previous response to fetch the next page. required: false schema: type: string format: uuid - name: limit in: query description: An integer specifying the maximum number of results to return per page. Defaults to 10 if not provided. required: false schema: type: integer format: int32 - name: type in: query description: 'The type of accounts to retrieve. Allowed values are: ALL: Includes all account types. RESELLER: Includes only reseller accounts. NON_RESELLER: Includes only non-reseller accounts.' required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaginatedAccountsResponse' post: tags: - Accounts summary: Add a new account description: Create an account with the specified parameters. On success, the id of the newly created account is returned operationId: addAccount requestBody: $ref: '#/components/requestBodies/AccountJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountJson' /accounts/{id}: get: tags: - Accounts summary: Get an account by id description: Retrieves detailed information about a specific account using its unique identifier. It could be Account_ID, CRM_ID or External_ID. This endpoint provides comprehensive data for a particular account, enabling users to access full account details. operationId: getAccount parameters: - name: id in: path description: Uniquely identifies the Account required: true schema: type: string - name: idType in: query description: 'Specifies the type of ID being used. Allowed values are account_id: The default account ID. crm_id: The CRM (Customer Relationship Management) ID external_id: An external system''s ID for the account. Default is account_id' required: false schema: type: string enum: - ACCOUNT_ID - CRM_ID - EXTERNAL_ID responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountJson' put: tags: - Accounts summary: Update an account description: Updates an existing account with the specified parameters operationId: updateAccount parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/AccountJson' responses: default: description: successful operation delete: tags: - Accounts summary: Delete an account description: Deletes the account associated with the passed ID operationId: deleteAccount parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /accounts/{accountId}/contacts: get: tags: - Accounts summary: Get contacts for an account description: Returns a list of contacts associated with the specified account id operationId: getAccountContacts parameters: - name: accountId in: path description: Uniquely identifies the account for which contacts are being retrieved. required: true schema: type: string - name: expand in: query description: When set to true, expands the response to include additional details about each contact, such as address, external id, erp id, fullName. Default is false. required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/AccountContactJson' post: tags: - Accounts summary: Add a contact for an account description: Creates and adds a new contact for the specified account and returns the new contact ID. operationId: addAccountContact parameters: - name: accountId in: path description: value = Uniquely identifies the account required: true schema: type: string - name: skipAddressValidation in: query description: value = perform basic address validation required: false schema: type: boolean - name: strictValidation in: query description: value = require the address to match a canonical address, if it exists required: false schema: type: boolean requestBody: $ref: '#/components/requestBodies/AccountContactJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountContactJson' /accounts/{accountId}/crmId: put: tags: - Accounts summary: Update CRM ID description: API to update CRM ID for an account operationId: updateAccountCrmId parameters: - name: accountId in: path required: true schema: type: string requestBody: content: application/json: schema: type: string description: Unique CRM account / company identifier to associate to a Subskribe account. responses: default: description: successful operation /accounts/{id}/metrics: get: tags: - Accounts summary: Returns metrics for the specified account description: Fetches metrics such as ARR, TCV, etc for the specified account as of the specified target date operationId: getAccountMetrics parameters: - name: id in: path required: true schema: type: string - name: targetDate in: query required: false schema: type: integer format: int64 - name: forceRecalculate in: query required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/MetricsJson' /accounts/{accountId}/paymentMethods/{id}: get: tags: - Accounts summary: Get the details of a payment method description: Returns the details of the payment method for the specified account id and payment method id operationId: getPaymentMethod parameters: - name: accountId in: path required: true schema: type: string - name: id in: path required: true schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountPaymentMethodJson' /accounts/salesRoom/{shareLink}/contacts: get: tags: - Intelligent Sales Room summary: Get account contacts via sales room share link description: Gets account contacts via sales room share link operationId: getAccountContactViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation post: tags: - Intelligent Sales Room summary: Create account contact via share link description: Creates account contact via share link operationId: addAccountContactViaShareLink parameters: - name: shareLink in: path required: true schema: type: string - name: skipAddressValidation in: query description: value = perform basic address validation required: false schema: type: boolean - name: strictValidation in: query description: value = require the address to match a canonical address, if it exists required: false schema: type: boolean - name: addToReseller in: query description: value = Whether or not to add the contact for the reseller required: false schema: type: boolean requestBody: $ref: '#/components/requestBodies/AccountContactJson' responses: default: description: successful operation /accounts/{accountId}/erp: put: tags: - Accounts summary: Update account ERP details description: Update ERP details for an account specified by the account id operationId: addErpDetails parameters: - name: accountId in: path description: value = Uniquely identifies the account required: true schema: type: string - name: override in: query required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/ErpInputJson' responses: default: description: successful operation /accounts/{accountId}/contacts/{contactId}: get: tags: - Accounts summary: Gets contact details description: Returns the details of the specified contact operationId: getAccountContact parameters: - name: accountId in: path description: Uniquely identifies the account for which contacts are being retrieved. required: true schema: type: string - name: contactId in: path description: Uniquely identifies the contact. required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountContactJson' put: tags: - Accounts summary: Update a contact description: Updates the contact specified by the account id and contact id with the passed information operationId: updateAccountContact parameters: - name: accountId in: path required: true schema: type: string - name: contactId in: path required: true schema: type: string - name: skipAddressValidation in: query required: false schema: type: boolean - name: strictValidation in: query required: false schema: type: boolean requestBody: $ref: '#/components/requestBodies/AccountContactJson' responses: default: description: successful operation delete: tags: - Accounts summary: Delete a contact description: Deletes the contact specified by the account id and contact id operationId: deleteAccountContact parameters: - name: contactId in: path required: true schema: type: string - name: accountId in: path required: true schema: type: string responses: default: description: successful operation /accounts/salesRoom/{shareLink}/contacts/{contactId}: put: tags: - Intelligent Sales Room summary: Update account contact via share link description: Updates account contact via share link operationId: updateAccountContactViaShareLink parameters: - name: shareLink in: path required: true schema: type: string - name: contactId in: path required: true schema: type: string - name: skipAddressValidation in: query description: value = perform basic address validation required: false schema: type: boolean - name: strictValidation in: query description: value = require the address to match a canonical address, if it exists required: false schema: type: boolean - name: updateReseller in: query description: value = Whether or not to update the contact for the reseller required: false schema: type: boolean requestBody: $ref: '#/components/requestBodies/AccountContactJson' responses: default: description: successful operation /accounts/crm/import: post: tags: - Accounts summary: Import an account from a CRM description: Ensures an account exists which matches the passed details.If an account exists that has a matching CRM Id, it will be updated, if not, it will be created operationId: importCrmAccount requestBody: $ref: '#/components/requestBodies/AccountJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CrmAccountImportResponse' /accounts/{accountId}/paymentConfig: get: tags: - Accounts summary: Get account payment configuration description: Retrieves the payment configuration for the specified account operationId: getAccountPaymentConfig parameters: - name: accountId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountPaymentConfigurationJson' post: tags: - Accounts summary: Upsert account payment configuration description: Creates or updates the payment configuration for the specified account operationId: upsertAccountPaymentConfig parameters: - name: accountId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountPaymentConfigurationJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountPaymentConfigurationJson' /accountingPeriods: post: tags: - Accounting summary: Specify the current accounting period description: Specify the start date of and open an accounting period, making it current operationId: specifyCurrentAccountingPeriod requestBody: content: application/json: schema: type: integer format: int64 description: Start date of new period in seconds since Epoch (GMT) responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountingPeriod' /accountingPeriods/current: get: tags: - Accounting summary: Get the current accounting period description: '' operationId: getCurrentAccountingPeriod responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountingPeriod' /ai/zeppa/gen: post: tags: - AI Agent - Experimental summary: Generate zeppa artifact based on the description provided description: Generate zeppa code or documentation based on the input provided operationId: generateZeppaArtifact requestBody: $ref: '#/components/requestBodies/generateZeppaArtifactBody' responses: '200': description: successful operation content: text/event-stream: schema: type: string application/json: schema: type: string /ai/explain/proration/async/{orderId}/{orderLineItemId}: get: tags: - AI Summary - Experimental summary: Generate an explanation of the proration calculation description: Generate an explanation of the proration calculation for the given order line item. operationId: explainProrationAsync parameters: - name: orderId in: path description: id of the order required: true schema: type: string - name: orderLineItemId in: path description: id of the order line item required: true schema: type: string responses: '200': description: successful operation content: text/event-stream: schema: type: string application/json: schema: type: string /ai/explain/proration/{orderId}/{orderLineItemId}: get: tags: - AI Summary - Experimental summary: Generate an explanation of the proration calculation description: Generate an explanation of the proration calculation for the given order line item. operationId: explainProration parameters: - name: orderId in: path description: id of the order required: true schema: type: string - name: orderLineItemId in: path description: id of the order line item required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: string /ai/agents/session/{sessionId}: get: tags: - AI Agent - Experimental summary: 'Get the agent session given the id, NOTE: at the moment there is no response body' description: 'Get the agent session given the id, NOTE: at the moment there is no response body, if 200 is returned then session exists' operationId: getAgentSession parameters: - name: sessionId in: path description: id of the session to be fetched required: true schema: type: string responses: default: description: successful operation /ai/summary/subscription/{subscriptionId}: get: tags: - AI Agent - Experimental summary: Generate a summary of the subscription in plain english in markdown format description: Generate a complete summary of the subscription with the given id, a full detailed summary will be generated including metrics operationId: generateSubscriptionSummary parameters: - name: subscriptionId in: path description: id of the subscription required: true schema: type: string responses: '200': description: successful operation content: text/event-stream: schema: type: string application/json: schema: type: string /ai/summary/order/{orderId}: get: tags: - AI Summary - Experimental summary: Generate a summary of the order in plain english in markdown format description: Generate a complete summary of the order with the given id, a full detailed summary will be generated including metrics operationId: generateOrderSummary parameters: - name: orderId in: path description: id of the order required: true schema: type: string - name: type in: query description: Force regeneration of the PDF document even if there has been no changes. Defaults to false. required: false schema: type: string responses: '200': description: successful operation content: text/event-stream: schema: type: string application/json: schema: type: string /ai/agents/session: post: tags: - AI Agent - Experimental summary: Create new conversational AI agent session description: Create a new conversation session with Subskribe AI agent, this resource will return a session id which will be used for future conversations operationId: createAgentSession responses: default: description: successful operation /ai/agents/session/{sessionId}/chat: put: tags: - AI Agent - Experimental summary: Chat with a given session id and get back a response for a given message description: The API responds user message, a session id is required to identify the session this message needs to be posted operationId: chatResponse parameters: - name: sessionId in: path description: id of the session with which the conversation needs to happen required: true schema: type: string requestBody: $ref: '#/components/requestBodies/generateZeppaArtifactBody' responses: '200': description: successful operation content: text/plain: schema: type: string application/json: schema: type: string /ai/agents/session/{sessionId}/chatAsync: get: tags: - AI Agent - Experimental summary: Chat with a given session id and get back a response for a given message in a async manner in the form of server side events description: The API responds to user message, a session id is required to identify the session this message needs to be posted operationId: chatResponseAsync parameters: - name: sessionId in: path description: id of the session with which the conversation needs to happen required: true schema: type: string - name: userMessage in: query description: the user message to which the AI can respond required: false schema: type: string responses: '200': description: successful operation content: text/event-stream: schema: $ref: '#/components/schemas/OutboundEvent' application/json: schema: $ref: '#/components/schemas/OutboundEvent' /ai/agents/session/{sessionId}/messages: get: tags: - AI Agent - Experimental summary: List the messages belong to this session description: The message will be returned in the most recent order, with the latest being the first operationId: chatMessages parameters: - name: sessionId in: path description: id of the session with which the conversation needs to happen required: true schema: type: string - name: limit in: query description: the number of message to fetch should be a number between 1 to 100 if present required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Message' /alias/subscriptionCharge/{aliasId}: get: tags: - Billing summary: Get the details of an alias description: Returns the details of the specified alias id including the subscription id and the charge id it is mapped to. operationId: getSubscriptionChargeAlias parameters: - name: aliasId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionChargeAlias' put: tags: - Billing summary: Create an alias for a subscription id/charge id pair description: This allows you to specify a string alias for a subscription id and a charge id. This can be useful when, for example, you want to upload usage statistics and would rather specify your own id (or another external id), rather than referring to Subskribe's internal ids. operationId: addSubscriptionChargeAlias parameters: - name: aliasId in: path description: alias to map to create the mapping for required: true schema: type: string - name: subscriptionId in: query description: the subscription id required: false schema: type: string - name: chargeId in: query description: the charge id required: false schema: type: string responses: default: description: successful operation delete: tags: - Billing summary: Delete the specified alias description: Deletes the specified alias mapping operationId: deleteSubscriptionChargeAlias parameters: - name: aliasId in: path required: true schema: type: string responses: default: description: successful operation /alias/subscriptionCharge: get: tags: - Billing summary: Get aliases for a subscription description: Returns all aliases for the specified subscription id. operationId: listAliasesForSubscription parameters: - name: subscriptionId in: query description: id of the subscription required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionChargeAlias' /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' /apikey/revoke: delete: tags: - Authentication summary: revoke all keys description: Revokes all keys for your tenant operationId: revokeApiKey responses: default: description: successful operation /apikey/{id}: get: tags: - Authentication summary: Retrieve an API key by id description: Retrieve an api key referenced by its id operationId: getApiKeyById parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /apikey: get: tags: - Authentication summary: Retrieves all API keys description: Retrieves a list of (maximum 500 items) all API keys (including expired and deactivated keys) operationId: getAllApiKeys responses: default: description: successful operation post: tags: - Authentication summary: Create a new api key description: Create a new api key with the specified parameters. The new key is returned operationId: createApiKey parameters: - name: role in: query description: Role-based permissions to be associated with the key. Specify this OR userId. required: false schema: type: string enum: - ADMIN - FINANCE - SALES - DEAL_DESK - BILLING_CLERK - REVENUE_CLERK - READ_ONLY - EXECUTIVE - CRM - IMPORT - name: expiry in: query description: Time of expiry in seconds since Epoch (GMT) required: false schema: type: integer format: int64 - name: userId in: query description: User to associate key with. Specify this OR role. required: false schema: type: string - name: entityId in: query description: Scope of entities that the key has access to. Either specify a single entity or all entities (i.e. *). required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: string /apikey/revoke/{id}: delete: tags: - Authentication summary: revoke an API key by id description: Revoke an api key referenced by its id operationId: revokeApiKeyById parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /approvalFlows: get: tags: - Approvals summary: Get approval flows description: Gets all approval flows operationId: getApprovalFlows responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/ApprovalFlowJson' post: tags: - Approvals summary: Add an approval flow description: Adds an approval flow to the order execution hierarchy and returns its ID operationId: addApprovalFlow requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalFlowJson' description: Json representation of the approval flow responses: '200': description: successful operation content: application/json: schema: type: string /approvalFlows/{approvalFlowId}: get: tags: - Approvals summary: Get Details of an approval flow description: Returns the details of the specified approval flow operationId: getApprovalFlowById parameters: - name: approvalFlowId in: path description: id of the approval flow required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalFlowJson' put: tags: - Approvals summary: Update an approval flow description: Updates the details of the specified approval flow operationId: updateApprovalFlow parameters: - name: approvalFlowId in: path description: id of the approval flow required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalFlowJson' description: json representing the approval flow details responses: default: description: successful operation delete: tags: - Approvals summary: Delete an approval flow description: Deletes an approval flow operationId: deleteApprovalFlow parameters: - name: approvalFlowId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalFlowJson' /approvalMatrix/csv: get: tags: - Approvals summary: Get approval matrix details description: Returns details regarding the approval matrices that have been uploaded operationId: getAllImportDetails responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/ApprovalMatrixImportDataJson' post: tags: - Approvals summary: Upload an Approval Matrix description: "Upload a csv containing the order approval matrix to be used on order execution. The csv should have the\ \ following format: \nSegment, ApprovalRoleName1, ApprovalRoleName2 ...\nSegmentName1, UserEmailOrGroupName1, UserEmailOrGroupName2\ \ ...\nRoles, userEmails, userGroups are expected to be added before putting them in this csv. Any new segment names\ \ defined here will add a new segment. If a segment isn't added, it shall be deleted." operationId: uploadApprovalMatrixCSV requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalMatrixImportDataJson' /approvalMatrix/csv/download: get: tags: - Approvals summary: Download approval matrix description: Downloads your order approval matrix as a csv operationId: getApprovalMatrixAsCsv responses: default: description: successful operation /approvalMatrix/csv/{importId}: get: tags: - Approvals summary: Get import details description: Gets the details of an import specified by the passed ID operationId: getImportDetailsById parameters: - name: importId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalMatrixImportDataJson' /approvalMatrix/csv/{importId}/download: get: tags: - Approvals summary: Download the csv for an import description: Downloads the CSV for an import activity specified by the passed ID operationId: getImportResult parameters: - name: importId in: path required: true schema: type: string responses: default: description: successful operation /approvalMatrix/csv/{importId}/preview: get: tags: - Approvals summary: Preview import changes description: Preview the changes that a specified approval matrix import will have once applied operationId: getImportPreview parameters: - name: importId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalMatrixImportPreview' /approvalMatrix/csv/{importId}/submit: post: tags: - Approvals summary: Finalize an import description: Submit and finalize the import for the specified import operation. operationId: submitApprovalMatrixCSV parameters: - name: importId in: path required: true schema: type: string responses: default: description: successful operation /approvalRoles: get: tags: - Approvals summary: Get approval roles description: Gets all approval roles operationId: getApprovalRoles responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/ApprovalRoleJson' post: tags: - Approvals summary: Add an approval role description: Adds an approval role to the order execution hierarchy and returns its ID operationId: addApprovalRole requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalRoleJson' description: Json representation of the role responses: '200': description: successful operation content: application/json: schema: type: string /approvalRoles/{approvalRoleId}: get: tags: - Approvals summary: Get Details of an approval role description: Returns the details of the specified approval role operationId: getApprovalRoleById parameters: - name: approvalRoleId in: path description: id of the approval role required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalRoleJson' put: tags: - Approvals summary: Update an approval role description: Updates the details of the specified approval role operationId: updateApprovalRole parameters: - name: approvalRoleId in: path description: id of the role required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalRoleJson' description: json representing the role details responses: default: description: successful operation delete: tags: - Approvals summary: Delete an approval role description: Deletes an approval role operationId: deleteApprovalRole parameters: - name: approvalRoleId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalRoleJson' /approvalSegments: get: tags: - Approvals summary: Get approval segments description: Get all approval segments operationId: getApprovalSegments responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/ApprovalSegmentJson' post: tags: - Approvals summary: Add an approval segment description: Define and add an approval segment which can be later specified in an approval matrix. The ID of the segment is returned. operationId: addApprovalSegment requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalSegmentJson' description: json representing the segment responses: '200': description: successful operation content: application/json: schema: type: string /approvalSegments/{approvalSegmentId}: get: tags: - Approvals summary: Get approval segment details description: Gets the details of the specified approval segment operationId: getApprovalSegmentById parameters: - name: approvalSegmentId in: path description: id of the segment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalSegmentJson' put: tags: - Approvals summary: Update an approval segment description: Update the details of the specified approval segment operationId: updateApprovalSegment parameters: - name: approvalSegmentId in: path description: id of the segment required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ApprovalSegmentJson' description: json representing the segment details responses: default: description: successful operation delete: tags: - Approvals summary: Delete a segment description: Deletes the segment specified by the id operationId: deleteApprovalSegment parameters: - name: approvalSegmentId in: path description: id of the segment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApprovalSegmentJson' /attachments/account/maxNumberOfFiles: get: tags: - Attachments summary: Get the maximum number of attachments allowed for an account description: Gets the maximum number of files allowed to be attached to any account operationId: getMaximumNumberOfAttachmentsPerAccount responses: '200': description: successful operation content: application/json: schema: type: integer format: int32 /attachments/{attachmentId}: get: tags: - Attachments summary: Get attachment contents description: Gets the contents of the specified attachment operationId: getAttachment parameters: - name: attachmentId in: path description: id of the attachment required: true schema: type: string format: uuid responses: default: description: successful operation delete: tags: - Attachments summary: Delete an attachment description: Unattaches and deletes the specified document operationId: deleteAttachmentFromAccount parameters: - name: attachmentId in: path description: id of the attachment required: true schema: type: string format: uuid responses: default: description: successful operation /attachments/account/{accountId}: get: tags: - Attachments summary: Get attachments for an account description: Lists all the documents attached to an account operationId: listAccountAttachments parameters: - name: accountId in: path description: id of the attachment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Attachment' post: tags: - Attachments summary: Add an attachment description: Attaches a document to the specified account. The post body should contain the body of the document that is to be attached. On success the Id of the attachment is returned. operationId: addAttachmentToAccount parameters: - name: fileName in: query description: name to associate with the attachment required: false schema: type: string - name: description in: query description: description of the document required: false schema: type: string - name: accountId in: path description: id of the account to attach the document to required: true schema: type: string - name: tag in: query description: tag to apply to the attachment required: false schema: type: string enum: - MASTER_SUBSCRIPTION_AGREEMENT - STATEMENT_OF_WORK - ORDER_FORM - OTHER requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Attachment' /attachments: put: tags: - Attachments summary: Update the details of an attachment description: Updates the details of the specified document operationId: modifyAttachment requestBody: content: application/json: schema: $ref: '#/components/schemas/Attachment' description: json representing the attachment responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Attachment' /auth/saml: get: tags: - Authentication summary: Get SAML Integration Status description: Retrieves SAML integration status operationId: getSamlIntegration responses: default: description: successful operation post: tags: - Authentication summary: Add a saml integration description: Adds a saml integration operationId: addSamlIntegration requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthSamlIntegrationJson' description: saml representing the integration responses: default: description: successful operation delete: tags: - Authentication summary: Delete SAML Integration description: Deletes existing SAML integration operationId: deleteSamlIntegration responses: default: description: successful operation /automatedInvoiceRules/{id}: get: tags: - Billing summary: Get automated invoice rule details description: Returns the details of the specified automated invoice rule operationId: getAutomatedInvoiceRule parameters: - name: id in: path description: Id of the automated invoice rule required: true schema: type: string responses: default: description: successful operation put: tags: - Billing summary: Update automated invoice rule details description: Updates the details of the specified automated invoice rule operationId: updateAutomatedInvoiceRule parameters: - name: id in: path description: id of the automated invoice rule required: true schema: type: string requestBody: $ref: '#/components/requestBodies/AutomatedInvoiceRuleRequestJson' responses: default: description: successful operation /automatedInvoiceRules/internal/{id}: get: tags: - Billing summary: Get automated invoice rule details via internal id description: Returns the details of the specified automated invoice rule operationId: getAutomatedInvoiceRuleByInternalId parameters: - name: id in: path description: Internal id of the automated invoice rule required: true schema: type: string responses: default: description: successful operation deprecated: true put: tags: - Billing operationId: updateAutomatedInvoiceRuleUsingInternalId parameters: - name: id in: path description: id of the automated invoice rule required: true schema: type: string requestBody: $ref: '#/components/requestBodies/AutomatedInvoiceRuleRequestJson' responses: default: description: successful operation deprecated: true /automatedInvoiceRules: get: tags: - Billing summary: Get automated invoice rules for a tenant description: Returns all the configured automated invoice rules for the tenant operationId: getAutomatedInvoiceRules responses: default: description: successful operation post: tags: - Billing summary: Create an automated invoice rule description: Creates an automated invoice rule with the specified parameters operationId: addAutomatedInvoiceRule requestBody: $ref: '#/components/requestBodies/AutomatedInvoiceRuleRequestJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AutomatedInvoiceRule' /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 /bankTransactions/match: post: tags: - Usage summary: Match bank transactions description: Match bank transactions operationId: bankTransactionsMatch requestBody: content: application/json: schema: $ref: '#/components/schemas/MatchBankTransactionsRequest' description: Invoice ID and Bank Transaction IDs to match required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceBankTransactionMatchResponse' /bankTransactions/potentialInvoices: get: tags: - BankTransactions summary: Get paginated bank transaction records description: Returns all bank transaction records in a paginated fashion operationId: getBankTransactionPotentialInvoices parameters: - name: limit in: query description: number of items per page required: false schema: type: integer format: int32 - name: pageToken in: query description: pass this to subsequent calls required: false schema: type: string - name: bankAccountId in: query description: optionally pass in bank account Id, only bank transactions for this bank account will be returned required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaginatedBankTransactionPotentialInvoiceResponse' /bankTransactions/{id}: delete: tags: - BankTransactions summary: Delete given bank transaction record description: Delete given bank transaction record operationId: deleteBankTransaction parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /bankTransactions/csv: post: tags: - BankTransactions summary: Import bank transactions via CSV description: Import bank transactions via CSV operationId: bankTransactionsCsv requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary entityId: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BankTransactionsUploadResult' /charges/{chargeId}: get: tags: - Product Catalog summary: Get charge details description: Gets the details of the specified charge. operationId: getCharge parameters: - name: chargeId in: path description: id of the charge required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ChargeJson' /charges/revrec/csv/download: get: tags: - Product Catalog summary: Download revenue recognition fields description: Downloads your charge revenue recognition fields as a csv operationId: getRevRecFieldsAsCsv responses: default: description: successful operation /charges/revrec/csv: post: tags: - Product Catalog summary: Backfill revenue recognition fields description: Backfill API to update revenue recognition fields on charges operationId: backfillRevRecFields parameters: - name: isDryRun in: query required: false schema: type: string requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: default: description: successful operation /compositeOrders/salesRoom/{shareLink}/pdf: post: tags: - Intelligent Sales Room summary: Generate a composite order PDF via Sales Room Share Link description: Generate and retrieve a PDF representation of the composite order details for a specific sales room using share link. operationId: createCompositeOrderDocumentForSalesRoom parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation /compositeOrders/{id}/status/{status}: put: tags: - Orders summary: Update composite order status description: Update the status of a specific composite order by its ID. operationId: updateCompositeOrderStatus parameters: - name: id in: path description: Uniquely identifies the composite order. required: true schema: type: string - name: status in: path description: 'New status to be set for the composite order: Draft, Submitted or Executed' required: true schema: type: string enum: - DRAFT - SUBMITTED - EXECUTED - name: statusUpdatedOn in: query description: The timestamp when composite order status was updated. required: false schema: type: integer format: int64 - name: adminApprovalFlowByPass in: query description: Admin approval to bypass the approval flow required: false schema: type: boolean responses: default: description: successful operation /compositeOrders/{id}: get: tags: - Orders summary: Fetch composite order description: Fetches the composite order with the specified id. operationId: getCompositeOrder parameters: - name: id in: path description: id of the composite order required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CompositeOrderJson' delete: tags: - Orders summary: Delete composite order description: Deletes the composite order with the specified id. operationId: deleteCompositeOrder parameters: - name: id in: path description: id of the composite order required: true schema: type: string responses: default: description: successful operation /compositeOrders/{id}/execute: put: tags: - Orders summary: Mark composite order as executed. description: Marks the composite order as executed. This also executes the individual orders contained. Optionally, the execution time can be specified using the executedOn query parameter. operationId: executeOrder parameters: - name: id in: path description: Uniquely identifies the composite order. required: true schema: type: string - name: executedOn in: query description: The date and time when the composite order was executed. required: false schema: type: integer format: int64 - name: adminApprovalFlowBypass in: query description: Bypass approval checks by admin required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CompositeOrderJson' /compositeOrders/{id}/pdf: get: tags: - Orders summary: Fetch composite order form PDF description: Downloads the order form PDF for the specified order. This PDF must have been generated via a POST to /{id}/pdf. The response is the PDF document. operationId: getCompositeOrderDocument parameters: - name: id in: path description: id of the order required: true schema: type: string responses: default: description: successful operation post: tags: - Orders summary: Generate a composite order PDF description: Generates a composite order form PDF. When completed this document can be downloaded via a get to /{id}/pdf. operationId: createCompositeOrderDocument parameters: - name: id in: path description: id of the composite order required: true schema: type: string responses: default: description: successful operation /creditmemos/{creditMemoNumber}/void: put: tags: - Credit Memo summary: Mark Credit Memo as voided description: Marks the specified Credit Memo as voided operationId: voidCreditMemo parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/VoidCreditMemoRequest' description: json representing credit memo details required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' /creditmemos: get: tags: - Credit Memo summary: Get credit memos for an account description: Returns a paginated list of credit memos for the specified account. Pass the cursor returned to subsequent calls to retrieve all data. operationId: getCreditMemoForAccount parameters: - name: accountId in: query description: id of the account required: false schema: type: string - name: cursor in: query description: cursor used to move the pages required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoPaginationResponseJson' post: tags: - Credit Memo summary: Create a standalone credit memo description: Creates a standalone credit memo for a specified account. On success the number of the new memo is returned operationId: createStandaloneCreditMemo requestBody: content: application/json: schema: $ref: '#/components/schemas/StandaloneCreditMemoRequest' description: json representing the credit memo details responses: '200': description: successful operation content: application/json: schema: type: string /creditmemos/{creditMemoNumber}: get: tags: - Credit Memo summary: Get credit memo details description: Returns the details of the specified credit memo operationId: getCreditMemo parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' put: tags: - Credit Memo summary: Update a credit memo description: Updates the details of a credit memo in DRAFT status operationId: updateDraftCreditMemo parameters: - name: creditMemoNumber in: path description: credit memo number required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/StandaloneCreditMemoRequest' description: json representation of the details to be updated responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' delete: tags: - Credit Memo summary: Delete a credit memo description: Deletes the specified credit memo. The credit memo must be in DRAFT status operationId: deleteCreditMemo parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' /creditmemos/{creditMemoNumber}/post: post: tags: - Credit Memo summary: Post a credit memo description: Sets the status of the specified credit memo to POSTED operationId: postCreditMemo parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' /creditmemos/{creditMemoNumber}/pdf: get: tags: - Credit Memo summary: Download credit memo pdf description: Downloads the pdf version of the credit memo. Note the credit memo must already have been created. If the credit memo is still in the process of being created, HTTP 202 is returned. operationId: getCreditMemoDocumentPdf parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: default: description: successful operation post: tags: - Credit Memo summary: Create a credit memo document description: Creates a pdf version of the credit memo operationId: createCreditMemoDocument parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: default: description: successful operation /creditmemos/configuration: get: tags: - Credit Memo summary: Get credit memo configuration for the tenant description: Returns the credit memo configuration for your tenant operationId: getCreditMemoConfiguration responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantCreditMemoConfigurationJson' post: tags: - Credit Memo summary: Update credit memo configuration description: Updates the credit memo configuration for you tenant. operationId: updateCreditMemoConfiguration requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantCreditMemoConfigurationJson' description: json representing the configuration responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantCreditMemoConfigurationJson' /creditmemos/convert/{invoiceNumber}: put: tags: - Credit Memo summary: Convert invoice to credit memo description: Converts the specified invoice to a credit memo. Note the invoice must be in DRAFT status and have a negative balance. operationId: convertNegativeDraftInvoice parameters: - name: invoiceNumber in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoJson' /creditmemos/{creditMemoNumber}/balance: get: tags: - Credit Memo summary: Get credit memo balance description: Gets the balance of the specified credit memo operationId: getCreditBalance parameters: - name: creditMemoNumber in: path description: number of the credit memo required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CreditMemoBalanceJson' /crmFieldMapping/csv: get: tags: - CRM field mapping summary: Get CRM field mapping upload list description: Returns details regarding the CRM field mappings that have been uploaded operationId: getAllImportDetails_1 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/CrmFieldMappingImportDataJson' post: tags: - CRM field mapping summary: Upload of CRM field mappings description: " crmType: HUBSPOT, SALESFORCE\n crmObjectType: OPPORTUNITY, ACCOUNT, ORDER\n direction: INBOUND,\ \ OUTBOUND\n crmFieldName\n subskribeFieldName\n" operationId: uploadCrmFieldMappingCsv requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CrmFieldMappingImportDataJson' /crmFieldMapping/csv/{importId}: get: tags: - CRM field mapping summary: Get import details description: Gets the details of an import specified by the passed ID operationId: getImportDetailsById_1 parameters: - name: importId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CrmFieldMappingImportDataJson' /crmFieldMapping/csv/{importId}/download: get: tags: - CRM field mapping summary: Download the csv for an import description: Downloads the CSV for an import activity specified by the passed ID operationId: getImportResult_1 parameters: - name: importId in: path required: true schema: type: string responses: default: description: successful operation /crmFieldMapping/csv/{importId}/preview: get: tags: - CRM field mapping summary: Preview import changes description: Preview the changes that a CRM field mapping import will have once applied operationId: getImportPreview_1 parameters: - name: importId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CrmFieldMappingImportPreview' /crmFieldMapping/csv/download: get: tags: - CRM field mapping summary: Download CRM field mappings description: Downloads your CRM field mappings as a csv operationId: getCrmFieldMappingAsCsv responses: default: description: successful operation /crmFieldMapping/csv/{importId}/submit: post: tags: - CRM field mapping summary: Finalize an import description: Submit and finalize the import for the specified import operation. operationId: submitCrmFieldMappingImport parameters: - name: importId in: path required: true schema: type: string 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' /customFieldDefinition: post: tags: - Custom Field summary: Create a custom field definition description: Creates a new custom field definition for your tenant. On success the id of the custom field definition is returned. operationId: createCustomFieldDefinition requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomFieldDefinitionCreateInput' description: custom field definition values required: true responses: '200': description: successful operation content: application/json: schema: type: string /customFieldDefinition/{parentObjectType}: get: tags: - Custom Field summary: Get custom field definitions description: Returns all custom field definitions for a specific parent object type operationId: getCustomFieldDefinitions parameters: - name: parentObjectType in: path description: object type custom fields are attached to required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomFieldDefinitionJson' /customFieldDefinition/{id}: put: tags: - Custom Field summary: Update an existing custom field definition description: Updates an existing custom field definition for your tenant. On success the update custom field definition is returned. operationId: updateCustomFieldDefinition parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomFieldDefinitionUpdateInput' description: custom field definition values required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CustomFieldDefinitionJson' delete: tags: - Custom Field summary: Delete a custom field definition description: Deletes an existing custom field definition for your tenant. On success the deleted custom field definition object is returned. operationId: deleteCustomFieldDefinition parameters: - name: id in: path description: object type custom fields are attached to required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CustomFieldDefinitionJson' /customField/{parentObjectType}/{parentObjectId}/{customFieldName}: put: tags: - Custom Field summary: Update an existing set of custom fields description: Updates an existing set of custom fields for a given parent object type and id. On success the update custom fields are returned. operationId: updateCustomField parameters: - name: parentObjectType in: path description: 'Object type custom fields are attached to. Available Object Types: ACCOUNT, ORDER, ORDER_ITEM, PLAN, CHARGE, INVOICE, SUBSCRIPTION_ITEM,OPPORTUNITY' required: true schema: type: string - name: parentObjectId in: path description: Id of the parent object required: true schema: type: string - name: customFieldName in: path description: Name of the custom field to be updated required: true schema: type: string requestBody: $ref: '#/components/requestBodies/CustomFieldUpdateInput' responses: default: description: successful operation /customField/{parentObjectType}/{parentObjectId}: get: tags: - Custom Field summary: Get custom fields by type and parent object id description: Returns all custom fields for a specific parent object type and id operationId: getCustomFields parameters: - name: parentObjectType in: path description: object type custom fields are attached to required: true schema: type: string - name: parentObjectId in: path description: Id of the parent object required: true schema: type: string responses: default: description: successful operation put: tags: - Custom Field summary: Update an existing set of custom fields description: Updates an existing set of custom fields for a given parent object type and id. On success the update custom fields are returned. operationId: updateCustomFields parameters: - name: parentObjectType in: path description: 'object type custom fields are attached to. Available Object Types: ACCOUNT, ORDER, ORDER_ITEM, PLAN, CHARGE, INVOICE, SUBSCRIPTION_ITEM,OPPORTUNITY' required: true schema: type: string - name: parentObjectId in: path description: Id of the parent object required: true schema: type: string requestBody: $ref: '#/components/requestBodies/updateCustomFieldsBody' responses: default: description: successful operation /customField/{parentObjectType}/{parentObjectId}/force: put: tags: - Custom Field summary: Update an existing set of custom fields description: Updates an existing set of custom fields for a given parent object type and id. On success the update custom fields are returned. operationId: forceUpdateCustomFields parameters: - name: parentObjectType in: path description: 'Object type custom fields are attached to. Available Object Types: ACCOUNT, ORDER, ORDER_ITEM, PLAN, CHARGE, INVOICE, SUBSCRIPTION_ITEM,OPPORTUNITY' required: true schema: type: string - name: parentObjectId in: path description: Id of the parent object required: true schema: type: string requestBody: $ref: '#/components/requestBodies/updateCustomFieldsBody' responses: default: description: successful operation /customField/{parentObjectType}/{parentObjectId}/{customFieldName}/force: put: tags: - Custom Field summary: Update an existing set of custom fields description: Updates an existing set of custom fields for a given parent object type and id. On success the update custom fields are returned. operationId: forceUpdateCustomField parameters: - name: parentObjectType in: path description: 'Object type custom fields are attached to. Available Object Types: ACCOUNT, ORDER, ORDER_ITEM, PLAN, CHARGE, INVOICE, SUBSCRIPTION_ITEM,OPPORTUNITY' required: true schema: type: string - name: parentObjectId in: path description: Id of the parent object required: true schema: type: string - name: customFieldName in: path description: Name of the custom field to be updated required: true schema: type: string requestBody: $ref: '#/components/requestBodies/CustomFieldUpdateInput' responses: default: description: successful operation /customization/selectionCustomization: get: tags: - Customization summary: Get the current selection customization defined description: returns a .zeppa source file for the current selection customization if present, 404 if customization is not defined operationId: getSelectionCustomization responses: default: description: successful operation put: tags: - Customization summary: Add or Update selection customization script description: "Add or Update the selection customization zeppa script in the platform. \n - once the update happens new\ \ selection customization script will take effect \n - the updated version of the script is returned with the API\ \ call \nNOTE: the account id required for this is only for test before submission \nNOTE: it *does not mean* that\ \ this customization is run only for this account.\n" operationId: addSelectionCustomization parameters: - name: testAccountId in: query description: before the script is actually stored the script is run against this test account id, it *DOES NOT MEAN* this customization is only for this account required: true schema: type: string - name: expectedVersion in: query description: "this is the expected version of the script that is currently stored \n- if the expected version does\ \ not match what is stored the call will fail \n- if the script is being added for the first time then the expected\ \ version is 0 \n- look at the GET call for how the current version number is returned" required: true schema: type: integer format: int32 requestBody: $ref: '#/components/requestBodies/generateZeppaArtifactBody' responses: default: description: successful operation /customization/orderCreationCustomization: get: tags: - Customization summary: Get the current order creation customization defined description: returns a .zeppa source file for the current order creation customization if present, 404 if customization is not defined operationId: getOrderCreationCustomization responses: default: description: successful operation put: tags: - Customization summary: Add or Update order creation customization script description: "Add or Update the order creation customization zeppa script in the platform.\n - once the update happens\ \ new this script will take effect for all order creations\n - the updated version of the script is returned with\ \ the API call\nNOTE: the order id required for this is only for test before submission\nNOTE: it *does not mean*\ \ that this customization is run only for this order.\n" operationId: addOrderCreationCustomization parameters: - name: testOrderId in: query description: before the script is actually stored its run against this test order id. it *DOES NOT MEAN* this customization is only for this order required: true schema: type: string - name: expectedVersion in: query description: 'this is the expected version of the script that is currently stored - if the expected version does not match what is stored the call will fail - if the script is being added for the first time then the expected version is 0 - look at the GET call for how the current version number is returned' required: true schema: type: integer format: int32 requestBody: $ref: '#/components/requestBodies/generateZeppaArtifactBody' responses: default: description: successful operation /deal-pulse: get: tags: - Deal Pulse summary: Get all deal pulses for tenant description: Returns all deal pulses for the current tenant, sorted by pulse score (highest first) and last updated operationId: getAllDealPulses responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DealPulseListResponse' /deal-pulse/sales-rooms/{salesRoomId}: get: tags: - Deal Pulse summary: Get deal pulse for a specific sales room description: Returns the calculated deal pulse score, category, AI recommendations, and engagement details for a sales room operationId: getDealPulse parameters: - name: salesRoomId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DealPulseOverview' /deal-pulse/sales-rooms/{salesRoomId}/events: post: tags: - Deal Pulse summary: Track deal pulse event description: Records a deal pulse event and triggers pulse score recalculation operationId: trackDealPulseEvent parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackDealPulseEventRequest' description: Deal pulse event tracking request required: true x-examples: application/json: "{\n \"userEmail\": \"mike.jones@company.com\",\n \"eventType\": \"YOUTUBE_COMPLETE\",\n \"\ metadata\": {\"videoTitle\": \"Product Demo\", \"duration\": 180}\n}" responses: default: description: successful operation /discounts: get: tags: - Discounts summary: Get discounts description: Returns all discounts that have been defined operationId: getDiscounts responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/DiscountJson' post: tags: - Discounts summary: Create a discount description: Creates a discount with the specified details. On success, the ID of the new discount is returned. operationId: addDiscount requestBody: content: application/json: schema: $ref: '#/components/schemas/DiscountJson' description: details of the discount responses: '200': description: successful operation content: application/json: schema: type: string /discounts/{id}: get: tags: - Discounts summary: Get discount description: Returns the details of the specified discount. operationId: getDiscount parameters: - name: id in: path description: id of the discount required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DiscountJson' put: tags: - Discounts summary: Update discount details description: Updates the details of the specified discount. Note that a discount cannot be updated once it is in use by an order. operationId: updateDiscount parameters: - name: id in: path description: id of the discount required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/DiscountJson' responses: default: description: successful operation delete: tags: - Discounts summary: Delete a discount description: Deletes a discount. Note that a discount may not be deleted if it is in use. operationId: deleteDiscount parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /discounts/{id}/status/{status}: put: tags: - Discounts summary: Update discount status description: Updates the status of a discount operationId: updateDiscountStatus parameters: - name: id in: path description: id of the discount required: true schema: type: string - name: status in: path description: new status to set required: true schema: type: string enum: - ACTIVE - DEPRECATED responses: default: description: successful operation /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' /predefinedTerms: get: tags: - Documents summary: Get predefined terms description: Returns predefined terms by type. These templates can be attached to orders as part of PDF document generation. operationId: getDocumentTemplates parameters: - name: type in: query required: false schema: type: string enum: - ORDER - INVOICE - INVOICE_EMAIL - CREDIT_MEMO - EMAIL - UPSELL_EARLY_RENEWAL - DUNNING - CANCEL_AND_RESTRUCTURE - ESIGN responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateJson' post: tags: - Documents summary: Add new predefined terms description: Add a new predefined terms that can be attached to an order as part of PDF document generation. operationId: addDocumentTemplate requestBody: $ref: '#/components/requestBodies/DocumentTemplateRequestJson' responses: '200': description: successful operation content: application/json: schema: type: string /predefinedTerms/{id}/versions: get: tags: - Documents summary: Get predefined terms versions description: Returns predefined terms versions by Id. operationId: getDocumentTemplateVersions parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateJson' /predefinedTerms/{id}: get: tags: - Documents summary: Get predefined terms detail description: Returns a specific predefined terms by Id. operationId: getDocumentTemplate parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateJson' put: tags: - Documents summary: Update predefined terms description: Updates a predefined terms operationId: updateDocumentTemplate parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/DocumentTemplateRequestJson' responses: default: description: successful operation delete: tags: - Documents summary: Delete predefined terms description: Deletes the predefined terms specified. operationId: deleteDocumentTemplate parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateJson' /predefinedTerms/{id}/status/{status}: put: tags: - Documents summary: Update predefined terms status description: Updates the status of a predefined terms operationId: updateDocumentTemplateStatus parameters: - name: id in: path description: id of the predefined terms required: true schema: type: string - name: status in: path description: new status to set required: true schema: type: string enum: - DRAFT - ACTIVE - DEPRECATED responses: default: description: successful operation /predefinedTerms/{id}/versions/{version}: get: tags: - Documents summary: Get predefined terms version detail description: Returns a specific predefined terms by Id and version. operationId: getDocumentTemplateVersion parameters: - name: id in: path required: true schema: type: string - name: version in: path required: true schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateJson' /dunning/sendInvoiceReminder/{invoiceNumber}: post: tags: - Billing summary: Send an Invoice Reminder description: Sends a reminder email for the specified invoice operationId: sendInvoiceReminder parameters: - name: invoiceNumber in: path description: number of the invoice required: true schema: type: string responses: default: description: successful operation /dunning/sendTestEmail/{reminderType}: post: tags: - Billing summary: Send a test email description: Sends a test email for dunning to the use associated with this API call. Note A user bound api key is required for this operation. operationId: sendTestDunningEmail parameters: - name: reminderType in: path description: type of the reminder required: true schema: type: string enum: - WEEK_BEFORE_DUE_DATE - DUE_DATE - WEEK_AFTER_DUE_DATE - TWO_WEEKS_AFTER_DUE_DATE - MONTH_AFTER_DUE_DATE - TWO_MONTHS_AFTER_DUE_DATE responses: default: description: successful operation /dunningSetting: get: tags: - Billing summary: Get dunning settings description: Returns the dunning settings for your tenant operationId: getDunningSetting responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DunningSettingJson' put: tags: - Billing summary: Update dunning settings description: Updates the dunning settings for your tenant operationId: updateDunningSetting requestBody: content: application/json: schema: $ref: '#/components/schemas/DunningSettingJson' description: json representing the dunning settings responses: default: description: successful operation /emailSettings: get: tags: - Email summary: Fetch the email settings description: Returns a list of email settings operationId: getEmailSettings responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/EmailSetting' post: tags: - Email summary: Add a new email setting description: '' operationId: addEmailSetting requestBody: $ref: '#/components/requestBodies/EmailSetting' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/EmailSetting' put: tags: - Email summary: Update an existing email setting description: '' operationId: updateEmailSetting requestBody: $ref: '#/components/requestBodies/EmailSetting' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/EmailSetting' delete: tags: - Email summary: Delete an email setting description: '' operationId: deleteEmailSetting requestBody: $ref: '#/components/requestBodies/EmailSetting' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/EmailSetting' /entities: get: tags: - Entities summary: Gets entities description: Gets all entities operationId: getEntities responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/EntityJson' post: tags: - Entities summary: Create an entity description: Create an entity. On success return the created entity. operationId: create requestBody: content: application/json: schema: $ref: '#/components/schemas/EntityJson' description: entity responses: default: description: successful operation /entities/{id}: get: tags: - Entities summary: Gets entity details description: Gets the entity details of the specified entity id operationId: getEntityById parameters: - name: id in: path description: entity id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Entity' delete: tags: - Entities summary: Delete entity description: Delete the entity if there is no data associated with it. operationId: deleteEntity parameters: - name: id in: path description: entity id required: true schema: type: string responses: default: description: successful operation /entities/logo/{entityId}: get: tags: - Entities summary: Get entity logo description: Get the current logo stored for the given entity operationId: getLogo parameters: - name: entityId in: path required: true schema: type: string responses: default: description: successful operation put: tags: - Entities summary: Update entity logo description: Updates the logo used in external facing communication such as order forms and invoices operationId: uploadLogo parameters: - name: entityId in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: default: description: successful operation /erp/processSyncTasks/{accountingPeriodId}: post: tags: - ERP summary: Trigger ERP journal entry sync task description: Trigger ERP journal entry sync task for given accounting period id operationId: processSyncTasks parameters: - name: accountingPeriodId in: path required: true schema: type: string responses: default: description: successful operation /erp/processDeleteTasks/{accountingPeriodId}: post: tags: - ERP summary: Trigger ERP journal entry deletion task description: Trigger ERP journal entry deletion task for the given accounting period id operationId: processDeleteTasks parameters: - name: accountingPeriodId in: path required: true schema: type: string responses: default: description: successful operation /erp/syncInvoice/{invoiceId}: post: tags: - ERP summary: Trigger ERP invoice sync task description: Trigger ERP invoice sync task for the given invoice id operationId: syncInvoiceToErp parameters: - name: invoiceId in: path required: true schema: type: string responses: default: description: successful operation /erp/syncInvoice/enabled: get: tags: - ERP summary: Check if invoice sync to ERP is enabled description: Checks if invoice sync to ERP is enabled operationId: isSyncInvoiceToErpEnabled responses: default: description: successful operation /erp/syncInvoices: post: tags: - ERP summary: Trigger ERP invoice sync tasks for multiple invoices description: Trigger ERP invoice sync tasks for the given list of invoice IDs operationId: syncInvoicesToErp requestBody: $ref: '#/components/requestBodies/syncInvoicesToErpBody' responses: default: description: successful operation /erp/syncCreditMemo/{creditMemoNumber}: post: tags: - ERP summary: Trigger ERP credit memo sync task description: Trigger ERP credit memo sync task for the given credit memo number operationId: syncCreditMemoToErp parameters: - name: creditMemoNumber in: path required: true schema: type: string responses: default: description: successful operation /erp/syncVoidInvoice/{invoiceNumber}: post: tags: - ERP summary: Trigger ERP void invoice sync task description: Trigger ERP void invoice sync task for the given invoice number operationId: syncVoidInvoiceToErp parameters: - name: invoiceNumber in: path required: true schema: type: string responses: default: description: successful operation /guidedSelling/usecase/{id}/qscript: get: tags: - Experimental operationId: getUsecaseScript parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation put: tags: - Experimental operationId: putQScript parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/generateZeppaArtifactBody' responses: default: description: successful operation /guidedSelling/usecase: get: tags: - Experimental operationId: listUsecases responses: default: description: successful operation post: tags: - Experimental operationId: addUsecase requestBody: $ref: '#/components/requestBodies/GuidedSellingUsecase' responses: default: description: successful operation /guidedSelling/usecase/{usecase}/nextQuestion: put: tags: - Experimental summary: Get Next Question for Guided Selling description: Get the next question given a set of answers to questions so far operationId: fetchNextQuestion parameters: - name: usecase in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/AnswerArray' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/NextQuestion' /guidedSelling/usecase/{usecase}/nextQuestions: put: tags: - Experimental summary: Get The next set of questions based on the answers provided so far description: Get the ordered list of all relevant questions to answer based on the answers provided so far operationId: fetchNextQuestions parameters: - name: usecase in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/AnswerArray' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/NextQuestions' /guidedSelling/usecase/{id}: get: tags: - Experimental operationId: getUsecase parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation put: tags: - Experimental operationId: updateUsecase parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/GuidedSellingUsecase' responses: default: description: successful operation delete: tags: - Experimental operationId: deleteUsecase parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /guidedSelling/usecase/{usecase}/buildOrder: put: tags: - Experimental summary: Build an order using the guided selling answers description: For a given use case this API allows building the order, given account id. you can also save the order operationId: buildOrderFromAnswers parameters: - name: usecase in: path required: true schema: type: string - name: accountId in: query required: true schema: type: string - name: saveOrder in: query required: false schema: type: string requestBody: $ref: '#/components/requestBodies/AnswerArray' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /guidedSelling/ai/answers: put: tags: - Experimental summary: Use AI to get answers for guided selling questions description: Get the answer to guided selling questions form the deal desk AI, when all questions are answered then return the Answers for the guided selling operationId: getAnswersFromAi requestBody: content: application/json: schema: $ref: '#/components/schemas/GuidedSellingInput' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/MessagesAndAnswer' /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 /import/{importId}/result: get: tags: - Import summary: Get import details description: Returns the details of an import by its ID operationId: getImportResult_2 parameters: - name: importId in: path required: true schema: type: string responses: default: description: successful operation /import: get: tags: - Import summary: Gets all import items description: Gets all items that was imported operationId: getDataImports responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DataImport' post: tags: - Import summary: Validate import file description: Validates a multi-part import file. Returns an import ID on success. operationId: validateMultiPartFileImport requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: type: string /import/{importId}: get: tags: - Import summary: Gets an import item description: Gets an item that was imported by its ID operationId: getDataImportById parameters: - name: importId in: path description: id of the item required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DataImport' /import/export/newOrders: get: tags: - Import summary: Get new orders in import CSV format description: Gets new orders in a format appropriate for re-import. On success, the output is a csv containing the orders. operationId: getNewOrderExportInImportFormat parameters: - name: useRealIds in: query description: use the subskribe ID instead of external ID for exported objects required: false schema: type: boolean responses: default: description: successful operation /import/export/amendmentOrders: get: tags: - Import summary: Get amendment orders in import CSV format description: Gets amendment orders in a format appropriate for re-import for the given generation. On success, the output is a csv containing the orders. operationId: getAmendmentOrderExportInImportFormat parameters: - name: generation in: query description: the generation of amendments to include in the export, generations are defined as 1 based index of number of amendments applied to subscription required: false schema: type: integer format: int32 - name: useRealIds in: query description: use the subskribe ID instead of external ID for exported objects required: false schema: type: boolean responses: default: description: successful operation /import/export/accountContact: get: tags: - Import summary: Get account contacts for export description: Gets account contacts in a format appropriate for re-import. On success, the output is a csv containing the account and contacts. operationId: getAccountContactsInImportFormat responses: default: description: successful operation /import/export/catalog: get: tags: - Import summary: Get catalog data for export description: Gets catalog data in a format appropriate for re-import. On success, the output is a csv containing the catalog data containing Product, Plan and Charge data. operationId: getCatalogDataInImportFormat responses: default: description: successful operation /import/{importId}/process: put: tags: - Import summary: Process an import by ID description: Processes the import specified. operationId: processImport parameters: - name: importId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DataImport' /import/schemas: get: tags: - Import summary: Return available schemas description: Returns the set of schemas available for import operationId: getAvailableSchemas responses: '200': description: successful operation content: application/json: schema: type: object additionalProperties: type: array items: type: object /import/flatfile/{domain}: post: tags: - Import summary: Create a Flatfile workbook description: Creates a Flatfile workbook and adds it to a space operationId: createFlatfileWorkbook parameters: - name: domain in: path description: the domain to import required: true schema: type: string enum: - ORDER responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/FlatfileWorkbookResponse' /intelligent-sales-rooms/{salesRoomId}/files/{fileId}: delete: tags: - Intelligent Sales Room summary: Delete a file description: Deletes an uploaded file operationId: deleteFile parameters: - name: salesRoomId in: path required: true schema: type: string - name: fileId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/files: get: tags: - Intelligent Sales Room summary: Get all files for a sales room description: Returns all uploaded files operationId: getFiles parameters: - name: salesRoomId in: path required: true schema: type: string - name: category in: query required: false schema: type: string enum: - MEDIA - ATTACHMENT - LOGO responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomFile' post: tags: - Intelligent Sales Room summary: Upload a file description: Uploads a file to the sales room operationId: uploadFile parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary originalFileName: type: string fileSize: type: integer format: int64 contentType: type: string category: type: string enum: - MEDIA - ATTACHMENT - LOGO responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomFile' /intelligent-sales-rooms: post: tags: - Intelligent Sales Room summary: Create a new intelligent sales room description: Creates a new sales room for the specified order operationId: createSalesRoom parameters: - name: orderId in: query required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomOverviewResponse' /intelligent-sales-rooms/by-order/{orderId}: get: tags: - Intelligent Sales Room summary: Get sales room by order ID description: Returns the sales room for the specified order, creating one if it doesn't exist operationId: getSalesRoomByOrderId parameters: - name: orderId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomOverviewResponse' /intelligent-sales-rooms/{salesRoomId}: get: tags: - Intelligent Sales Room summary: Get sales room by ID description: Returns the sales room details operationId: getSalesRoomById parameters: - name: salesRoomId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomOverviewResponse' /intelligent-sales-rooms/{salesRoomId}/widgets/{widgetId}: put: tags: - Intelligent Sales Room summary: Update a widget description: Updates widget name and content operationId: updateWidget parameters: - name: salesRoomId in: path required: true schema: type: string - name: widgetId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomUpdateWidgetRequest' description: Widget update request with type-specific content format required: true x-examples: application/json: "{\n \"name\": \"Updated AI Introduction\",\n \"content\": \"{\\\"type\\\": \\\"AI_GENERATED_TEXT\\\ \", \\\"aiContentId\\\": \\\"content-uuid-123\\\", \\\"displayContent\\\": \\\"This is the updated AI generated\ \ content...\\\"}\"\n}" responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomWidget' delete: tags: - Intelligent Sales Room summary: Delete a widget description: Deletes a user-generated widget operationId: deleteWidget parameters: - name: salesRoomId in: path required: true schema: type: string - name: widgetId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/widgets/reorder: put: tags: - Intelligent Sales Room summary: Reorder widgets description: Updates the sort order of all widgets operationId: reorderWidgets parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomReorderWidgetsRequest' responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/theme: get: tags: - Intelligent Sales Room summary: Get sales room theme description: Returns the current theme settings operationId: getTheme parameters: - name: salesRoomId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomTheme' put: tags: - Intelligent Sales Room summary: Update theme manually description: Updates theme with user-provided values operationId: updateTheme parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomUpdateThemeRequest' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomTheme' /intelligent-sales-rooms/{salesRoomId}/widgets/{widgetId}/ai-content: post: tags: - Intelligent Sales Room summary: Generate AI content for widget description: Generates AI content based on order context operationId: generateAIContent parameters: - name: salesRoomId in: path required: true schema: type: string - name: widgetId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomAIGeneratedContent' /intelligent-sales-rooms/{salesRoomId}/ai-content/{contentId}: put: tags: - Intelligent Sales Room summary: Update AI generated content description: Updates AI content with user edits operationId: updateAIContent parameters: - name: salesRoomId in: path required: true schema: type: string - name: contentId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomUpdateAIContentRequest' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomAIGeneratedContent' /intelligent-sales-rooms/{salesRoomId}/activate: post: tags: - Intelligent Sales Room summary: Activate sales room description: Moves sales room from READY_TO_SHARE to ACTIVE status operationId: activateSalesRoom parameters: - name: salesRoomId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/retract: post: tags: - Intelligent Sales Room summary: Retract sales room description: Moves sales room from ACTIVE to READY_TO_SHARE status operationId: retractSalesRoom parameters: - name: salesRoomId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/accept: post: tags: - Intelligent Sales Room summary: Accept sales room proposal (using share link) description: Moves sales room (using share link) to ACCEPTED status operationId: acceptSalesRoom parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/accept: post: tags: - Intelligent Sales Room summary: Accept sales room proposal description: Moves sales room to ACCEPTED status operationId: acceptSalesRoom_1 parameters: - name: salesRoomId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/engagement/summary: get: tags: - Intelligent Sales Room summary: Get engagement summary description: Returns engagement metrics and summary operationId: getEngagementSummary parameters: - name: salesRoomId in: path required: true schema: type: string - name: fromDate in: query required: false schema: type: integer format: int64 - name: toDate in: query required: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomEngagementSummaryResponse' /intelligent-sales-rooms/{salesRoomId}/engagement/activity: get: tags: - Intelligent Sales Room summary: Get activity logs description: Returns activity logs with optional date filtering and pagination operationId: getActivityLogs parameters: - name: salesRoomId in: path required: true schema: type: string - name: fromDate in: query required: false schema: type: integer format: int64 - name: toDate in: query required: false schema: type: integer format: int64 - name: limit in: query description: Number of records to return required: false schema: type: integer format: int32 default: 10 - name: pageToken in: query description: Page token for pagination required: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomActivityLog' /intelligent-sales-rooms/{salesRoomId}/share-access: get: tags: - Intelligent Sales Room summary: Get share link access records description: Returns all users who have accessed via share link operationId: getShareLinkAccesses parameters: - name: salesRoomId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomShareLinkAccess' /intelligent-sales-rooms/{salesRoomId}/visitors/count: get: tags: - Intelligent Sales Room summary: Get unique visitor count description: Returns the number of unique visitors operationId: getUniqueVisitorCount parameters: - name: salesRoomId in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/customer-information: put: tags: - Intelligent Sales Room summary: Update customer information description: Updates billing and/or shipping contact information operationId: updateCustomerInformation parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/IntelligentSalesRoomUpdateCustomerInfoRequest' responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/custom-fields: get: tags: - Intelligent Sales Room summary: Fetch custom fields for an Intelligent Sales Room description: Retrieves the custom fields for the specified Intelligent Sales Room. operationId: getCustomFields_1 parameters: - name: salesRoomId in: path required: true schema: type: string responses: default: description: successful operation put: tags: - Intelligent Sales Room summary: Update custom fields for an Intelligent Sales Room description: Updates the custom fields for the specified Intelligent Sales Room. operationId: updateCustomFields_1 parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/updateCustomFields_1Body' responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/events: post: tags: - Intelligent Sales Room summary: Track user event description: Records user interaction events operationId: trackEvent parameters: - name: shareLink in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomTrackEventRequest' responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/custom-fields: get: tags: - Intelligent Sales Room summary: Fetch custom fields for an Intelligent Sales Room (via share link) description: Retrieves the custom fields for the specified Intelligent Sales Room (via share link). operationId: getCustomFieldsViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation put: tags: - Intelligent Sales Room summary: Update custom fields for an Intelligent Sales Room (via share link) description: Updates the custom fields for the specified Intelligent Sales Room (via share link). operationId: updateCustomFieldsViaShareLink parameters: - name: shareLink in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/updateCustomFields_1Body' responses: default: description: successful operation /intelligent-sales-rooms/{salesRoomId}/widgets: get: tags: - Intelligent Sales Room summary: Get all widgets for a sales room description: Returns all widgets ordered by sort order operationId: getWidgets parameters: - name: salesRoomId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomWidget' post: tags: - Intelligent Sales Room summary: Create a new widget description: 'Creates a new user-generated widget with type-specific content structure. Content format by widget type: - RICH_TEXT: {"html": "HTML content"} - AI_GENERATED_TEXT: {} (empty object - content is generated by calling the AI generation endpoint after widget creation) - MEDIA_CONTENT: {"type": "YOUTUBE_VIDEO|LINK|FILE_UPLOAD|GOOGLE_WORKSPACE|PDF_UPLOAD", "url": "...", "fileId": "...", "title": "..."} - USER_PDF: {"fileId": "uploaded-file-uuid"} Media content types: - YOUTUBE_VIDEO: YouTube video URLs - LINK: Generic web links - FILE_UPLOAD: References uploaded files via fileId - GOOGLE_WORKSPACE: Google Docs/Sheets/Slides URLs - PDF_UPLOAD: References uploaded PDF files via fileId AI Generated content structure after generation: - type: "AI_GENERATED_TEXT" - aiContentId: UUID of the generated content record - displayContent: The actual generated text content ' operationId: createWidget parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomCreateWidgetRequest' description: Widget creation request with type-specific content format required: true x-examples: application/json: "{\n \"type\": \"AI_GENERATED_TEXT\",\n \"name\": \"Smart Introduction\",\n \"content\": \"\ {}\"\n}" responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomWidget' /intelligent-sales-rooms/{salesRoomId}/theme/extract: post: tags: - Intelligent Sales Room summary: Extract theme from website description: Automatically extracts branding from website using AI operationId: extractTheme parameters: - name: salesRoomId in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomExtractThemeRequest' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomTheme' /intelligent-sales-rooms/{salesRoomId}/files/{fileId}/download: get: tags: - Intelligent Sales Room summary: Get file download URL description: Returns a presigned URL for file download operationId: getFileDownloadUrl parameters: - name: salesRoomId in: path required: true schema: type: string - name: fileId in: path required: true schema: type: string - name: expirationMinutes in: query description: URL expiration in minutes required: false schema: type: integer format: int32 default: 60 responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/order/pdf: get: tags: - Intelligent Sales Room summary: Fetch order form PDF for an Intelligent Sales Room description: Downloads the order form PDF for the specified Intelligent Sales Room. operationId: getOrderDocument parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/access: post: tags: - Intelligent Sales Room summary: Access sales room via share link description: End-user access to sales room using share link operationId: accessViaShareLink parameters: - name: shareLink in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomShareLinkAccessRequest' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomOverviewResponse' /intelligent-sales-rooms/share/{shareLink}/widgets: get: tags: - Intelligent Sales Room summary: Get widgets via share link description: End-user access to sales room widgets operationId: getWidgetsViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomWidget' /intelligent-sales-rooms/share/{shareLink}/theme: get: tags: - Intelligent Sales Room summary: Get theme via share link description: End-user access to sales room theme operationId: getThemeViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomTheme' /intelligent-sales-rooms/share/{shareLink}/files: get: tags: - Intelligent Sales Room summary: Get files via share link description: End-user access to sales room files operationId: getFilesViaShareLink parameters: - name: shareLink in: path required: true schema: type: string - name: category in: query required: false schema: type: string enum: - MEDIA - ATTACHMENT - LOGO responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomFile' /intelligent-sales-rooms/share/{shareLink}/files/{fileId}/download: get: tags: - Intelligent Sales Room summary: Get file download URL via share link description: End-user access to file download operationId: getFileDownloadUrlViaShareLink parameters: - name: shareLink in: path required: true schema: type: string - name: fileId in: path required: true schema: type: string - name: expirationMinutes in: query description: URL expiration in minutes required: false schema: type: integer format: int32 default: 60 responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}: get: tags: - Intelligent Sales Room summary: Get sales room details via share link description: End-user access to basic sales room information operationId: getSalesRoomViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomOverviewResponse' /intelligent-sales-rooms/share/{shareLink}/ai-content: get: tags: - Intelligent Sales Room summary: Get AI content via share link description: End-user access to AI generated content operationId: getAIContentViaShareLink parameters: - name: shareLink in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/IntelligentSalesRoomAIGeneratedContent' /intelligent-sales-rooms/share/{shareLink}/customer-information: put: tags: - Intelligent Sales Room summary: Update customer information via share link description: End-user update of customer information via share link operationId: updateCustomerInformationViaShareLink parameters: - name: shareLink in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/IntelligentSalesRoomUpdateCustomerInfoRequest' responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/image/{fileName}: get: tags: - Intelligent Sales Room summary: Download image file via share link description: Downloads image file for public access operationId: downloadImageViaShareLink parameters: - name: shareLink in: path required: true schema: type: string - name: fileName in: path required: true schema: type: string responses: default: description: successful operation /intelligent-sales-rooms/share/{shareLink}/esign: post: tags: - Intelligent Sales Room summary: Send email for e-signature via share link description: Sends email for eSign for Sales Room via share link operationId: sendEmailForEsignViaShareLink parameters: - name: shareLink in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailContact' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomEngagementSession' /intelligent-sales-rooms/share/{shareLink}/order-metadata: get: tags: - Intelligent Sales Room summary: Fetch order metadata for an Intelligent Sales Room description: Retrieves the corder metadata for the specified Intelligent Sales Room. operationId: getOrderMetadata parameters: - name: shareLink in: path required: true schema: type: string responses: default: description: successful operation /invoices/bulk/{bulkInvoiceRunId}: get: tags: - Billing summary: Get bulk invoice run details description: Returns the details of the specified bulk invoice run operationId: getBulkInvoiceRun parameters: - name: bulkInvoiceRunId in: path description: id of the run required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BulkInvoiceRun' /invoices/bulk/{bulkInvoiceRunId}/runItems: get: tags: - Billing summary: Get items for bulk invoice run description: Returns the items associated with the specified bulk invoice run operationId: getBulkInvoiceRunItems parameters: - name: bulkInvoiceRunId in: path description: id of the run required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/BulkInvoiceRunItem' /invoices/{number}/balance: get: tags: - Billing summary: Get invoice balance description: Returns the balance of the specified invoice number operationId: getInvoiceBalance parameters: - name: number in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceBalanceJson' /invoices/{number}: get: tags: - Billing summary: Get invoice details description: Returns the details of the specified invoice number operationId: getInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string - name: includeDeleted in: query description: include deleted invoice items required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' put: tags: - Billing summary: Update invoice details description: Updates the details of the specified invoice. operationId: updateInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateInvoiceRequest' description: json representing invoice details required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' delete: tags: - Billing summary: Delete invoice description: Deletes the specified invoice operationId: deleteInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' /invoices/generate: post: tags: - Billing summary: Generate subscription invoices description: Generates the invoices for the given subscription operationId: generateInvoice parameters: - name: subscriptionId in: query description: id of the subscription required: true schema: type: string - name: targetDate in: query description: Time in seconds since Epoch (GMT) to generate invoice from required: true schema: type: integer format: int64 - name: invoiceDate in: query description: Time in seconds since Epoch (GMT) to set invoice date to required: false schema: type: integer format: int64 - name: invoiceChargeInclusionOption in: query description: types of charges to include required: true schema: type: string enum: - INCLUDE_USAGE - EXCLUDE_USAGE - ONLY_USAGE responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceJson' /invoices/preview: get: tags: - Billing summary: Preview invoices description: Returns a preview of invoice for the specified order id OR subscription id operationId: previewInvoiceByOrderPeriod parameters: - name: orderId in: query description: id of order required: false schema: type: string - name: subscriptionId in: query description: id of subscription required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoicePreviewJson' /invoices/unbilledUsage: get: tags: - Billing summary: Get unbilled usage description: Returns the unbilled usage invoice items for the specified subscription operationId: previewInvoiceByOrderPeriod_1 parameters: - name: subscriptionId in: query description: id of the subscription required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceItemJson' /invoices: get: tags: - Billing summary: Get all invoices for a subscription description: Returns all invoices for a subscription. The result is paginated. Use the cursor returned from a request in subsequent calls to retrieve all results. operationId: getInvoices parameters: - name: subscriptionId in: query required: false schema: type: string - name: status in: query description: status filter for invoices required: false schema: type: string enum: - DRAFT - POSTED - PAID - CONVERTED - VOIDED - name: cursor in: query description: used to iterate through all results required: false schema: type: string format: uuid - name: limit in: query description: number of items per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJsonPaginationResponse' /invoices/{number}/voided: delete: tags: - Billing summary: Delete voided invoice description: Deletes the specified invoice operationId: deleteVoidedInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' /invoices/{number}/post: post: tags: - Billing summary: Mark invoice as posted description: Marks the specified invoice as posted operationId: postInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' /invoices/{number}/void: put: tags: - Billing summary: Mark invoice as voided description: Marks the specified invoice as voided operationId: voidInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/VoidInvoiceRequest' description: json representing invoice details required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceJson' /invoices/{invoiceNumber}/pdf: get: tags: - Billing summary: Download invoice PDF description: Downloads the PDF for an invoice after it has been generated via a POST to /{invoiceNumber}/pdf. The data return will be the PDF document contents. operationId: getInvoiceDocumentPdf parameters: - name: invoiceNumber in: path description: number of the invoice required: true schema: type: string responses: default: description: successful operation post: tags: - Billing summary: Generate invoice PDF description: Generates a PDF version of the specified invoice. Once generated, PDF can be later fetched via a call to /{invoiceNumber}/pdf. operationId: createInvoiceDocument parameters: - name: invoiceNumber in: path required: true schema: type: string - name: force in: query description: Force regeneration of the PDF document even if there has been no changes. Defaults to false. required: false schema: type: boolean responses: default: description: successful operation /invoices/schedule/{id}: delete: tags: - Billing summary: Delete an existing billing schedule description: Billing schedules must be deleted in reverse chronological order. operationId: deleteBillingSchedule parameters: - name: id in: path description: billing schedule entry id required: true schema: type: string format: uuid responses: default: description: successful operation /invoices/schedule: get: tags: - Billing summary: Get billing schedules for a subscription line item description: Retrieve all billing schedules for a subscription line item operationId: getBillingSchedules parameters: - name: subscriptionId in: query required: true schema: type: string - name: subscriptionChargeId in: query required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/BillingEventEntry' post: tags: - Billing summary: Add a new billing schedule for subscription line item description: Creates a new billing schedule entry for an event based charge operationId: addBillingSchedule requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingEventInput' description: new billing event required: true responses: '200': description: successful operation content: application/json: schema: type: string /invoices/bulk/{bulkInvoiceRunId}/post: put: tags: - Billing summary: Posts invoices for a bulk run description: Marks all invoices associated with the specified bulk run as posted operationId: postInvoicesForBulkInvoiceRun parameters: - name: bulkInvoiceRunId in: path description: id of the run required: true schema: type: string requestBody: $ref: '#/components/requestBodies/postInvoicesForBulkInvoiceRunBody' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BulkInvoiceRun' /invoices/bulk/email: post: tags: - Billing summary: Send emails for multiple invoices description: Trigger tasks for sending emails for the given list of invoice IDs operationId: sendBulkInvoiceEmail requestBody: content: application/json: schema: type: array items: type: string description: List of invoice numbers to email required: true responses: default: description: successful operation /invoices/sequence/{invoiceConfigId}: post: tags: - Billing summary: Update invoice sequence description: Updates the invoice sequence by invoice config id. operationId: updateInvoiceSequence parameters: - name: invoiceConfigId in: path description: invoice config id required: true schema: type: string - name: next invoice number in: query description: long integer value required: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantInvoiceConfig' /invoices/previewAllInvoices: get: tags: - Billing summary: Preview all invoices description: Returns a preview of invoice for the specified order id OR subscription id operationId: previewAllInvoice parameters: - name: orderId in: query description: id of order required: false schema: type: string - name: subscriptionId in: query description: id of subscription required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoicePreviewJson' /invoices/usage: get: tags: - Billing summary: Get usage description: Returns the usage invoice items for the specified subscription and charge operationId: getUsageForSubscriptionCharge parameters: - name: subscriptionId in: query description: id of the subscription required: true schema: type: string - name: chargeId in: query description: id of the charge required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceItemJson' /invoices/{number}/canDelete: get: tags: - Billing summary: Check if invoice can be deleted description: Response contains flag to indicate if the invoice can be deleted and reason if it cannot be deleted operationId: getCanDeleteInvoice parameters: - name: number in: path description: number of the invoice required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/InvoiceDeletableResponse' /invoices/{invoiceNumber}/documentJson: get: tags: - Billing summary: Get the invoice document JSON that is used to render invoice PDF description: Invoice document JSON that contains all details required to render full Invoice document operationId: getRawInvoiceDocumentJson parameters: - name: invoiceNumber in: path description: number of the invoice required: true schema: type: string responses: default: description: successful operation /invoices/{invoiceNumber}/email: post: tags: - Billing summary: Send invoice email to contacts description: Send the invoice to recipients via email with invoice PDF as attachment. operationId: emailInvoice parameters: - name: invoiceNumber in: path required: true schema: type: string responses: default: description: successful operation /invoices/bulk: post: tags: - Billing summary: Create a bulk invoice run description: Creates a bulk invoice run as specified by the input parameters. On success the id of the run is returned. operationId: createBulkInvoiceRun requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkInvoiceRunInput' description: json representing the run parameters required: true responses: '200': description: successful operation content: application/json: schema: type: string /settlements/applicablePaymentBankAccounts: get: tags: - Billing summary: Get applicable payment bank accounts for invoice payment description: Returns a list of applicable payment bank accounts that can be used for payment for a given invoice number operationId: getApplicablePaymentBankAccountsForInvoicePayment parameters: - name: invoiceNumber in: query description: Invoice number required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/PaymentBankAccountJson' /settlements/{id}: get: tags: - Billing summary: Get settlement application details description: Gets the details of specified settlement application. operationId: getSettlementApplication parameters: - name: id in: path description: id of the settlement application required: true schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SettlementApplication' /settlements: get: tags: - Billing summary: Get settlement applications description: Returns the settlement applications for the specified invoice number or payment object. operationId: getSettlementApplications parameters: - name: invoiceNumber in: query description: number of the invoice required: false schema: type: string - name: paymentId in: query description: Id of payment required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/SettlementApplication' /settlements/addAndApplyPayment: post: tags: - Billing summary: Apply a payment on a specific invoice description: Apply a payment per the specified parameters. operationId: addAndApplyPayment requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplyPaymentRequest' description: add and apply payment parameters in json required: true responses: default: description: successful operation /settlements/addAndApplyPaymentsInBulk/csv: post: tags: - Usage summary: Add and apply bulk payments to invoices CSV description: Bulk upload payments to invoices in CSV file operationId: addAndApplyBulkPaymentsCsv requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BulkPaymentUploadResult' /settlements/applyCreditMemo: post: tags: - Billing summary: Apply a credit memo description: Applies a credit memo per the specified parameters operationId: applyCreditMemo requestBody: content: application/json: schema: $ref: '#/components/schemas/CreditMemoApplicationJson' description: application details in json required: true responses: default: description: successful operation /settlements/unapplyCreditMemo: post: tags: - Billing summary: Unapply a credit memo description: Unapplies a credit memo per the specified parameters operationId: unapplyCreditMemo requestBody: content: application/json: schema: $ref: '#/components/schemas/CreditMemoUnapplicationJson' description: application details in json required: true responses: default: description: successful operation /accounting/journalEntry/summary: get: tags: - Accounting summary: Return Journal Entry summary description: Returns Journal Entry summary for the optionally specified accounting period as text/csv. If no period is specified, Journal Entry summary for 12 recent periods are returned. operationId: getJournalEntriesSummary parameters: - name: accountingPeriodId in: query description: Id of the period required: false schema: type: string responses: default: description: successful operation /accounting/journalEntry/runningBalances: get: tags: - Accounting summary: Get running balances of revenue schedule description: Returns deferred revenue and contract asset balances for the given revenue schedule, as of the given date.If no date is provided, the balances are returned as of the current date. operationId: getRunningBalances parameters: - name: scheduleId in: query description: Revenue schedule id required: true schema: type: string - name: asOf in: query description: Date in seconds since Epoch(GMT) required: false schema: type: integer format: int64 responses: default: description: successful operation /accounting/journalEntry/events: get: tags: - Accounting summary: Get accounting events for the specified dates description: Returns all accounting related events between the from and to dates. Since there can be a large number of these, the results are paginated. To retrieve subsequent pages of events, pass in the pageToken returned from the prior call. operationId: getAccountingEvents parameters: - name: from in: query description: start date in seconds since Epoch(GMT) required: true schema: type: integer format: int64 - name: to in: query description: end date in seconds since Epoch(GMT) required: true schema: type: integer format: int64 - name: limit in: query description: number of items per page required: false schema: type: integer format: int32 - name: pageToken in: query description: pass this to subsequent calls required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/AccountingEventPaginatedResponse' /accounting/journalEntry: get: tags: - Accounting summary: Return Journal Entries description: Returns all Journal Entries for the optionally specified accounting period as text/csv. If no period is specified, Journal Entries for 12 recent periods are returned. operationId: getJournalEntries parameters: - name: accountingPeriodId in: query description: Id of the period required: false schema: type: string responses: default: description: successful operation /accounting/ledgerAccounts: get: tags: - Accounting summary: Get ledger accounts description: Get list of all ledger accounts (GL accounts), optionally filtered by type operationId: getLedgerAccounts parameters: - name: type in: query description: Filter by ledger account type required: false schema: type: string enum: - ACCOUNTS_RECEIVABLE - TAX_LIABILITY - CASH - DEFERRED_REVENUE - RECOGNIZED_REVENUE - CONTRACT_ASSET - REALIZED_GAIN_LOSS - EXPENSE - REFUND responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/LedgerAccount' /metricsReporting/externalArrMetrics/{id}: get: tags: - MetricsReporting summary: gets external arr metrics request for the provided id description: returns the external arr metrics request for the provided id operationId: getExternalArrMetrics parameters: - name: id in: path description: id of the externalArrMetrics request required: true schema: type: string responses: default: description: successful operation /metricsReporting/externalArrMetrics: get: tags: - MetricsReporting summary: gets external arr metrics requests submitted description: returns the paginated list of external arr metrics requests operationId: getExternalArrMetrics_1 parameters: - name: cursor in: query required: false schema: type: string format: uuid - name: limit in: query required: false schema: type: integer format: int32 responses: default: description: successful operation post: tags: - MetricsReporting summary: submit request to generate external arr metrics description: returns the request with its captured id. Arr metrics will be generated as a backend job operationId: addExternalArrMetrics requestBody: content: application/json: schema: $ref: '#/components/schemas/ExternalArrScheduleJson' responses: default: description: successful operation /metricsReporting/populateArrMetrics/subscriptions/{subscriptionId}: put: tags: - MetricsReporting summary: submit request to generate/regenerate arr metrics for a subscription description: returns 200 if the result is successfully submitted to a background task operationId: populateArrMetricsForSubscription parameters: - name: subscriptionId in: path description: id of the subscription required: true schema: type: string responses: default: description: successful operation /notifications: get: tags: - Notifications summary: Get all notifications description: Returns all notification subscriptions for your tenant operationId: getAllNotificationSubscriptionsForTenant responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationTargetAndSubscriptions' post: tags: - Notifications summary: Add a notification target description: Adds a notification target and events according to the specified parameters operationId: addTargetAndEventsSubscriptions requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationTargetAndSubscriptions' description: json representing the notification details required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/NotificationTargetAndSubscriptions' /notifications/{notificationId}: post: tags: - Notifications summary: Attach an event to a notification description: Attaches a notification event to the target specified by the notification id operationId: subscribeExistingNotificationTargetToEvent parameters: - name: notificationId in: path description: id of the notification target required: true schema: type: string - name: notificationEventType in: query description: type of event required: true schema: type: string enum: - INVOICE_POSTED - SUBSCRIPTION_CREATED - ORDER_SUBMITTED - ORDER_EXECUTED responses: default: description: successful operation /notifications/unsubscribe/{notificationId}: post: tags: - Notifications summary: Unsubscribe from an event description: Unsubscribes the specified notification target from the specified event operationId: unsubscribeTargetOrEvent parameters: - name: notificationId in: path description: id of the notification target required: true schema: type: string - name: notificationEventType in: query description: type of event required: true schema: type: string enum: - INVOICE_POSTED - SUBSCRIPTION_CREATED - ORDER_SUBMITTED - ORDER_EXECUTED responses: default: description: successful operation /opportunity: get: tags: - Orders summary: Return all opportunities description: Returns all opportunities associated with the specified account. The results are paginated. To fetch all results, pass the cursor returned from a call to subsequent calls. operationId: getOpportunities parameters: - name: cursor in: query description: pass the cursor returned from a call to to subsequent calls until all values are fetched required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 - name: accountId in: query description: id of account required: true schema: type: string - name: crmId in: query description: CRM ID of the opportunity required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityPaginationResponse' post: tags: - Opportunity summary: Creates a standalone opportunity description: Returns the details of a specified opportunity operationId: createOpportunity requestBody: $ref: '#/components/requestBodies/OpportunityRestJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityJson' /opportunity/crm/{id}: get: tags: - Orders summary: Return details of an opportunity description: Returns the details of a specified opportunity operationId: getOpportunityByCrmOpportunityId parameters: - name: id in: path description: crm id of the opportunity required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityJson' delete: tags: - Orders summary: Delete an opportunity with given CRM ID description: Delete an opportunity with given CRM ID if there are no associated orders operationId: deleteOpportunityByCrmId parameters: - name: id in: path description: crm id of the opportunity required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: type: object /opportunity/{id}: get: tags: - Orders summary: Return details of an opportunity description: Returns the details of a specified opportunity operationId: getOpportunityByOpportunityId parameters: - name: id in: path description: id of the opportunity required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityJson' put: tags: - Opportunity summary: Updates a standalone opportunity description: Returns the details of the updated opportunity operationId: updateOpportunity parameters: - name: id in: path description: id of the opportunity required: true schema: type: string requestBody: $ref: '#/components/requestBodies/OpportunityRestJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityJson' /opportunity/crm/{id}/orders: get: tags: - Orders summary: Return a list of orders associated with a CRM opportunity id description: Returns the details of orders operationId: getOrdersByCrmOpportunityId parameters: - name: id in: path description: crm id of the opportunity required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: type: object /opportunity/{id}/open: post: tags: - Opportunity summary: Opens an opportunity description: Returns the details of the updated opportunity operationId: resetOpportunityClosedState parameters: - name: id in: path description: crm id or native id of the opportunity required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OpportunityJson' /opportunity/accountCrmId/{id}: get: tags: - Opportunity summary: Get opportunities by account CRM ID description: Returns the opportunities for an account with a specific CRM ID operationId: getOpportunitiesByAccountCrmId parameters: - name: id in: path description: Account CRM ID required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: type: object /orders/{orderId}/approvalHistory: get: tags: - Approvals summary: Get complete approval history for an order description: "Returns comprehensive approval workflow history including all submission attempts and approver activity.\ \ \n\n**Important:** This endpoint returns ONLY approval domain data with user IDs and comment IDs as references.\ \ To get full details:\n- User details: Call GET /users with user IDs from this response\n- Order details: Call GET\ \ /orders/{orderId}\n- Comment messages: Call GET /orders/{orderId}/comments\n\nThe response includes:\n- All submission\ \ attempts (if order was rejected and resubmitted)\n- All workflows triggered for each submission\n- Detailed approval\ \ states with approver user IDs (not names)\n- Summary statistics across all attempts" operationId: getOrderApprovalHistory parameters: - name: orderId in: path description: ID of the order to retrieve approval history for required: true example: ORD-9FB8TW8 schema: type: string responses: '200': description: Successfully retrieved approval history content: application/json: schema: $ref: '#/components/schemas/OrderApprovalHistoryResponse' '404': description: Order not found '500': description: Internal server error /orders/{id}: get: tags: - Orders summary: Get order details description: Retrieve details of a specific order by its ID. operationId: getOrder parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: suppressIdFormValidation in: query description: if set to true then the if form will not be validated required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' delete: tags: - Orders summary: Delete an order description: Delete a specific order by its ID. operationId: deleteOrder parameters: - name: id in: path description: Unique identifier of the order to be deleted. required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /orders: get: tags: - Orders summary: Get all Orders description: Gets all orders for your tenant. The results are paginated. To fetch all results, take the cursor returned from a call and pass it to subsequent calls. operationId: getOrders parameters: - name: cursor in: query description: A string token is used to fetch next set of results. If not provided, the first page of results will be returned. Use the 'next_cursor' value from the previous response to fetch the next page. required: false schema: type: string format: uuid - name: limit in: query description: An integer specifying the maximum number of results to return per page. Defaults to 10 if not provided. Limit is capped to 50 orders required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJsonPaginationResponse' post: tags: - Orders summary: Create an order description: creates an order with the specified parameters. On success the order id is returned. operationId: addOrder parameters: - name: isDryRun in: query description: indicates whether this order should be persisted. required: false schema: type: boolean - name: populateMissingLines in: query description: indicates whether an amendment should populate missing lines not provided here. required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderRequestJson' description: JSON object containing information required to create an order. required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' put: tags: - Orders summary: Update order details description: Updates the details of the specified order. operationId: updateOrder parameters: - name: isDryRun in: query description: true if the order should not be persisted. required: false schema: type: boolean requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderRequestJson' description: json representing the order details. required: true responses: default: description: successful operation /orders/{id}/status/{status}: put: tags: - Orders summary: Update order status description: Update the status of a specific order by its ID. operationId: updateOrderStatus parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: status in: path description: 'New status to be set for the order (e.g: Draft, Submitted, Executed, Cancelled)' required: true schema: type: string enum: - DRAFT - SUBMITTED - EXECUTED - CANCELLED - name: statusUpdatedOn in: query description: The timestamp when order status was updated. required: false schema: type: integer format: int64 - name: adminApprovalFlowByPass in: query description: Admin approval to bypass the approval flow required: false schema: type: boolean responses: default: description: successful operation /orders/{id}/metrics: get: tags: - Orders summary: Get order metrics description: Retrieve the metrics for a specific order by its ID. Metrics can be filtered by a target date. operationId: getOrderMetrics parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: targetDate in: query description: The target date for filtering metrics. required: false schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/MetricsJson' /orders/{orderId}/rebase: put: tags: - Orders summary: Rebase amendment against latest subscription version description: Rebase a specific order by its ID. Rebasing an order involves recalculating its metrics or values based on updated data or criteria. operationId: rebaseAmendment parameters: - name: orderId in: path description: Uniquely identifies the Order. required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /orders/{orderId}/attributes: put: tags: - Orders summary: Update order attributes for non-draft orders description: Update order attributes for non-draft orders operationId: updateOrderAttributes parameters: - name: orderId in: path description: Uniquely identifies the Order. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderAttributesUpdateRequest' description: Order Attributes responses: default: description: successful operation /orders/{id}/pdf: get: tags: - Orders summary: Fetch order form PDF description: Retrieves the PDF version of the order form for a specific order identified by its ID. operationId: getOrderDocument_1 parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string responses: default: description: successful operation post: tags: - Orders summary: Generate an order PDF description: Generate and retrieve a PDF representation of the order details for a specific order by its ID. operationId: createOrderDocument parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: force in: query description: Force regeneration of the PDF document even if there has been no changes. Defaults to false. required: false schema: type: boolean responses: default: description: successful operation /orders/salesRoom/{shareLink}/pdf: post: tags: - Intelligent Sales Room summary: Generate an order PDF via Sales Room Share Link description: Generate and retrieve a PDF representation of the order details for a specific sales room using share link. operationId: createOrderDocumentForSalesRoom parameters: - name: shareLink in: path required: true schema: type: string - name: force in: query description: Force regeneration of the PDF document even if there has been no changes. Defaults to false. required: false schema: type: boolean responses: default: description: successful operation /orders/{orderId}/pdf/{id}: get: tags: - Orders summary: Fetch specific order form PDF on order description: Retrieves specific PDF of the order form for a specific order identified by its orderId. operationId: getSpecificOrderDocument parameters: - name: orderId in: path description: Uniquely identifies the orderId required: true schema: type: string - name: id in: path description: Uniquely identifies the pdf id. required: true schema: type: string responses: default: description: successful operation /orders/{id}/doc: get: tags: - Orders summary: Download word doc version of order form description: Download a Microsoft Word document of the order form for a specific order by its ID. operationId: getOrderDocumentDoc parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string responses: default: description: successful operation /orders/{id}/docx: get: tags: - Orders summary: Download word docx version of order form description: Download a Microsoft Word document of the order form for a specific order by its ID. operationId: getOrderDocumentDocx parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string responses: default: description: successful operation /orders/{id}/execute: put: tags: - Orders summary: Mark order as executed. description: Marks the order as executed. Optionally, the execution time can be specified using the executedOn query parameter. operationId: executeOrder_1 parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: executedOn in: query description: The date and time when the order was executed. required: false schema: type: integer format: int64 - name: adminApprovalFlowBypass in: query description: Bypass approval flows by admin required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /orders/{id}/execute/force: put: tags: - Orders summary: Mark order as executed description: Forcefully executes an order. This endpoint bypasses approval checks and immediately executes the order. operationId: forceExecuteOrder parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string - name: executedOn in: query description: The date and time when the order was executed. required: false schema: type: integer format: int64 - name: skipApprovalCheck in: query description: Indicates whether to skip the approval check. Default is false. required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /orders/{id}/lineItems/metrics: get: tags: - Orders summary: Get order line metrics description: Retrieves metrics for all line items associated with the specified order. operationId: getOrderLineMetrics parameters: - name: id in: path description: Uniquely identifies the Order. required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/MetricsJson' /orders/{orderId}/billing/custom: get: tags: - Orders summary: Get custom billing schedule for the order description: Get the custom billing schedule for the order operationId: getCustomBillingSchedule parameters: - name: orderId in: path description: Uniquely identifies the Order. required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/CustomBillingScheduleOutput' /payments/bank-account/{id}: get: tags: - Payments summary: Get a payment bank account by id description: '' operationId: getBankAccount parameters: - name: id in: path description: Payment bank account id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentBankAccountJson' delete: tags: - Payments summary: Get a payment bank account by id description: '' operationId: deleteBankAccount parameters: - name: id in: path description: Payment bank account id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentBankAccountJson' /payments/{paymentId}/retry/manual: post: tags: - Payments summary: Manually retries a payment description: Manually retries a payment based on the provided payment ID and last attempt ID operationId: manualPaymentRetry parameters: - name: paymentId in: path description: Payment id required: true schema: type: string - name: lastPaymentAttemptId in: query description: Last payment attempt id required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentRetryResult' /payments/payment-gateways: get: tags: - Payments summary: Gets the list of payment integrations description: Gets the list of all active and completed payment integrations for the tenant operationId: getPaymentIntegrations responses: default: description: successful operation /payments/bank-account/accounts/ledger: get: tags: - Payments summary: Gets cash and expense ledger accounts for bank account creation description: The bank account would be mapped to a cash and an expense ledger account from this list operationId: getLedgerAccountsForPaymentBankAccount parameters: - name: id in: query required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/LedgerAccount' /payments/processPaymentForInvoice/{invoiceNumber}: post: tags: - Payments summary: Processes one time payment for an invoice if there is an automatic payment set up for the account description: The automatic payment is processed via Stripe for this invoice operationId: processPaymentForInvoice parameters: - name: invoiceNumber in: path required: true schema: type: string responses: default: description: successful operation /payments/retry/config: get: tags: - Payments summary: Gets a payment retry configuration description: Gets the latest payment retry configuration for the tenant, or by the grouping id if specified operationId: getPaymentRetryConfig parameters: - name: groupingId in: query description: groupingId of the payment retry configuration required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentRetryConfigOutput' post: tags: - Payments summary: Creates or updates a payment retry configuration description: Creates or updates a payment retry configuration for the tenant operationId: upsertPaymentRetryConfig requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentRetryConfigInput' description: Payment retry configuration to be created or updated responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentRetryConfigOutput' /payments/retry/config/{id}: delete: tags: - Payments summary: Deletes a payment retry configuration description: Deletes a payment retry configuration for the tenant operationId: deletePaymentRetryConfig parameters: - name: id in: path description: ID of the payment retry configuration to be deleted required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentRetryConfigOutput' /payments/{id}: get: tags: - Payments summary: Get payment details description: Gets the details of the specified payment operationId: getPayment parameters: - name: id in: path description: id of the payment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentJson' delete: tags: - Payments summary: Delete payment by payment id description: Deletes the specified payment if the payment has been voided. This operation also deletes any applications of this payment operationId: deletePayment parameters: - name: id in: path description: Payment bank account id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentJson' /payments/account/{id}: get: tags: - Payments summary: Get payments description: Returns the payments for the specified account operationId: getAccountPayment parameters: - name: id in: path 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/PaymentJson' /payments/configuration: get: tags: - Payments summary: Get payment configuration description: Returns the payment configuration for your tenant operationId: getPaymentConfiguration responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentConfiguration' post: tags: - Payments summary: Update payment configuration description: Updates the payment configuration for your tenant. operationId: updatePaymentConfiguration requestBody: content: application/json: schema: type: array items: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL description: Payment types to set. Options can be one or more of the allowable values responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentConfiguration' /payments/account-payment/{id}: get: tags: - Payments summary: Get account payment management link description: Returns a payment management link for an account operationId: getAccountPaymentManagementLink parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: string /payments/bank-account: post: tags: - Payments summary: Adds a new payment bank account description: The bank account would be mapped to a cash and an expense ledger account operationId: upsertBankAccount requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentBankAccountJson' description: Payment bank account to be added responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentBankAccountJson' /payments: get: tags: - Payments summary: Get all payments description: Returns all payments for you tenant. The results are paginated. To fetch all take the cursor returned from a call and pass it to a subsequent call. operationId: getPayments parameters: - name: cursor in: query description: cursor returned from previous call required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentJsonPaginationResponse' /payments/{id}/canDelete: get: tags: - Payments summary: Check if the payment object can be deleted description: Payment can be deleted if it has been voided and does not have journal entries associated operationId: canDeletePayment parameters: - name: id in: path description: id of the payment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentDeletableResponse' /payments/{id}/balance: get: tags: - Payments summary: Get payment balance description: Gets the balance of a payment operationId: getPaymentBalance parameters: - name: id in: path description: id of the payment required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentBalanceJson' /payments/{id}/void: put: tags: - Payments summary: Voids a payment description: Voids the specified payment per the specified parameters operationId: voidPayment parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/VoidPaymentJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaymentJson' /ping: get: tags: - Health summary: Simple ping with auth to check if everything is working fine description: Call this resource to make sure API auth is setup correctly, a simple PONG message is returned and the assumption is that auth succeed operationId: ping_1 responses: default: description: successful operation /plans/{planId}/charges/{chargeId}/ledgerAccounts: get: tags: - Product Catalog summary: Get ledger accounts description: Gets the ledger accounts mapped to the specified charge operationId: getChargeLedgerAccounts parameters: - name: planId in: path description: id of the plan required: true schema: type: string - name: chargeId in: path description: id of the charge required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/LedgerAccount' put: tags: - Product Catalog summary: Map ledger accounts description: Map ledger accounts to the specified charge for the specified plan. operationId: mapLedgerAccountsToCharge parameters: - name: planId in: path description: id of the plan required: true schema: type: string - name: chargeId in: path description: id of the charge required: true schema: type: string requestBody: content: application/json: schema: type: array items: type: string description: list of the ledger account ids required: true responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/LedgerAccount' /plans/{planId}/replacedPlans: get: tags: - Product Catalog summary: Get replaced plans description: '' operationId: getReplacedPlans parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/PlanJson' /plans: get: tags: - Product Catalog summary: Get plans description: Returns all plans for a product. The result is paginated. To retrieve all results pass the cursor returned from a call to the next call until all results are returned. operationId: getPlans parameters: - name: productId in: query description: id of the product required: false schema: type: string - name: status in: query description: filter by plan status required: false schema: type: string enum: - DRAFT - ACTIVE - GRANDFATHERED - ARCHIVED - DEPRECATED - name: cursor in: query description: cursor from the last call required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJsonPaginationResponse' post: tags: - Product Catalog summary: Create a plan description: Creates a plan. On success the id of the new plan is returned. operationId: addPlan requestBody: $ref: '#/components/requestBodies/PlanJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}: get: tags: - Product Catalog summary: Get plan details description: Returns the details of the specified plan. operationId: getPlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' put: tags: - Product Catalog summary: Update plan description: Updates the details of the specified plan. Note you can't update the details of a plan once it's in use. operationId: updatePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string requestBody: $ref: '#/components/requestBodies/PlanJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' delete: tags: - Product Catalog summary: Delete a plan description: Deletes a plan. Note you can't delete a plan that's in use. operationId: deletePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/terms: put: tags: - Product Catalog summary: Update plan terms description: Updates predefined terms associated with the specified plan. operationId: updatePlanTerms parameters: - name: planId in: path description: id of the plan required: true schema: type: string requestBody: content: application/json: schema: type: array items: type: string description: json of the plan details required: true responses: default: description: successful operation /plans/{planId}/metadata: put: tags: - Product Catalog summary: Update plan metadata description: Update plan metadata. For now, this can be used only to change the entities assigned to a plan operationId: updatePlanMetadata parameters: - name: planId in: path description: plan id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PlanMetadataJson' description: plan metadata to be updated required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/revertToDraft: put: tags: - Product Catalog summary: Revert a plan to draft description: Marks a plan as draft operationId: deactivatePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/charges: post: tags: - Product Catalog summary: Add charge to plan description: Adds a charge to the specified plan. Success response contains ID of the new charge. operationId: addCharge parameters: - name: planId in: path description: ID of the plan to which you want to add the charge. To get a list of IDs, call the [Get plans](/reference/getplans) operation. required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ChargeJson' description: JSON representing the charge details required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ChargeJson' /plans/{planId}/charges/{chargeId}/partial: put: tags: - Product Catalog summary: Update non-financial charge details description: Updates certain details of the specified charge which won't impact its financial treatment operationId: patchCharge parameters: - name: planId in: path description: id of the plan required: true schema: type: string - name: chargeId in: path description: id of the charge required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ChargePartialJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ChargeJson' /plans/{planId}/activate: put: tags: - Product Catalog summary: Activate a plan description: Marks a plan as active operationId: activatePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/deprecate: put: tags: - Product Catalog summary: Deprecate a plan description: Marks a plan as deprecated. Once deprecated a plan may not be attached to new orders. operationId: deprecatePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/reactivate: put: tags: - Product Catalog summary: Reactivate a plan description: Reactivates a deprecated plan. operationId: reactivatePlan parameters: - name: planId in: path description: id of the plan required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/duplicate: post: tags: - Product Catalog summary: Duplicate a plan description: Duplicates the specified plan. On success the new plan id is returned. operationId: duplicatePlan parameters: - name: planId in: path description: id of the plan to duplicate required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PlanJson' /plans/{planId}/charges/{chargeId}: put: tags: - Product Catalog summary: Update charge details description: Updates the details of the specified charge on the specified plan. operationId: updateCharge parameters: - name: planId in: path description: id of the plan associated with the charge required: true schema: type: string - name: chargeId in: path description: id of the charge required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ChargeJson' responses: default: description: successful operation delete: tags: - Product Catalog summary: Delete a charge description: Removes a charge from a plan. operationId: deleteCharge parameters: - name: planId in: path description: id of the plan required: true schema: type: string - name: chargeId in: path description: id of the charge required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ChargeJson' /plans/filter/customField: get: tags: - Product Catalog summary: Get Plans that have a specific value for a custom field description: Gets Plans that have a specific value for a custom field operationId: getPlansFilterByCustomFields parameters: - name: customFieldName in: query description: Name of the custom field to filter by required: false schema: type: string - name: customFieldValue in: query description: Value of the custom field to filter by required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/PlanJson' /platformFeature/isAccountingFeatureEnabled: get: tags: - Platform Feature summary: Check if the tenant has accounting feature enabled description: Returns whether the tenant has accounting feature enabled. operationId: isAccountingFeatureEnabled responses: '200': description: successful operation content: application/json: schema: type: boolean /termsections/{id}: get: tags: - Settings summary: Get predefined terms section detail description: Returns predefined terms section detail. operationId: getTermSection parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentSection' put: tags: - Settings summary: Update predefined terms section description: Updates the predefined terms section specified. operationId: updateTermSection parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/DocumentSection' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentSection' delete: tags: - Settings summary: Delete predefined terms section description: Deletes the predefined terms section specified. operationId: deleteTermSection parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /termsections: get: tags: - Settings summary: Get predefined terms sections description: Returns predefined terms sections. operationId: getTermSections responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentSection' post: tags: - Settings summary: Add predefined terms section description: Adds a predefined terms section. operationId: addTermSection requestBody: $ref: '#/components/requestBodies/DocumentSection' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/DocumentSection' /prismatic/schema: get: tags: - Prismatic summary: Get JSON Schema for a Prismatic object type description: Returns JSON Schema for ACCOUNT, INVOICE, or CREDIT_MEMO objects. Used by Prismatic to render field mappings. operationId: getSchema parameters: - name: object in: query description: Object type (ACCOUNT, INVOICE) required: true schema: type: string enum: - ACCOUNT - INVOICE - ACCOUNT_CONTACT - PAYMENT - name: tenantId in: query description: Tenant ID required: true schema: type: string responses: default: description: successful operation /prismatic/app-url: get: tags: - Prismatic summary: Get Prismatic app URL description: Returns the Prismatic app URL if the Prismatic feature is enabled, null otherwise operationId: getAppUrl responses: default: description: successful operation /prismatic/marketplace-jwt: post: tags: - Prismatic summary: Generate Prismatic marketplace JWT description: Generates a signed JWT for authenticating the current user with Prismatic's embedded marketplace operationId: generateMarketplaceJwt responses: default: description: successful operation /prismatic/syncInvoice/{invoiceId}: post: tags: - Prismatic summary: Trigger Prismatic invoice sync task description: Trigger Prismatic invoice sync task for the given invoice id operationId: syncInvoice parameters: - name: invoiceId in: path required: true schema: type: string responses: default: description: successful operation /prismatic/syncInvoice/enabled: get: tags: - Prismatic summary: Check if Prismatic invoice sync is enabled description: Checks if Prismatic invoice sync is enabled operationId: isSyncInvoiceEnabled responses: default: description: successful operation /prismatic/syncInvoices: post: tags: - Prismatic summary: Trigger Prismatic invoice sync tasks for multiple invoices description: Trigger Prismatic invoice sync tasks for the given list of invoice IDs operationId: syncInvoices requestBody: $ref: '#/components/requestBodies/syncInvoicesToErpBody' responses: default: description: successful operation /product/categories/{id}: get: tags: - Product Catalog summary: Get product category details description: Gets the details of the specified product category operationId: getProductCategory parameters: - name: id in: path description: id of the category required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductCategory' put: tags: - Product Catalog summary: Update product category details description: Updates the details of a product category operationId: updateProductCategory parameters: - name: id in: path description: id of the category required: true schema: type: string requestBody: $ref: '#/components/requestBodies/ProductCategory' responses: default: description: successful operation delete: tags: - Product Catalog summary: Delete a product category description: Deletes the specified product category. Note that a product category can't be delete once it's in use. operationId: deleteProductCategory parameters: - name: id in: path description: id of the category required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductCategory' /product/categories: get: tags: - Product Catalog summary: Get product Categories description: Gets all product categories for your tenant. The results are paginated. To fetch all results pass the cursor returned from a call to the subsequent calls until all results are returned. Initially the cursor should not be specified. operationId: getProductCategories parameters: - name: cursor in: query description: cursor from prior call required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductCategoryPaginationResponse' post: tags: - Product Catalog summary: Create a product category description: Creates a product category. On success the id of the category is returned. operationId: addProductCategory requestBody: $ref: '#/components/requestBodies/ProductCategory' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductCategory' /products/{id}: get: tags: - Product Catalog summary: Get product details description: Gets the details of the specified product. operationId: getProduct parameters: - name: id in: path description: ID of the product required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductJson' put: tags: - Product Catalog summary: Update product details description: Updates the details of the specified product operationId: updateProduct parameters: - name: id in: path description: id of the product required: true schema: type: string requestBody: $ref: '#/components/requestBodies/ProductInputJson' responses: default: description: successful operation delete: tags: - Product Catalog summary: Delete a product description: Delete the specified product. operationId: deleteProduct parameters: - name: id in: path description: id of the product required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductJson' /products/export: get: tags: - Product Catalog summary: Export product catalog description: Export the product catalog in CSV format. operationId: exportProductCatalog responses: default: description: successful operation /products: get: tags: - Product Catalog summary: Get products description: Returns all products for your tenant. The results on paginated. To fetch them all pass the cursor returned from a call to the subsequent call until all results are fetched. Initially the cursor should not be specified. operationId: getProducts parameters: - name: cursor in: query description: cursor received from prior call required: false schema: type: string format: uuid - name: limit in: query description: number of results per page required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductJsonPaginationResponse' post: tags: - Product Catalog summary: Create a product description: Creates a product for your tenant. The success response contains the ID of the product. operationId: addProduct requestBody: $ref: '#/components/requestBodies/ProductInputJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ProductJson' /ratecards/{id}/csv: put: tags: - RateCard summary: create a rate card using CSV price table multipart form data description: create a rate card using the multipart form data, where a CSV can be passed in for the price table operationId: updateRateCardCsv parameters: - name: id in: path description: rate card id required: true schema: type: string requestBody: $ref: '#/components/requestBodies/updateRateCardCsv' responses: default: description: successful operation /ratecards: get: tags: - RateCard summary: Fetch the list of rate cards stored in the system description: Fetch the list of rate cards stored in the system operationId: getRateCards responses: default: description: successful operation /ratecards/csv: post: tags: - RateCard summary: create a rate card using CSV price table multipart form data description: create a rate card using the multipart form data, where a CSV can be passed in for the price table operationId: addRateCardCsv requestBody: $ref: '#/components/requestBodies/updateRateCardCsv' responses: default: description: successful operation /ratecards/attributes/csv: get: tags: - RateCard summary: Fetch the price attributes defined in the system in CSV format description: Get all the price attributes in the system in CSV format one per row operationId: getPriceAttributesCsv responses: default: description: successful operation post: tags: - RateCard summary: Import price attributes into the system description: Import the price attributes from an input CSV file, the output provides details on each row of the input operationId: importPriceAttributes requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: default: description: successful operation /ratecards/{id}/priceTable: get: tags: - RateCard summary: Fetch the price table for the rate card given the id description: Get the price table for the rate card given the id operationId: getRateCardPriceTable parameters: - name: id in: path description: rate card id required: true schema: type: string responses: default: description: successful operation /refunds: get: tags: - Refunds summary: Get refunds description: Get all refunds for the specified account, OR if a credit memo number is specified in addition to the account id, get the details of only that. operationId: getRefunds parameters: - name: accountId in: query description: id of the account required: true schema: type: string - name: creditMemoNumber in: query description: id of a credit memo required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/RefundDetail' post: tags: - Refunds summary: Create and apply refund description: Creates and applies a refund per the specified parameters. On success the id of the refund is returned. operationId: createAndApplyRefund requestBody: content: application/json: schema: $ref: '#/components/schemas/RefundRequestJson' description: refund request details json required: true responses: default: description: successful operation /refunds/{id}: get: tags: - Refunds summary: Get refund details description: Get the details of the specified refund. operationId: getRefundById parameters: - name: accountId in: query description: id of the account required: true schema: type: string - name: id in: path description: id of the refund required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Refund' /reports/run: post: tags: - Reports summary: Run a report description: Runs the specified report and returns the result as a csv. operationId: run requestBody: content: application/json: schema: $ref: '#/components/schemas/PredefinedReportJson' description: definition of the report in json required: true responses: default: description: successful operation /reports/generate: post: tags: - Reports summary: Generate a report description: Generates a report with the specified parameters. This report can later be downloaded via /reports/{reportRunId}/result operationId: generate requestBody: content: application/json: schema: $ref: '#/components/schemas/PredefinedReportJson' description: json definition of the report required: true responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ReportJobResponse' /reports/{reportRunId}/result: get: tags: - Reports summary: Run a generated report description: Runs a report generated with /generate. On success a csv of the report is returned. operationId: getReportOutput parameters: - name: reportRunId in: path description: id of the report required: true schema: type: string responses: default: description: successful operation /reports: get: tags: - Reports summary: Get report definitions description: Returns the definitions of the reports defined for your tenant. operationId: getPredefinedReportDefs responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PredefinedReportDefsJson' /revenueEnablement/enable: put: tags: - Revenue Enablement summary: Enable revenue recognition description: This will enable revenue recognition operationId: enableRevenueRecognition responses: default: description: successful operation /revenueEnablement/readiness/doesOpenAccountingPeriodExist: get: tags: - Revenue Enablement summary: Check if an open accounting period exists description: This will check if an open accounting period exists operationId: doesOpenAccountingPeriodExist responses: default: description: successful operation /revenueEnablement/readiness/areAllChargesTaggedWithRevenueRules: get: tags: - Revenue Enablement summary: Check if all charges are tagged with revenue rules description: This will check if all charges are tagged with revenue rules operationId: areAllChargesTaggedWithRevenueRules responses: default: description: successful operation /revenueEnablement/readiness/areAllChargesTaggedWithGLAccounts: get: tags: - Revenue Enablement summary: Check if all charges are tagged with GL accounts description: This will check if all charges are tagged with GL accounts operationId: areAllChargesTaggedWithGLAccounts responses: default: description: successful operation /revenueEnablement/readiness/doAllOrderLinesHaveSchedules: get: tags: - Revenue Enablement summary: Check if all order lines have schedules description: This will check if all order lines have schedules operationId: doAllOrderLinesHaveSchedules responses: default: description: successful operation /revenueEnablement/readiness/areAccountingEventsPresentForAllTransactionTypes: get: tags: - Revenue Enablement summary: Check if accounting events are present for all transaction types description: This will check if accounting events are present for all transaction types operationId: areAccountingEventsPresentForAllTransactionTypes responses: default: description: successful operation /revenueEnablement/progress: get: tags: - Revenue Enablement summary: Get revenue enablement progress description: This will get revenue enablement progress operationId: getRevenueEnablementProgress responses: default: description: successful operation put: tags: - Revenue Enablement summary: Update revenue enablement progress description: This will update revenue enablement progress operationId: upsertRevenueEnablementProgress requestBody: content: application/json: schema: $ref: '#/components/schemas/RevenueEnablementProgress' description: json representation of the progress required: true responses: default: description: successful operation /revenueEnablement: delete: tags: - Revenue Enablement summary: Delete all accounting and revenue recognition data description: This will delete all accounting and revenue recognition data except for the charge configuration and ledger accounts operationId: deleteAllAccountingAndRevenueRecognitionData responses: default: description: successful operation /revrec/events: get: tags: - Revenue Recognition summary: Get revenue recognition events description: Gets revenue recognition events for the specified subscription and charge. operationId: getRecognitionEventsBySubscriptionIdChargeId parameters: - name: accountingPeriodId in: query description: id of the accounting period to limit events to required: false schema: type: string - name: subscriptionId in: query description: id of the subscription required: true schema: type: string - name: chargeId in: query description: id of the charge required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/RecognitionEventCompletion' post: tags: - Revenue Recognition summary: Create a revenue recognition event description: Creates a revenue recognition event, only if it is different from the previous event for same subscription and charge. operationId: createRecognitionEvent requestBody: content: application/json: schema: $ref: '#/components/schemas/RecognitionEventCompletion' description: recognition event details required: true responses: default: description: successful operation /revrec/rules: get: tags: - Revenue Recognition summary: Get revenue recognition rules description: Get revenue recognition rules. operationId: getRecognitionRuleById responses: default: description: successful operation post: tags: - Revenue Recognition summary: Create a revenue recognition rule description: Creates a revenue recognition rule. operationId: addRecognitionRule requestBody: content: application/json: schema: $ref: '#/components/schemas/RecognitionRule' description: recognition rule details required: true responses: default: description: successful operation /revrec/rules/{id}: get: tags: - Revenue Recognition summary: Get revenue recognition rule description: Get a revenue recognition rule using id. operationId: getRecognitionRuleById_1 parameters: - name: id in: path description: id of the recognition rule required: true schema: type: string responses: default: description: successful operation /revrec/rules/{ruleId}: delete: tags: - Revenue Recognition summary: Delete a recognition rule description: Deletes a recognition rule. Note you can't delete a recognition rule that's in use. operationId: deleteRule parameters: - name: ruleId in: path description: id of the recognition rule required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/RecognitionRule' /revrec/bulk: post: tags: - Revenue Recognition summary: Create a bulk revenue recognition description: Creates a bulk revenue recognition as specified by the input parameters. On success the id of the bulk revenue recognition is returned. operationId: createBulkRevenueRecognition requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkRevenueRecognitionInput' description: json representing the bulk revenue recognition parameters required: true responses: '200': description: successful operation content: application/json: schema: type: string /revrec/bulk/{bulkRevenueRecognitionId}: get: tags: - Revenue Recognition summary: Get bulk revenue recognition details description: Returns the details of the specified bulk revenue recognition operationId: getBulkRevenueRecognition parameters: - name: bulkRevenueRecognitionId in: path description: id of the bulk revenue recognition required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BulkRevenueRecognition' /revrec/bulk/{bulkRevenueRecognitionId}/revrecItems: get: tags: - Revenue Recognition summary: Get items for bulk revenue recognition description: Returns the items associated with the specified bulk revenue recognition operationId: getBulkRevenueRecognitionItems parameters: - name: bulkRevenueRecognitionId in: path description: id of the bulk revenue recognition required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/BulkRevenueRecognitionItem' /revrec/waterfall: get: tags: - Revenue Recognition summary: Download waterfall report description: Downloads a revenue waterfall report in csv format. operationId: getRevenueWaterfall parameters: - name: startDate in: query description: report start date as unix timestamp required: false schema: type: integer format: int64 - name: endDate in: query description: report end date as unix timestamp required: false schema: type: integer format: int64 responses: default: description: successful operation /revrec/events/upload: post: tags: - Revenue Recognition summary: Upload revenue events description: 'Uploads revenue events from a csv file. The format of the file is Subscription.Id,Charge.Id,Alias.Id,RevrecEvent.PercentComplete Percent complete should be a decimal.' operationId: uploadCompletionEvents requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' 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 /stripe-import/payment-method/csv: post: tags: - Payments summary: Import Stripe payment method via CSV description: Associate an existing Stripe payment method with an account operationId: importStripePaymentMethodCSV requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: default: description: successful operation /subscriptions/{id}: get: tags: - Subscriptions summary: Get subscription details description: Gets the details of the specified subscription. operationId: getSubscriptionById parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionJson' put: tags: - Subscriptions summary: Update subscription details description: Updates the details of the specified subscription. operationId: updateSubscription parameters: - name: id in: path description: subscription id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionUpdateJson' description: subscription details in json required: true responses: default: description: successful operation /subscriptions/{id}/draftAmendment: get: tags: - Subscriptions summary: Generate draft amendment order description: Generate a draft amendment object for the given subscription. The draft amendment is composed of current subscription charges as the default line items. operationId: getDraftAmendment parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /subscriptions/{id}/draftRenewal: get: tags: - Subscriptions summary: Generate draft renewal order description: Generate a draft renewal order object for the given subscription. The draft renewal is composed of current subscription charges as the default line items. operationId: getDraftRenewal parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/OrderJson' /subscriptions/{id}/modifiable: get: tags: - Subscriptions summary: Subscription can be modified description: Returns true if subscription can be deleted. operationId: subscriptionModifiable parameters: - name: id in: path description: subscription id required: true schema: type: string responses: default: description: successful operation /subscriptions/{id}/reversible: get: tags: - Subscriptions summary: Subscription can be reverted description: Returns true if subscription can be reverted to a prior version. operationId: subscriptionReversible parameters: - name: id in: path description: subscription id required: true schema: type: string responses: default: description: successful operation /subscriptions/{id}/billingPeriods: get: tags: - Subscriptions summary: Get billing periods description: Gets the billing periods for the specified subscription. operationId: getSubscriptionBillingPeriods parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: type: integer format: int64 /subscriptions/{id}/test-notifications: post: tags: - Subscriptions summary: Send test notifications for subscription description: Sends test notifications for the specified subscription to the specified notification target. operationId: sendTestNotificationsForSubscription parameters: - name: id in: path description: subscription id required: true schema: type: string - name: notificationTargetId in: query description: ID of the notification target to send tests to required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: type: integer format: int64 /subscriptions/{id}/change-events: get: tags: - Subscriptions summary: Get change events for subscription description: Returns the scheduled change events for the specified subscription. operationId: getAllChangeEventsForSubscription parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/SubscriptionSchedules' /subscriptions: get: tags: - Subscriptions summary: Get paginated subscriptions description: returns all Subscriptions in the system in a paginated fashion operationId: getSubscriptions parameters: - name: limit in: query description: number of items per page required: false schema: type: integer format: int32 - name: pageToken in: query description: pass this to subsequent calls required: false schema: type: string - name: accountId in: query description: optionally pass in account Id, only subscriptions for this account will will returned required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaginatedSubscriptionsResponse' /subscriptions/{id}/{version}: delete: tags: - Subscriptions summary: Delete subscription description: Deletes the subscription for given subscription Id if invoices have not been generated and revenue has not been recognized operationId: deleteSubscription parameters: - name: id in: path description: subscription id required: true schema: type: string - name: version in: path description: subscription version required: true schema: type: integer format: int32 responses: default: description: successful operation /subscriptions/{id}/{version}/revert: put: tags: - Subscriptions summary: Revert subscription description: Reverts the subscription for given subscription Id and version to it's previous version. Operation is allowed only if invoices have not been generated and revenue has not been recognized operationId: revertSubscription parameters: - name: id in: path description: subscription id required: true schema: type: string - name: version in: path description: subscription version required: true schema: type: integer format: int32 responses: default: description: successful operation /subscriptions/{id}/renewalOpportunity: post: tags: - Subscriptions summary: Link renewal opportunity to subscription description: Update renewal opportunity CRM id on subscription operationId: updateRenewalOpportunity parameters: - name: id in: path description: subscription id required: true schema: type: string - name: renewalOpportunityCrmId in: query description: renewal opportunity CRM id required: true schema: type: string responses: default: description: successful operation /subscriptions/{id}/metrics: get: tags: - Subscriptions summary: Get subscription metrics description: Returns the metrics associated with the specified subscription. Metrics include ACV, ARR, etc. operationId: getSubscriptionMetrics parameters: - name: id in: path description: id of the subscription required: true schema: type: string - name: targetDate in: query description: As of date for the metrics. If omitted defaults to now. required: false schema: type: integer format: int64 - name: forceRecalculate in: query description: If true, forces recalculation of metrics instead of using cached values. required: false schema: type: boolean responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/MetricsJson' /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' /taxrates/strategies/{id}/{countryCode}: get: tags: - Settings summary: Get tax rate strategy by Id and Country Code description: Retrieves the tax rate strategy object by Id and Country Code operationId: getTaxRateStrategy parameters: - name: id in: path required: true schema: type: string - name: countryCode in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateStrategyJson' put: tags: - Settings summary: Update tax rate strategy description: Updates the specific tax rate strategy object operationId: updateTaxRateStrategy parameters: - name: id in: path required: true schema: type: string - name: countryCode in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/TaxRateStrategyJson' responses: default: description: successful operation delete: tags: - Settings summary: Delete tax rate strategy description: Deletes the tax rate strategy object by Id and Country Code operationId: deleteTaxRateStrategy parameters: - name: id in: path required: true schema: type: string - name: countryCode in: path required: true schema: type: string responses: default: description: successful operation /taxrates: get: tags: - Settings summary: Get tax rates description: Get all available tax rates. The result is paginated. To retrieve all results pass the cursor returned from a call to the next call until all results are returned. operationId: getTaxRates parameters: - name: cursor in: query required: false schema: type: string format: uuid - name: limit in: query required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRatePaginationResponseJson' post: tags: - Settings summary: Add tax rate description: Add a new tax rate object operationId: addTaxRate requestBody: $ref: '#/components/requestBodies/TaxRateJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateJson' /taxrates/{id}: get: tags: - Settings summary: Get tax rate by Id description: Retrieves the tax rate object by Id operationId: getTaxRate parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateJson' put: tags: - Settings summary: Update tax rate description: Updates the specific tax rate object operationId: updateTaxRate parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: $ref: '#/components/requestBodies/TaxRateJson' responses: default: description: successful operation delete: tags: - Settings summary: Delete tax rate description: Deletes the tax rate object by Id. If successful the deleted tax rate object is returned operationId: deleteTaxRate parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateJson' /taxrates/strategies: get: tags: - Settings summary: Get tax rate strategies description: Get all available tax rate strategies. The result is paginated unless fetchAll=true. To retrieve all results pass the cursor returned from a call to the next call until all results are returned. operationId: getTaxRateStrategies parameters: - name: limit in: query description: number of items per page required: false schema: type: integer format: int32 - name: pageToken in: query description: pass this to subsequent calls required: false schema: type: integer format: int64 - name: fetchAll in: query description: if true, returns all strategies ignoring pagination required: false schema: type: boolean default: false responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateStrategyPaginatedResponse' post: tags: - Settings summary: Add tax rate strategy description: Add a new tax rate strategy object operationId: addTaxRateStrategy requestBody: $ref: '#/components/requestBodies/TaxRateStrategyJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TaxRateStrategyJson' /taxrates/strategies/{id}: get: tags: - Settings summary: Get all tax rate strategies by Id description: Retrieves all tax rate strategy objects with the given Id operationId: getTaxRateStrategiesById parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/TaxRateStrategyJson' delete: tags: - Settings summary: Delete all tax rate strategies by Id description: Deletes all tax rate strategy objects with the given Id operationId: deleteAllTaxRateStrategiesById parameters: - name: id in: path required: true schema: type: string responses: default: description: successful operation /templateScript: get: tags: - TemplateScript summary: Fetch template scripts description: Returns a list of template scripts of a certain type operationId: getTemplateScripts parameters: - name: templateType in: query required: false schema: type: string enum: - ORDER - COMPOSITE_ORDER - INVOICE - CREDIT_MEMO - PREDEFINED_TERM responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/TemplateScript' post: tags: - TemplateScript summary: Add a new template script description: '' operationId: addTemplateScript requestBody: $ref: '#/components/requestBodies/TemplateScript' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TemplateScript' delete: tags: - TemplateScript summary: Disable a template script description: '' operationId: disableTemplateScript requestBody: $ref: '#/components/requestBodies/TemplateScript' responses: default: description: successful operation /tenantJobs/dispatch: post: tags: - Jobs summary: Dispatch tenant job description: Executes a tenant job operationId: dispatch requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantJob' responses: default: description: successful operation /tenantJobs/retry: post: tags: - Jobs summary: Retry tenant job description: Executes a tenant job operationId: executeTenantJob parameters: - name: jobId in: query required: false schema: type: string responses: default: description: successful operation /tenantJobs/{jobId}/cancel: post: tags: - Jobs summary: Cancel tenant job description: Cancels a tenant job. Any pending future tasks will be skipped operationId: cancelTenantJob parameters: - name: jobId in: path description: Job id required: true schema: type: string responses: default: description: successful operation /tenantJobs/{jobId}: get: tags: - Jobs summary: Get tenant job description: Get tenant job by id operationId: getTenantJob parameters: - name: jobId in: path description: Job id required: true schema: type: string responses: default: description: successful operation /tenants: get: tags: - Settings summary: Get tenant details description: Get the details of the current tenant operationId: getTenant responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantJson' put: tags: - Settings summary: Update tenant details description: Updates the details of the current tenant based on the input operationId: updateTenant requestBody: $ref: '#/components/requestBodies/TenantJson' responses: default: description: successful operation /tenants/logo: get: tags: - Settings summary: Get tenant logo description: Get the current logo stored operationId: getTenantLogo responses: default: description: successful operation put: tags: - Settings summary: Update tenant logo description: Updates the logo used in external facing communication such as order forms and invoices operationId: uploadTenantLogo requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantJson' /settings/ui/customizations: get: tags: - Settings summary: Fetch UI customization config for the tenant description: '' operationId: getTenantUICustomizationConfig responses: default: description: successful operation post: tags: - Settings summary: Update UI customization config for the tenant description: '' operationId: updateTenantUICustomizationConfig requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantUiCustomization' responses: default: description: successful operation delete: tags: - Settings summary: Remove UI customization config for the tenant description: '' operationId: deleteTenantUICustomizationConfig responses: default: description: successful operation /settings/docxSettings: put: tags: - Settings summary: Update DOCX settings description: Update DOCX settings for your tenant operationId: updateDocxSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/DocxSettings' responses: default: description: successful operation /settings/autoReplacePlans: get: tags: - Settings summary: Get plan replacement settings description: Gets plan replacement settings operationId: getAutoReplacePlans responses: default: description: successful operation put: tags: - Settings summary: Update plan replacement settings description: Update plan replacement settings operationId: updateAutoReplacePlans requestBody: content: application/json: schema: type: boolean responses: default: description: successful operation /settings/paymentTerms: get: tags: - Settings summary: Get payment term settings description: '' operationId: getPaymentTermSettings responses: default: description: successful operation put: tags: - Settings summary: Update payment term settings description: '' operationId: updatePaymentTermSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentTermSettingsJson' description: json representation of the payment term settings required: true responses: default: description: successful operation /settings/billingCycle: get: tags: - Settings summary: Get current billing cycle definitions description: '' operationId: getBillingCycleDefinitions responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/BillingCycleDefinitionJson' post: tags: - Settings summary: Add new billing cycle definition description: '' operationId: addBillingCycleDefinition requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingCycleDefinitionAdd' description: json representation of the billing cycle definition required: true responses: default: description: successful operation /settings/billingCycle/{id}: get: tags: - Settings summary: Get billing cycle definition by id description: '' operationId: getBillingCycleDefinition parameters: - name: id in: path description: id of the billing cycle definition required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/BillingCycleDefinitionJson' put: tags: - Settings summary: Update billing cycle definition description: '' operationId: updateBillingCycleDefinition parameters: - name: id in: path description: id of the billing cycle definition required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingCycleDefinitionUpdateJson' description: json representation of the billing cycle definition update required: true responses: default: description: successful operation /settings: get: tags: - Settings summary: Get tenant settings description: Returns all tenant settings for your tenant. operationId: getTenantSetting responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TenantSettingJson' put: tags: - Settings summary: Update tenant settings description: Updates settings for your tenant. operationId: updateTenantSetting requestBody: content: application/json: schema: $ref: '#/components/schemas/TenantSettingJson' description: json representation of the settings required: true responses: default: description: successful operation /settings/billingCycle/setDefault: post: tags: - Settings summary: Set billing cycle with given id as default description: '' operationId: setDefaultBillingCycleDefinition requestBody: content: application/json: schema: $ref: '#/components/schemas/DefaultBillingCycleDefinitionInput' description: id of the billing cycle definition to set as default. If no id is provided, no default definition is set and all definitions have isDefault set to false. required: true responses: default: description: successful operation /settings/supportedCurrencies: get: tags: - Settings summary: Get supported currencies description: Get supported currencies for your tenant operationId: getSupportedCurrencies responses: default: description: successful operation put: tags: - Settings summary: Update supported currencies description: Update supported currencies for your tenant operationId: updateSupportedCurrencies requestBody: $ref: '#/components/requestBodies/postInvoicesForBulkInvoiceRunBody' responses: default: description: successful operation /fx/transactional/refresh: post: tags: - Foreign Exchange summary: Refresh transactional exchange rates description: Refresh transactional exchange rates for all supported currencies to functional currencies for the given effective date operationId: refreshExchangeRates parameters: - name: effectiveDate in: query required: true schema: type: integer format: int64 responses: default: description: successful operation /fx/transactional/latest: get: tags: - Foreign Exchange summary: Get latest transactional exchange rates description: Get latest transactional exchange rates for all currency pairs of supported currencies to functional currencies operationId: getLatestExchangeRates responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/TransactionalExchangeRate' /fx/transactional/asof: get: tags: - Foreign Exchange summary: Get as of transactional exchange rate for a currency pair description: Get transactional exchange rate for a currency pair as of a specific date operationId: getExchangeRateAsOf parameters: - name: fromCurrency in: query required: false schema: type: string - name: toCurrency in: query required: false schema: type: string - name: asOf in: query required: true schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/TransactionalExchangeRate' /fx/transactional/refreshPair: post: tags: - Foreign Exchange summary: Refresh transactional exchange rate by currency pair description: Fetch and store transactional exchange rate for given currency pair and effective date from exchange rate provider operationId: refreshExchangeRatePair parameters: - name: fromCurrency in: query required: false schema: type: string - name: toCurrency in: query required: false schema: type: string - name: effectiveDate in: query required: true schema: type: integer format: int64 responses: default: description: successful operation /unitsOfMeasure: get: tags: - Settings summary: Get units of measure description: Returns a paginated list of units of measure operationId: getUnitsOfMeasure parameters: - name: cursor in: query required: false schema: type: string format: uuid - name: limit in: query required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UnitOfMeasurePaginationResponseJson' post: tags: - Settings summary: Add unit of measure description: Add a new instance of unit of measure as specified by the input operationId: addUnitOfMeasure requestBody: $ref: '#/components/requestBodies/UnitOfMeasureJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UnitOfMeasureJson' /unitsOfMeasure/{id}: put: tags: - Settings summary: Update unit of measure description: Update the unit of measure by Id provided. operationId: updateUnitOfMeasure parameters: - name: id in: path required: true schema: type: string format: uuid requestBody: $ref: '#/components/requestBodies/UnitOfMeasureJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UnitOfMeasureJson' delete: tags: - Settings summary: Delete unit of measure description: Delete the unit of measure by Id provided. Returns the deleted unit of measure object if successful. operationId: deleteUnitOfMeasure parameters: - name: id in: path required: true schema: type: string format: uuid responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UnitOfMeasureJson' /unitsOfMeasure/{id}/activate: post: tags: - Settings summary: Activate unit of measure description: Activates the specified unit of measure making it available to be attached to charges operationId: activateUnitOfMeasure parameters: - name: id in: path required: true schema: type: string format: uuid responses: default: description: successful operation /unitsOfMeasure/{id}/deprecate: post: tags: - Settings summary: Deprecate unit of measure description: Deprecates the specified unit of measure making it unavailable to be attached to charges going forward operationId: deprecateUnitOfMeasure parameters: - name: id in: path required: true schema: type: string format: uuid responses: default: description: successful operation /v2/usage/aggregate: put: tags: - Usage summary: Aggregate raw usage description: Trigger the process to aggregate any remaining raw usage records operationId: performOnDemandUsageAggregation responses: default: description: successful operation /v2/usage/csv: post: tags: - Usage summary: Upload usage record CSV description: Upload usage records in CSV file. Each row of the file represents a single usage record operationId: uploadSubscriptionUsageCSV requestBody: $ref: '#/components/requestBodies/uploadApprovalMatrixCSV' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UsageBatchInsertResult' /v2/usage: post: tags: - Usage summary: Add usage record description: Load usage records into the system operationId: addUsage requestBody: content: application/json: schema: $ref: '#/components/schemas/RawUsagesData' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UsageBatchInsertResult' /v2/usage/{subscriptionId}: get: tags: - Usage summary: Get aggregated usage description: Retrieve the current aggregated usage data for a subscription between 2 instants operationId: getUsageAggregatesForSubscription parameters: - name: subscriptionId in: path required: true schema: type: string - name: from in: query required: true schema: type: integer format: int64 - name: to in: query required: true schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/UsageAggregateOutput' /v2/usage/stats/{subscriptionId}: get: tags: - Usage summary: Get prepaid drawdown usage stats for subscription description: Retrieve the current prepaid drawdown statistics for a subscription operationId: getUsageStatsForSubscription parameters: - name: subscriptionId in: path description: ID of subscription to retrieve usages stats for required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/PrepaidStats' /v2/usage/stats/{subscriptionId}/csv: get: tags: - Usage summary: Get prepaid drawdown usage stats CSV description: Retrieve the current prepaid drawdown statistics for a subscription in CSV format operationId: getUsageStatsForSubscriptionCsv parameters: - name: subscriptionId in: path required: true schema: type: string responses: default: description: successful operation /v2/usage/stats/{subscriptionId}/pdf: get: tags: - Usage summary: Get prepaid drawdown usage stats PDF description: Retrieve the current prepaid drawdown statistics for a subscription in PDF format operationId: getUsageStatsForSubscriptionPdf parameters: - name: subscriptionId in: path required: true schema: type: string responses: default: description: successful operation /v2/usage/stats/csv: get: tags: - Usage summary: Get all prepaid drawdown usage stats CSV description: Retrieve the current prepaid drawdown statistics for all subscriptions for a time range in CSV format operationId: getUsageStatsForAllSubscriptionsCsv parameters: - name: from in: query required: true schema: type: integer format: int64 - name: to in: query required: true schema: type: integer format: int64 responses: default: description: successful operation /v2/usage/aggregate/usageArrivalTimeCheckpoint: get: tags: - Usage summary: Get usage arrival checkpoint description: Retrieve the latest usage record upload to the system as epoch seconds operationId: getUsageArrivalTimeCheckpoint responses: default: description: successful operation /userGroups: get: tags: - Users summary: Get user groups description: Get all available user groups operationId: getUserGroups responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/UserGroupJson' post: tags: - Users summary: Add user group description: Create a new user group based on the parameters in the input operationId: addUserGroup requestBody: $ref: '#/components/requestBodies/UserGroupRequestJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserGroupJson' put: tags: - Users summary: Update user group description: Updates the specified user group according to the input operationId: updateUserGroup requestBody: $ref: '#/components/requestBodies/UserGroupRequestJson' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserGroupJson' /userGroups/{userGroupId}: get: tags: - Users summary: Get user group description: Retrieve a user group by Id operationId: getUserGroup parameters: - name: userGroupId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserGroupJson' delete: tags: - Users summary: Delete user group description: Delete the user group by Id operationId: deleteUserGroup parameters: - name: userGroupId in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserGroupJson' /users/upload: post: tags: - Users summary: Bulk user upload description: Loads a list of users to be added to in CSV format. operationId: uploadCSV requestBody: content: text/csv: schema: $ref: '#/components/schemas/InputStream' responses: default: description: successful operation /users/resend-email/{email}: post: tags: - Users summary: Resend welcome email description: Resend welcome email conditioning temporary credentials. This is required if the user does not register within 24 hours of user activation operationId: resendEmailForExistingUser parameters: - name: email in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: type: string /users: get: tags: - Users summary: Get users list description: Returns a paginated list of users operationId: getUsers parameters: - name: cursor in: query required: false schema: type: string format: uuid - name: limit in: query required: false schema: type: integer format: int32 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserPaginationResponseJson' post: tags: - Users summary: Add a new user description: Add a new user to the system. Users in the system must have unique emails. If successful, the path to the new user object is returned and a welcome email containing a temporary password will be sent to the email associated with the user. The login credentials expires in 24 hours. If the user does not login to the system within that time, a new invitation is required. operationId: addUser requestBody: $ref: '#/components/requestBodies/UserInput' responses: '200': description: successful operation content: application/json: schema: type: string /users/terms-and-conditions: post: tags: - Users summary: Accept terms and conditions description: Before a user gains access to the application, they must accept Subskribe's terms and conditions. This operation requires user bound access tokens. operationId: acceptTermsForCurrentUser responses: default: description: successful operation /users/disable/{id}: put: tags: - Users summary: Disable user description: Disables a user by Id. If successful, returns the user just disabled operationId: disableUser parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserJson' /users/enable/{id}: put: tags: - Users summary: Enable user description: Enables a user by Id. If successful, returns the user just enabled operationId: enableUser parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserJson' /users/{id}: get: tags: - Users summary: Get user by Id description: Returns a specific user by Id operationId: getUser parameters: - name: id in: path required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/UserJson' put: tags: - Users summary: Update user description: Updates the user information. Email cannot be updated. operationId: updateUser parameters: - name: id in: path required: true schema: type: string requestBody: $ref: '#/components/requestBodies/UserInput' responses: default: description: successful operation /users/{id}/sso: put: tags: - Users summary: Update user SSO configuration description: Toggle user SSO configuration by user Id. operationId: updateUserSSOConfig parameters: - name: id in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UserSsoUpdate' responses: default: description: successful operation /rh/accounts/{accountId}: get: tags: - Account operationId: getCpqSourcedAccount parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string responses: default: description: successful operation put: tags: - Account operationId: updateCpqSourcedAccount parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/NewAccountJson' responses: default: description: successful operation /rh/accounts: post: tags: - Account operationId: addCpqSourcedAccount requestBody: $ref: '#/components/requestBodies/NewAccountJson' responses: default: description: successful operation /rh/accounts/bulk: post: tags: - Account operationId: getCpqSourcedAccounts requestBody: content: application/json: schema: $ref: '#/components/schemas/AccountQueryRequest' responses: default: description: successful operation /rh/accounts/cfac-id: get: tags: - Account operationId: getCpqSourcedAccountsByUvcaCfacId parameters: - name: uvcaCfacId in: query description: uvca_cfac_id required: true schema: type: integer format: int64 responses: default: description: successful operation /rh/accounts/{accountId}/contacts: get: tags: - Account operationId: getCpqSourcedAccountContacts parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string responses: default: description: successful operation post: tags: - Account operationId: addCpqSourcedAccountContact parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/NewAccountContactJson' responses: default: description: successful operation /rh/accounts/{accountId}/contacts/{contactId}: get: tags: - Account operationId: getCpqSourcedAccountContact parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string - name: contactId in: path description: The unique contact identifier required: true schema: type: string responses: default: description: successful operation put: tags: - Account operationId: updateCpqSourcedAccountContact parameters: - name: accountId in: path description: The unique account identifier required: true schema: type: string - name: contactId in: path description: The unique contact identifier required: true schema: type: string requestBody: $ref: '#/components/requestBodies/NewAccountContactJson' responses: default: description: successful operation /rh/invoices/{invoiceId}/erpSync: get: tags: - ERP operationId: getInvoiceErpSyncData parameters: - name: invoiceId in: path description: Invoice number. required: true schema: type: string responses: default: description: successful operation /rh/invoices: get: tags: - Invoice operationId: getCpqSourcedAccountInvoices parameters: - name: accountId in: query description: Required. Filter invoices to this account. required: true schema: type: string - name: status in: query description: Optional invoice status filter (DRAFT, POSTED, VOIDED). required: false schema: type: string enum: - DRAFT - POSTED - PAID - CONVERTED - VOIDED - name: pageToken in: query description: Pass the pageToken returned from a prior call to fetch the next page. required: false schema: type: string - name: limit in: query description: Page size (default 20). required: false schema: type: integer format: int32 default: 20 responses: default: description: successful operation /rh/orders/{orderIdentifier}: get: tags: - Order summary: Get an order by its identifier description: '' operationId: getOrder_1 parameters: - name: orderIdentifier in: path description: The order identifier required: true schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Order' /rh/orders/{orderIdentifier}/memoizedInvoiceItems: get: tags: - Order summary: Compute memoized invoice line items for given order description: '' operationId: getMemoizedInvoiceItems parameters: - name: orderIdentifier in: path description: The order identifier required: true schema: type: string - name: roundingAllocation in: query description: rounding allocation for memoization, defaults to LAST_ELEMENT if not present required: false schema: type: string responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Order' /rh/orders: post: tags: - Order operationId: postBillableOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/NewOrderRequest' responses: default: description: successful operation /rh/payments/{paymentId}/erpSync: get: tags: - ERP operationId: getPaymentErpSyncData parameters: - name: paymentId in: path description: Payment id. required: true schema: type: string responses: default: description: successful operation /rh/search: get: tags: - Search summary: Run a search query description: Runs the specified search query operationId: search parameters: - name: query in: query description: query to run required: true schema: type: string responses: default: description: successful operation post: tags: - Search summary: Run a search query (POST) description: Same as GET /rh/search but accepts the query in the request body. Use when the query JSON is too large to fit in a URL (e.g. terms clauses with hundreds of ids). operationId: searchPost requestBody: content: application/json: schema: $ref: '#/components/schemas/JsonNode' description: Query to run required: true responses: default: description: successful operation /rh/product-provisioning: post: tags: - Product Provisioning operationId: syncSkus requestBody: content: application/json: schema: $ref: '#/components/schemas/NewSkuSyncRequest' responses: default: description: successful operation /rh/subscriptions/{subscriptionId}/renew: post: tags: - Subscriptions summary: Renew an existing subscription description: Create a renewal order for an existing subscription operationId: renewSubscription parameters: - name: subscriptionId in: path description: The subscription ID required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RenewalOrderRequest' responses: default: description: successful operation /rh/subscriptions: get: tags: - Subscriptions summary: Get subscriptions description: Get a paginated list of subscriptions (without line items) for a buyer account operationId: getSubscriptions_1 parameters: - name: buyerAccountId in: query description: The buyer account ID required: true schema: type: string - name: pageToken in: query description: Token for pagination required: false schema: type: string - name: limit in: query description: Number of results per page required: false schema: type: integer format: int32 default: 10 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaginatedResultSubscriptionHead' /rh/subscriptions/{id}/detail: get: tags: - Subscriptions summary: Get subscription details description: Gets the details of the specified subscription. operationId: getSubscriptionById_1 parameters: - name: id in: path description: subscription id required: true schema: type: string responses: '200': description: successful operation content: '*/*': schema: $ref: '#/components/schemas/Subscription' /rh/subscriptions/{id}/detail/lines: post: tags: - Subscriptions summary: Get subscription lines description: Get the line items for an existing subscription operationId: getSubscriptionLines parameters: - name: id in: path description: subscription id required: true schema: type: string requestBody: $ref: '#/components/requestBodies/postInvoicesForBulkInvoiceRunBody' responses: default: description: successful operation /rh/subscriptions/detail: get: tags: - Subscriptions summary: Get subscriptions with detail description: Get a paginated list of subscriptions with full details for a buyer account operationId: getSubscriptionsWithDetail parameters: - name: buyerAccountId in: query description: The buyer account ID required: true schema: type: string - name: pageToken in: query description: Token for pagination required: false schema: type: string - name: limit in: query description: Number of results per page required: false schema: type: integer format: int32 default: 10 - name: effectiveDate in: query description: Effective date in seconds since epoch required: false schema: type: integer format: int64 - name: includeExpiredLines in: query description: Include expired line items required: false schema: type: boolean default: false responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/PaginatedResultSubscription' /rh/subscriptions/{subscriptionId}/amend: post: tags: - Subscriptions summary: Amend an existing subscription description: Create an amendment order for an existing subscription operationId: amendSubscription parameters: - name: subscriptionId in: path description: The subscription ID required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/AmendmentOrderRequest' responses: default: description: successful operation /rh/subscriptions/{subscriptionId}/cancel: post: tags: - Subscriptions summary: Cancel an existing subscription description: Create a cancellation order for an existing subscription operationId: cancelSubscription parameters: - name: subscriptionId in: path description: The subscription ID required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CancelOrderRequest' responses: default: description: successful operation /rh/tenants: post: tags: - Tenant operationId: createRevHubTenant requestBody: $ref: '#/components/requestBodies/TenantJson' responses: default: description: successful operation servers: - url: https://api.app.subskribe.com components: requestBodies: IntelligentSalesRoomUpdateCustomerInfoRequest: content: application/json: schema: $ref: '#/components/schemas/IntelligentSalesRoomUpdateCustomerInfoRequest' TemplateScript: content: application/json: schema: $ref: '#/components/schemas/TemplateScript' generateZeppaArtifactBody: content: text/plain: schema: type: string CustomFieldUpdateInput: content: application/json: schema: $ref: '#/components/schemas/CustomFieldUpdateInput' description: custom field value required: true updateCustomFieldsBody: content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/CustomFieldValue' description: custom field values required: true AnswerArray: content: application/json: schema: type: array items: $ref: '#/components/schemas/Answer' AutomatedInvoiceRuleRequestJson: content: application/json: schema: $ref: '#/components/schemas/AutomatedInvoiceRuleRequestJson' description: automated invoice rule required: true TaxRateStrategyJson: content: application/json: schema: $ref: '#/components/schemas/TaxRateStrategyJson' ProductCategory: content: application/json: schema: $ref: '#/components/schemas/ProductCategory' description: product category details json required: true ProductInputJson: content: application/json: schema: $ref: '#/components/schemas/ProductInputJson' description: product details json required: true UserInput: content: application/json: schema: $ref: '#/components/schemas/UserInput' TenantJson: content: application/json: schema: $ref: '#/components/schemas/TenantJson' DocumentSection: content: application/json: schema: $ref: '#/components/schemas/DocumentSection' NewAccountContactJson: content: application/json: schema: $ref: '#/components/schemas/NewAccountContactJson' DocumentTemplateRequestJson: content: application/json: schema: $ref: '#/components/schemas/DocumentTemplateRequestJson' AnrokIntegrationInput: content: application/json: schema: $ref: '#/components/schemas/AnrokIntegrationInput' description: Integration input as a JSON AccountJson: content: application/json: schema: $ref: '#/components/schemas/AccountJson' AccountContactJson: content: application/json: schema: $ref: '#/components/schemas/AccountContactJson' AccountAddress: content: application/json: schema: $ref: '#/components/schemas/AccountAddress' description: Address input as a JSON uploadApprovalMatrixCSV: content: multipart/form-data: schema: type: object properties: file: type: string format: binary EmailSetting: content: application/json: schema: $ref: '#/components/schemas/EmailSetting' syncInvoicesToErpBody: content: application/json: schema: type: array items: type: string description: List of invoice IDs to sync required: true GuidedSellingUsecase: content: application/json: schema: $ref: '#/components/schemas/GuidedSellingUsecase' updateCustomFields_1Body: content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/CustomFieldValue' description: Custom field values required: true postInvoicesForBulkInvoiceRunBody: content: application/json: schema: type: array items: type: string OpportunityRestJson: content: application/json: schema: $ref: '#/components/schemas/OpportunityRestJson' PlanJson: content: application/json: schema: $ref: '#/components/schemas/PlanJson' description: json of the plan details required: true updateRateCardCsv: content: multipart/form-data: schema: type: object properties: name: type: string description: type: string currency: type: string file: type: string format: binary TaxJarIntegrationInput: content: application/json: schema: $ref: '#/components/schemas/TaxJarIntegrationInput' description: Integration input as a JSON TaxRateJson: content: application/json: schema: $ref: '#/components/schemas/TaxRateJson' UnitOfMeasureJson: content: application/json: schema: $ref: '#/components/schemas/UnitOfMeasureJson' UserGroupRequestJson: content: application/json: schema: $ref: '#/components/schemas/UserGroupRequestJson' NewAccountJson: content: application/json: schema: $ref: '#/components/schemas/NewAccountJson' securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key schemas: 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 AccountReceivableContactJson: type: object required: - address properties: firstName: type: string lastName: type: string email: type: string phoneNumber: type: string address: $ref: '#/components/schemas/AccountAddressJson' AccountJson: type: object required: - name properties: id: type: string description: This is a system-generated Account ID name: type: string description: Account name legalName: type: string description: (optional) Account legal name description: type: string description: (optional) Account Description phoneNumber: type: string description: (optional) Phone number of the Account timezone: type: string readOnly: true crmId: type: string description: (optional) CRM ID of the Account crmType: type: string description: (optional) CRM type erpId: type: string description: (optional) ERP ID of this account externalId: type: string description: (optional) External ID of this account currency: type: string description: 'The currency code (ISO 4217 format). If currency is not entered, USD will be applied by default. Possible currencies in Subskribe: AED AUD CAD CHF CZK DKK EUR GBP HKD INR MXN NOK NZD SAR SEK SGD TWD USD' taxExemptionUseCode: type: string description: (optional) Indicates Tax Exemption Information. When the account does not qualify for Tax Exemption, add null in the request. When using Anrok Tax Integration, keep this value null , as Anrok requires to upload Tax Exemption Certificate. enum: - A - B - C - D - E - F - G - H - I - J - K - L - M - N - P - Q - R isReseller: type: boolean description: (optional) Input true, if this is a Reseller Account. Default is false hasAutomaticPayment: type: boolean description: (optional) Input true, if this Account will have an automatic payment. Default is false excludeFromBatchOperations: type: boolean description: (optional) Input true, if this account needs to be excluded from Batch Operations like Bulk Invoice Run, Invoice Generation. Default is false. This is an optional field. excludeFromDunning: type: boolean description: (optional) Input true, if this account needs to be excluded from Dunning emails. Default is false. This is an optional field. supportedPaymentTypes: type: array description: (optional) Supported payment types for this Account. This field can include various payment types such as ACH, Card, Check, Wire, and Invoice. This is an optional field. uniqueItems: true items: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL address: $ref: '#/components/schemas/AccountAddressJson' updatedOn: type: integer format: int64 description: (optional) will be auto-populated as today's date customFields: type: object description: (optional) Use this option to create custom fields for the Account object if you need to collect Account-specific information, such as region, age, or gender. additionalProperties: $ref: '#/components/schemas/CustomFieldValue' entityIds: type: array description: (optional) Enter the entity ID where this Account belongs to uniqueItems: true items: type: string CustomFieldDefault: type: object properties: value: type: string selections: type: array items: type: string 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' 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 PaginatedAccountsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/AccountJson' numElements: type: integer format: int32 nextCursor: type: string format: uuid MetricsJson: type: object properties: tcv: type: number recurringTotal: type: number nonRecurringTotal: type: number arr: type: number entryArr: type: number exitArr: type: number averageArr: type: number arrTrend: type: array items: $ref: '#/components/schemas/TimeSeriesAmountJson' deltaTcv: type: number deltaArr: type: number TimeSeriesAmountJson: type: object properties: instant: type: integer format: int64 amount: type: number AccountPaymentMethodJson: type: object required: - paymentType properties: id: type: string format: uuid readOnly: true accountId: type: string name: type: string externalPaymentAccountId: type: string paymentType: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL paymentMethodId: type: string ErpInputJson: type: object properties: erpId: type: string minLength: 0 maxLength: 100 CrmAccountImportResponse: type: object properties: accountUrl: type: string accountId: type: string AccountPaymentConfigurationJson: type: object required: - accountId - excludeFromPaymentRetries properties: id: type: string accountId: type: string excludeFromPaymentRetries: type: boolean AccountingPeriod: type: object properties: startDate: type: integer format: int64 endDate: type: integer format: int64 deferredRevenueBalance: type: number status: type: string enum: - OPEN - CLOSE_IN_PROGRESS - CLOSED - UPCOMING syncStatus: type: string enum: - NONE - WAITING - IN_PROGRESS - SUCCEEDED - FAILED openedBy: type: string openedOn: type: integer format: int64 closedBy: type: string closedOn: type: integer format: int64 calculation: $ref: '#/components/schemas/AccountingPeriodCalculation' openedByUser: $ref: '#/components/schemas/UserJson' closedByUser: $ref: '#/components/schemas/UserJson' synthetic: type: boolean id: type: string entityId: type: string AccountingPeriodCalculation: type: object properties: deferredRevenueStartingBalance: type: number deferredRevenueEndingBalance: type: number additionalRevenue: type: number recognizedRevenue: type: number unrecognizedRevenue: type: number unrecognizedTransactionCount: type: integer format: int32 ApprovalSegmentJson: type: object properties: id: type: string name: type: string description: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 EntityRef: type: object required: - entityId - name properties: entityId: type: string readOnly: true displayId: type: string readOnly: true name: type: string readOnly: true UserGroupJson: type: object properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string description: type: string users: type: array items: type: string externalId: type: string UserJson: type: object properties: id: type: string displayName: type: string title: type: string email: type: string phoneNumber: type: string state: type: string enum: - ACTIVE - DISABLED - EXPIRED role: type: string enum: - ADMIN - FINANCE - SALES - SALES_MANAGER - ACCOUNTANT - BILLING_CLERK - REVENUE_CLERK - READ_ONLY - EXECUTIVE - CRM - IMPORT - BILLY_ADMIN - BILLY_ENGINEER - BILLY_SUPPORT - BILLY_JOB ssoOnly: type: boolean tenantName: type: string cognitoUserStatus: type: string enum: - UNCONFIRMED - CONFIRMED - ARCHIVED - COMPROMISED - UNKNOWN - RESET_REQUIRED - FORCE_CHANGE_PASSWORD - EXTERNAL_PROVIDER - UNKNOWN_TO_SDK_VERSION userGroups: type: array items: $ref: '#/components/schemas/UserGroupJson' approvalSegments: type: array items: $ref: '#/components/schemas/ApprovalSegmentJson' hasAllEntitiesAccess: type: boolean availableEntities: type: array items: $ref: '#/components/schemas/EntityRef' entityIds: type: array items: type: string externalId: type: string eventObjectId: type: string MediaType: type: object properties: type: type: string subtype: type: string parameters: type: object additionalProperties: type: string wildcardType: type: boolean wildcardSubtype: type: boolean OutboundEvent: type: object properties: name: type: string comment: type: string id: type: string mediaType: $ref: '#/components/schemas/MediaType' data: type: object reconnectDelay: type: integer format: int64 genericType: $ref: '#/components/schemas/Type' reconnectDelaySet: type: boolean Type: type: object properties: typeName: type: string Message: type: object required: - createdAt - message - role properties: role: type: string readOnly: true message: type: string readOnly: true createdAt: type: integer format: int64 readOnly: true SubscriptionChargeAlias: type: object properties: aliasId: type: string minLength: 5 maxLength: 100 subscriptionId: type: string minLength: 0 maxLength: 36 chargeId: type: string minLength: 0 maxLength: 36 createdOn: type: integer format: int64 AnrokIntegrationInput: type: object required: - apiKey properties: apiKey: type: string readOnly: true 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 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 ApprovalFlowJson: type: object properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string description: type: string status: type: string enum: - ACTIVE - INACTIVE isSmartApproval: type: boolean states: type: array items: $ref: '#/components/schemas/ApprovalStateJson' transitionRules: type: array items: $ref: '#/components/schemas/ApprovalTransitionRuleJson' ApprovalRuleConditions: type: object properties: orderCondition: type: string orderLineCondition: type: string ApprovalStateActionJson: type: object properties: emailGroupId: type: string ApprovalStateJson: type: object properties: id: type: string name: type: string approvalGroupId: type: string approverId: type: string approverType: type: string enum: - USER - USER_GROUP - ROLE action: $ref: '#/components/schemas/ApprovalStateActionJson' escalationPolicyId: type: string ApprovalTransitionRuleJson: type: object properties: id: type: string name: type: string fromState: type: string toState: type: string condition: type: string ruleConditions: $ref: '#/components/schemas/ApprovalRuleConditions' ApprovalMatrixImportDataJson: type: object properties: id: type: string fileName: type: string uploadedBy: type: string status: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 ApprovalMatrixImportPreview: type: object properties: id: type: string uploadedBy: type: string segmentsToAdd: type: array items: type: string segmentsToDelete: type: array items: type: string approvalRoleSegmentChanges: type: array items: $ref: '#/components/schemas/ApprovalRoleSegmentChange' ApprovalRoleSegmentChange: type: object properties: roleName: type: string segmentName: type: string previousUserOrGroupName: type: string newUserOrGroupName: type: string ApprovalRoleJson: type: object properties: id: type: string name: type: string description: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 Attachment: type: object required: - createdOn - id - name properties: id: type: string format: uuid name: type: string description: type: string status: type: string enum: - UPLOADING - UPLOADED accountId: type: string tag: type: string enum: - MASTER_SUBSCRIPTION_AGREEMENT - STATEMENT_OF_WORK - ORDER_FORM - OTHER inUse: type: boolean isDeleted: type: boolean createdOn: type: integer format: int64 updatedOn: type: integer format: int64 AuthSamlIntegrationJson: type: object properties: attributeMapping: type: object additionalProperties: type: string metadataUrl: type: string providerName: type: string AutomatedInvoiceRuleRequestJson: type: object required: - cronExpression - firstExecutionDate - name properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string description: type: string cronExpression: type: string firstExecutionDate: type: integer format: int64 lastExecutionDate: type: integer format: int64 targetDuration: type: integer format: int32 invoiceDuration: type: integer format: int32 includeUsageCharge: type: boolean includeNonUsageCharge: type: boolean autoPostInvoice: type: boolean autoEmailInvoice: type: boolean enabled: type: boolean AutomatedInvoiceRule: type: object properties: name: type: string id: type: string format: uuid enabled: type: boolean entityIds: type: array uniqueItems: true items: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 cronExpression: type: string automatedInvoiceRuleId: type: string cronExpressionMeaning: type: string lastExecutionDate: type: integer format: int64 nextExecutionDate: type: integer format: int64 targetDuration: type: integer format: int32 invoiceDuration: type: integer format: int32 includeUsageCharge: type: boolean includeNonUsageCharge: type: boolean autoPostInvoice: type: boolean autoEmailInvoice: type: boolean firstExecutionDate: type: integer format: int64 description: type: string 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 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 InvoiceBankTransactionMatchResponse: type: object properties: invoiceID: type: string readOnly: true bankTransactionIDs: type: array readOnly: true items: type: string invoiceStatus: type: string readOnly: true enum: - DRAFT - POSTED - PAID - CONVERTED - VOIDED invoiceBalance: type: number readOnly: true paymentId: type: string readOnly: true MatchBankTransactionsRequest: type: object properties: invoiceID: type: string bankTransactionIDs: type: array items: type: string BankTransactionPotentialInvoice: type: object properties: id: type: string format: uuid entityId: type: string createdOn: type: integer format: int64 status: type: string paymentType: type: string bankAccountId: type: string externalTransactionId: type: string transactionAmount: type: number transactionDate: type: integer format: int64 payerName: type: string referenceNumber: type: string transactionCurrency: type: string transactionType: type: string potentialInvoices: type: array items: $ref: '#/components/schemas/PotentialInvoice' bankTransactionId: type: string bankAccountName: type: string PaginatedBankTransactionPotentialInvoiceResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/BankTransactionPotentialInvoice' count: type: integer format: int32 pageToken: type: string totalCount: type: integer format: int32 PotentialInvoice: type: object properties: invoiceNumber: type: string invoiceAmount: type: number accountName: type: string invoiceDate: type: integer format: int64 matchingConfidence: type: integer format: int32 BankTransactionsUploadData: type: object properties: failed: type: boolean paymentType: type: string failureReason: type: string bankAccountId: type: string externalTransactionId: type: string transactionAmount: type: string transactionDate: type: string payerName: type: string referenceNumber: type: string transactionCurrency: type: string transactionType: type: string BankTransactionsUploadResult: type: object properties: bankTransactionsCount: type: integer format: int32 failedBankTransactionsCount: type: integer format: int32 successfulBankTransactionsCount: type: integer format: int32 bankTransactionsUploadData: type: array items: $ref: '#/components/schemas/BankTransactionsUploadData' ChargeJson: type: object required: - chargeModel - name - type properties: id: type: string description: System-generated unique identifier for the charge readOnly: true name: type: string description: Name of the charge displayName: type: string description: Display name of the charge shown to customers description: type: string description: Detailed description of the charge taxRateId: type: string format: uuid description: 'ID of the tax rate applied to this charge. To get a list of available tax rate IDs, call the [Get tax rates](/reference/gettaxrates) operation. DEPRECATED: Use taxRateStrategyId instead. (deprecated: use taxRateStrategyId)' taxRateStrategyId: type: string description: ID of the tax rate strategy applied to this charge. This determines how taxes are calculated when multiple tax rates apply. unitOfMeasureId: type: string format: uuid description: ID of the unit of measure for this charge (e.g., GB, users, licenses). To get a list of available unit of measure IDs, call the [Get units of measure](/reference/getunitsofmeasure) operation. isRenewable: type: boolean description: Indicates if the charge is renewable isCreditable: type: boolean description: Indicates if the charge can be credited isListPriceEditable: type: boolean description: Indicates if the list price can be edited minQuantity: type: integer format: int64 description: Minimum quantity that must be ordered. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. defaultQuantity: type: integer format: int64 description: Default quantity for this charge. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. maxQuantity: type: integer format: int64 description: Maximum quantity that can be ordered. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. externalId: type: string description: External identifier for the charge, used for integration with other systems minAmount: type: number description: '**NOTE: This parameter is currently in beta** Minimum monetary amount for this charge. Applies only when `type` is `PERCENTAGE_OF`.' maxAmount: type: number description: '**NOTE: This parameter is currently in beta** Maximum monetary amount for this charge. Applies only when `type` is `PERCENTAGE_OF`.' recognitionRuleId: type: string description: ID of the revenue recognition rule associated with this charge erpId: type: string description: ERP system identifier for this charge itemCode: type: string description: Item code used for this charge in external systems targetPlanIds: type: array description: List of plan IDs that this PERCENTAGE_OF charge applies to items: type: string planId: type: string description: ID of the plan this charge belongs to amount: type: number description: The monetary amount for this charge type: type: string description: 'Type of charge: `ONE_TIME`, `RECURRING`, `USAGE`, `PREPAID`, or `PERCENTAGE_OF`. See also [Supported charge type and charge model combinations](/docs/charge-types-and-models#/supported-charge-type-and-charge-model-combinations). * `ONE_TIME`: Charge a one-time fee for a product or service that''s usually purchased only once, for example, an initial setup fee. * `RECURRING`: Charge a fee on a recurring basis. The `recurrence` object specifies the cadence. * `USAGE`: Charge customers based on their usage of the product or service. * `PREPAID`: Charge customers a certain price in advance of them using a product or service. Suitable for scenarios where the customer purchases the product or service for a fixed duration or usage limit. * `PERCENTAGE_OF`: Charge a percentage of a customer''s revenue gained from using your product or service. The price is calculated as a percentage of the total cost of one or more target plans. The `targetPlanIds` field specifies the plans that are targeted.' enum: - ONE_TIME - RECURRING - USAGE - PREPAID - PERCENTAGE_OF chargeModel: type: string description: 'Pricing model for the charge: `PER_UNIT`, `VOLUME`, `TIERED`, `FLAT_FEE`, `BLOCK`, or `RATE_CARD_LOOKUP`. See also [Supported charge type and charge model combinations](/docs/charge-types-and-models#/supported-charge-type-and-charge-model-combinations). * `PER_UNIT`: Charge a specific amount per unit of the product. * `VOLUME`: Offer a volume discount where per-unit cost decreases as the customer buys a larger number of product units. * `TIERED`: Define tiers with different per-unit prices based on number of units bought. Per-unit prices are applied successively starting with the first tier. * `FLAT_FEE`: Charge a fixed, flat amount on a set schedule regardless of plan usage. For example, charge a $10 flat fee per month. * `BLOCK`: Define product usage in tiered blocks and charge a specific amount per block based on the usage tier. For example, for an email marketing platform, charge $100 for a usage block of 1-500 emails, and $150 for a usage block of 500+ emails. A customer who wants to send 800 emails will purchase the 500+ block for $150. * `RATE_CARD_LOOKUP`: Use an existing rate card to price a product based on a combination of price attributes.' enum: - PER_UNIT - VOLUME - TIERED - FLAT_FEE - BLOCK - RATE_CARD_LOOKUP recurrence: $ref: '#/components/schemas/RecurrenceJson' priceTiers: type: array description: List of price tiers for tiered pricing models. Required only if the value of `chargeModel` is `TIERED`, `BLOCK` or `VOLUME`. items: $ref: '#/components/schemas/PriceTierJson' isDrawdown: type: boolean description: Indicates if this is a drawdown charge minimumCommitBaseChargeId: type: string description: ID of the base charge for minimum commit calculation overageBaseChargeId: type: string description: '**NOTE: This parameter is currently in beta** ID of the base charge for overage calculation' isCustom: type: boolean description: Indicates if this is a custom charge percent: type: number description: Percentage value for PERCENTAGE_OF charge types percentDerivedFrom: type: string description: For PERCENTAGE_OF charges, specifies if percentage is calculated from LIST_AMOUNT or SELL_AMOUNT enum: - LIST_AMOUNT - SELL_AMOUNT ledgerAccountMapping: $ref: '#/components/schemas/LedgerAccountMapping' durationInMonths: type: integer format: int64 description: Duration of the charge in months (for time-limited charges) isEventBased: type: boolean description: Indicates if this charge is event-based rather than time-based isDiscount: type: boolean description: Indicates if this charge represents a discount rateCardId: type: string description: ID of the rate card for RATE_CARD_LOOKUP charge models billingTerm: type: string description: 'Billing term: UP_FRONT or IN_ARREARS' enum: - UP_FRONT - IN_ARREARS billingCycle: type: string description: 'Billing cycle: DEFAULT, CHARGE_RECURRENCE, PAID_IN_FULL, MONTH, QUARTER, SEMI_ANNUAL, YEAR' enum: - DEFAULT - CHARGE_RECURRENCE - PAID_IN_FULL - MONTH - QUARTER - SEMI_ANNUAL - YEAR shouldTrackArr: type: boolean description: Indicates if this charge should be included in Annual Recurring Revenue (ARR) calculations customFields: type: object description: Map of custom fields associated with this charge additionalProperties: $ref: '#/components/schemas/CustomFieldValue' custom: type: boolean eventObjectId: type: string drawdown: type: boolean eventBased: type: boolean creditable: type: boolean description: JSON object representing the charge details. LedgerAccountMapping: type: object properties: taxLiabilityAccountId: type: string readOnly: true deferredRevenueAccountId: type: string readOnly: true recognizedRevenueAccountId: type: string readOnly: true contractAssetAccountId: type: string readOnly: true ledgerAccountIds: type: array items: type: string PriceTierJson: type: object required: - amount - untilQuantity properties: untilQuantity: type: string amount: type: number overage: type: number 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 AttributeReference: type: object properties: attributeDefinitionId: type: string readOnly: true attributeValue: type: string readOnly: true CompositeOrderJson: type: object properties: id: type: string type: type: string enum: - UPSELL_AND_EARLY_RENEWAL - CANCEL_SINGLE_SUBSCRIPTION_AND_RESTRUCTURE isPrimaryCompositeOrderForCrmOpportunity: type: boolean entityId: type: string orders: type: array items: $ref: '#/components/schemas/OrderJson' crmOpportunityId: type: string crmOpportunityName: type: string crmOpportunityStage: type: string crmOpportunityType: type: string documentMasterTemplateId: type: string format: uuid createdOn: type: integer format: int64 updatedOn: type: integer format: int64 status: type: string enum: - DRAFT - SUBMITTED - APPROVED - EXECUTED - EXPIRED CreditableAmount: type: object properties: subscriptionChargeId: type: string creditableAmount: type: number maxCreditableAmount: type: number 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' CustomPredefinedTemplateOnOrder: type: object properties: id: type: string orderId: type: string name: type: string description: type: string content: type: string 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 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' OrderCreationCustomizationOutputJson: type: object properties: customizationRunSkipped: type: boolean customizationDefinitionMissing: type: boolean ruleTraces: type: array items: $ref: '#/components/schemas/RuleTraceJson' 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' OrderLineActionsPerformedJson: type: object properties: lineIdentifier: type: string actionsPerformed: type: array items: $ref: '#/components/schemas/RuleActionPerformedJson' 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 OrderLineRuleWarningsJson: type: object properties: lineIdentifier: type: string warnings: type: array items: type: string 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 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 RuleActionPerformedJson: type: object properties: action: type: string actionMessage: type: string 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' 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 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 CreditMemoJson: type: object required: - accountId - amount - createdOn - creditMemoNumber - entityId - lineItems - status - updatedOn properties: lineItems: type: array items: $ref: '#/components/schemas/CreditMemoLineItemJson' entityId: type: string accountId: type: string amount: type: number notes: type: string creditMemoNumber: type: string currencyCode: type: string status: type: string enum: - DRAFT - POSTED - CLOSED - VOIDED postedDate: type: integer format: int64 creditMemoDate: type: integer format: int64 createdFrom: type: string exchangeRateId: type: string exchangeRate: type: number exchangeRateDate: type: integer format: int64 functionalAmount: type: number createdOn: type: integer format: int64 updatedOn: type: integer format: int64 erpId: type: string voidedDate: type: integer format: int64 voidedNote: type: string CreditMemoLineItemJson: type: object required: - tenantId properties: tenantId: type: string chargeId: type: string amount: type: number taxAmount: type: number functionalAmount: type: number functionalTaxAmount: type: number startDate: type: integer format: int64 endDate: type: integer format: int64 createdOn: type: integer format: int64 updatedOn: type: integer format: int64 VoidCreditMemoRequest: type: object required: - voidedDate properties: voidedDate: type: integer format: int64 voidedNote: type: string CreditMemoPaginationResponseJson: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/CreditMemoJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true CreditMemoLineItemRequestJson: type: object properties: chargeId: type: string amount: type: number startDate: type: integer format: int64 endDate: type: integer format: int64 StandaloneCreditMemoRequest: type: object required: - accountId - amount - currencyCode - lineItems - status properties: lineItems: type: array items: $ref: '#/components/schemas/CreditMemoLineItemRequestJson' accountId: type: string entityId: type: string amount: type: number notes: type: string currencyCode: type: string status: type: string enum: - DRAFT - POSTED - CLOSED - VOIDED postedDate: type: integer format: int64 creditMemoDate: type: integer format: int64 billingContactId: type: string creditReason: type: string startDate: type: integer format: int64 endDate: type: integer format: int64 TenantCreditMemoConfigurationJson: type: object properties: creditMemoNumberPrefix: type: string creditMemoNumberScheme: type: string creditMemoNumberLength: type: integer format: int32 creditMemoNextNumber: type: integer format: int32 CreditMemoBalanceJson: type: object properties: accountId: type: string creditMemoId: type: string format: uuid balance: type: number updatedOn: type: integer format: int64 CrmFieldMappingImportDataJson: type: object properties: id: type: string fileName: type: string uploadedBy: type: string status: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 CrmFieldMappingImportPreview: type: object properties: id: type: string uploadedBy: type: string crmFieldMappingChanges: type: array items: $ref: '#/components/schemas/UpdateCrmFieldMappingDetail' UpdateCrmFieldMappingDetail: type: object properties: id: type: string format: uuid failed: type: boolean failureReason: type: string deleted: type: boolean requestedCrmFieldName: type: string requestedSubskribeFieldName: type: string requestedCrmObjectType: type: string enum: - OPPORTUNITY - ACCOUNT - ORDER - ORDER_ITEM - SUBSCRIPTION - SUBSCRIPTION_ITEM requestedDirection: type: string enum: - INBOUND - OUTBOUND previousDirection: type: string enum: - INBOUND - OUTBOUND previousCrmObjectType: type: string enum: - OPPORTUNITY - ACCOUNT - ORDER - ORDER_ITEM - SUBSCRIPTION - SUBSCRIPTION_ITEM previousCrmFieldName: type: string previousSubskribeFieldName: type: string rowNumber: type: integer format: int64 CrmOpportunityNameChangeNotificationRequest: type: object required: - id - newName properties: id: type: string oldName: type: string newName: type: string 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 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 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' UpsertCrmContactsRequest: type: object properties: accountId: type: string contactCrmIds: type: array items: type: string maxItems: 500 minItems: 0 CustomFieldDefinitionCreateInput: type: object required: - fieldType - parentObjectType properties: parentObjectType: type: string readOnly: true enum: - ACCOUNT - ORDER - ORDER_ITEM - PLAN - CHARGE - INVOICE - SALES_ROOM - SUBSCRIPTION - SUBSCRIPTION_ITEM - OPPORTUNITY fieldType: type: string readOnly: true enum: - STRING - PICKLIST - MULTISELECT_PICKLIST fieldName: type: string readOnly: true fieldLabel: type: string readOnly: true 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' CustomFieldDefinitionJson: type: object properties: id: type: string readOnly: true parentObjectType: type: string readOnly: true enum: - ACCOUNT - ORDER - ORDER_ITEM - PLAN - CHARGE - INVOICE - SALES_ROOM - SUBSCRIPTION - SUBSCRIPTION_ITEM - OPPORTUNITY fieldType: type: string readOnly: true enum: - STRING - PICKLIST - MULTISELECT_PICKLIST fieldName: type: string readOnly: true fieldLabel: type: string readOnly: true options: type: array readOnly: true items: type: string required: type: boolean readOnly: true createdOn: type: integer format: int64 readOnly: true updatedOn: type: integer format: int64 readOnly: true defaultValue: $ref: '#/components/schemas/CustomFieldDefault' CustomFieldDefinitionUpdateInput: type: object properties: fieldName: type: string readOnly: true fieldLabel: type: string readOnly: true fieldType: type: string readOnly: true enum: - STRING - PICKLIST - MULTISELECT_PICKLIST options: type: array readOnly: true items: type: string defaultValue: $ref: '#/components/schemas/CustomFieldDefault' CustomFieldUpdateInput: type: object properties: value: type: string readOnly: true selections: type: array readOnly: true items: type: string DealPulseListResponse: type: object required: - totalCount properties: dealPulses: type: array readOnly: true items: $ref: '#/components/schemas/DealPulseOverview' totalCount: type: integer format: int32 readOnly: true DealPulseOverview: type: object required: - accountName - arr - orderCreationDate - orderId - pulseCategory - pulseScore - salesRoomId - uniqueVisitors properties: salesRoomId: type: string format: uuid readOnly: true orderId: type: string readOnly: true accountName: type: string readOnly: true arr: type: number readOnly: true orderCreationDate: type: string format: date readOnly: true pulseScore: type: integer format: int32 readOnly: true pulseCategory: type: string readOnly: true enum: - HOT - WARM - MODERATE - COOL - COLD uniqueVisitors: type: integer format: int32 readOnly: true aiRecommendation: type: string readOnly: true aiAnalysis: type: string readOnly: true recentActivities: type: array readOnly: true items: type: string pulseActivities: type: array readOnly: true items: type: string lastActivity: type: integer format: int64 readOnly: true TrackDealPulseEventRequest: type: object required: - eventType properties: eventType: type: string enum: - CONTACT_ADD - CONTACT_EDIT - FILE_DOWNLOAD - LOAD - PAGE_FOCUS - YOUTUBE_COMPLETE - ORDER_PDF_DOWNLOAD - YOUTUBE_PLAY - LINK_CLICK - SCROLL metadata: type: object additionalProperties: type: object userEmail: type: string DiscountJson: type: object properties: name: type: string percent: type: number discountAmount: type: number status: type: string enum: - ACTIVE - DEPRECATED discountedPrice: type: number DocuSignIntegrationRequestJson: type: object properties: clientId: type: string clientSecret: type: string environment: type: string enum: - DEMO - PRODUCTION DocuSignReauthenticationResponseJson: type: object required: - redirectUri properties: redirectUri: 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 DocumentTemplateJson: type: object required: - type properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string sectionUuid: type: string type: type: string enum: - ORDER - INVOICE - INVOICE_EMAIL - CREDIT_MEMO - EMAIL - UPSELL_EARLY_RENEWAL - DUNNING - CANCEL_AND_RESTRUCTURE - ESIGN description: type: string content: type: string status: type: string enum: - DRAFT - ACTIVE - DEPRECATED isUserSelectable: type: boolean version: type: integer format: int32 hasNewerVersion: type: boolean DocumentTemplateRequestJson: type: object required: - type properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string sectionUuid: type: string type: type: string enum: - ORDER - INVOICE - INVOICE_EMAIL - CREDIT_MEMO - EMAIL - UPSELL_EARLY_RENEWAL - DUNNING - CANCEL_AND_RESTRUCTURE - ESIGN description: type: string content: type: string status: type: string enum: - DRAFT - ACTIVE - DEPRECATED isUserSelectable: type: boolean DunningSettingJson: type: object required: - isEnabled properties: isEnabled: type: boolean dunningTypeMap: type: object additionalProperties: type: boolean EmailSetting: type: object required: - ccEmail - ccEmailType properties: entityId: type: string readOnly: true ccEmail: type: string readOnly: true minLength: 0 maxLength: 255 ccEmailType: type: string readOnly: true enum: - INVOICE_POSTED - CREDIT_MEMO_AVAILABLE - HUBSPOT_ERROR - DUNNING - APPROVAL_FLOW - ESIGN - LOGIN_LINK - NOTIFICATION createdOn: type: integer format: int64 readOnly: true updatedOn: type: integer format: int64 readOnly: true CompanyContactJson: type: object required: - address properties: firstName: type: string readOnly: true lastName: type: string readOnly: true email: type: string readOnly: true phoneNumber: type: string readOnly: true address: $ref: '#/components/schemas/AccountAddressJson' EntityJson: type: object required: - functionalCurrency - name - prorationMode - prorationScheme properties: entityId: type: string readOnly: true displayId: type: string readOnly: true name: type: string readOnly: true prorationScheme: type: string readOnly: true enum: - FIXED_DAYS - CALENDAR_DAYS prorationMode: type: string readOnly: true enum: - NORMALIZED - EXACT_DAYS - EXACT invoiceConfigId: type: string readOnly: true invoiceConfig: $ref: '#/components/schemas/NumberConfig' creditMemoConfig: $ref: '#/components/schemas/NumberConfig' timezone: type: string readOnly: true functionalCurrency: type: string readOnly: true wireInstruction: type: string readOnly: true companyContact: $ref: '#/components/schemas/CompanyContactJson' accountReceivableContact: $ref: '#/components/schemas/AccountReceivableContactJson' erpId: type: string readOnly: true NumberConfig: type: object properties: configId: type: string scheme: type: string enum: - SEQUENCE - PSEUDO_RANDOM prefix: type: string length: type: integer format: int32 nextSequenceNumber: type: integer format: int64 AccountContact: type: object properties: id: type: string format: uuid contactId: type: string externalId: type: string minLength: 0 maxLength: 36 erpId: type: string minLength: 0 maxLength: 100 crmId: type: string minLength: 0 maxLength: 100 accountId: type: string firstName: type: string minLength: 0 maxLength: 255 lastName: type: string minLength: 0 maxLength: 255 email: type: string minLength: 0 maxLength: 255 emailVerified: type: boolean phoneNumber: type: string minLength: 0 maxLength: 255 title: type: string minLength: 0 maxLength: 255 addressId: type: string address: $ref: '#/components/schemas/AccountAddress' state: type: string enum: - ACTIVE - DISABLED - EXPIRED createdOn: type: integer format: int64 updatedOn: type: integer format: int64 fullName: type: string Entity: type: object required: - functionalCurrency - name - prorationMode - prorationScheme properties: id: type: string format: uuid readOnly: true tenantId: type: string readOnly: true entityId: type: string readOnly: true displayId: type: string readOnly: true name: type: string readOnly: true prorationScheme: type: string readOnly: true enum: - FIXED_DAYS - CALENDAR_DAYS prorationMode: type: string readOnly: true enum: - NORMALIZED - EXACT_DAYS - EXACT invoiceConfigId: type: string readOnly: true invoiceConfig: $ref: '#/components/schemas/NumberConfig' timezone: $ref: '#/components/schemas/TimeZone' functionalCurrency: type: string readOnly: true wireInstruction: type: string readOnly: true companyContact: $ref: '#/components/schemas/AccountContact' accountReceivableContact: $ref: '#/components/schemas/AccountContact' erpId: type: string readOnly: true TimeZone: type: object properties: displayName: type: string id: type: string dstsavings: type: integer format: int32 rawOffset: type: integer format: int32 NextQuestion: type: object required: - state properties: nextQuestion: $ref: '#/components/schemas/Question' state: type: string readOnly: true enum: - IN_PROGRESS - DONE Question: type: object required: - id - questionText - required - schema properties: id: type: string readOnly: true questionText: type: string readOnly: true required: type: boolean readOnly: true multiSelectionAllowed: type: boolean readOnly: true schema: $ref: '#/components/schemas/QuestionSchema' QuestionSchema: type: object required: - type properties: type: type: string readOnly: true enum: - ARRAY - STRING - INTEGER - DATE allowedValues: type: array readOnly: true items: type: string minValue: type: integer format: int32 readOnly: true maxValue: type: integer format: int32 readOnly: true Answer: type: object required: - questionId properties: questionId: type: string readOnly: true answer: type: array readOnly: true items: type: string skipped: type: boolean readOnly: true NextQuestions: type: object required: - state properties: questions: type: array readOnly: true items: $ref: '#/components/schemas/Question' answersToRemove: type: array readOnly: true items: type: string state: type: string readOnly: true enum: - IN_PROGRESS - DONE GuidedSellingUsecase: type: object required: - name properties: id: type: string readOnly: true name: type: string readOnly: true minLength: 0 maxLength: 100 description: type: string readOnly: true questions: type: array readOnly: true items: $ref: '#/components/schemas/QuestionDefinition' QuestionDefinition: type: object required: - id - questionText - required - schema properties: id: type: string readOnly: true questionText: type: string readOnly: true required: type: boolean readOnly: true multiSelectionAllowed: type: boolean readOnly: true schema: $ref: '#/components/schemas/QuestionSchema' dependsAnd: type: array readOnly: true items: $ref: '#/components/schemas/Answer' dependsOr: type: array readOnly: true items: type: array items: $ref: '#/components/schemas/Answer' MessagesAndAnswer: type: object properties: accountId: type: string readOnly: true entityId: type: string readOnly: true messages: type: array readOnly: true items: $ref: '#/components/schemas/Message' answers: type: array readOnly: true items: $ref: '#/components/schemas/Answer' GuidedSellingInput: type: object required: - initialBlurb properties: usecaseId: type: string readOnly: true initialBlurb: type: string readOnly: true messagesSoFar: type: array readOnly: true items: $ref: '#/components/schemas/Message' DataImport: type: object properties: importId: type: string entityIds: type: array uniqueItems: true items: type: string fileName: type: string fileType: type: string enum: - CSV fileSizeBytes: type: integer format: int64 rowCount: type: integer format: int64 importedBy: type: string importedByUserId: type: string importedOn: type: integer format: int64 domain: type: string enum: - CATALOG - ACCOUNT - ORDER - USAGE - BULK_ACCOUNT_UPDATE - BULK_ORDER_UPDATE - BULK_SUBSCRIPTION_UPDATE - BULK_PRODUCT_UPDATE - BULK_PLAN_UPDATE operation: type: string enum: - CREATE - UPDATE status: type: string enum: - VALIDATED - PROCESSING - SUCCESSFUL - FAILED - PARTIALLY_SUCCESSFUL completedOn: type: integer format: int64 FlatfileWorkbookResponse: type: object required: - data properties: data: $ref: '#/components/schemas/FlatfileWorkbookResponseData' FlatfileWorkbookResponseData: type: object required: - environmentId - spaceId properties: spaceId: type: string readOnly: true environmentId: type: string readOnly: true IntelligentSalesRoomFile: type: object properties: id: type: string format: uuid fileName: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 mimeType: type: string fileSize: type: integer format: int64 salesRoomId: type: string fileType: type: string enum: - PDF - MP4 - PPTX - PNG - JPG - GIF - OTHER fileCategory: type: string validFileSize: type: boolean userUploadedPdf: type: boolean originalFileName: type: string IntelligentSalesRoomOverviewResponse: type: object properties: orderId: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 status: type: string enum: - DRAFT - READY_TO_SHARE - ACTIVE - ACCEPTED - EXPIRED - DELETED tenantId: type: string accountId: type: string salesRoomId: type: string format: uuid theme: $ref: '#/components/schemas/IntelligentSalesRoomThemeResponse' tenantName: type: string isFirstAccess: type: boolean shareLink: type: string format: uuid accountName: type: string sharedOn: type: integer format: int64 acceptedOn: type: integer format: int64 expiresOn: type: integer format: int64 canEdit: type: boolean canShare: type: boolean canRetract: type: boolean tenantAddress: $ref: '#/components/schemas/AccountAddressJson' electronicSignatureStatus: type: string enum: - PENDING - SENT - VIEWED - PARTIALLY_SIGNED - COMPLETED - FAILED - VOIDED - DECLINED IntelligentSalesRoomThemeResponse: type: object properties: updatedOn: type: integer format: int64 template: type: string enum: - TEMPLATE_1 - TEMPLATE_2 - TEMPLATE_3 websiteUrl: type: string logoUrl: type: string primaryColor: type: string isLogoAutoExtracted: type: boolean isColorAutoExtracted: type: boolean IntelligentSalesRoomWidget: type: object properties: name: type: string id: type: string format: uuid type: type: string enum: - ORDER_FORM_PDF - CUSTOMER_INFORMATION - ADDITIONAL_INFORMATION - E_SIGNATURE_BUTTON - ACCEPT_PROPOSAL_BUTTON - MEDIA_CONTENT - RICH_TEXT - AI_GENERATED_TEXT - USER_PDF content: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 salesRoomId: type: string isUserGenerated: type: boolean isDeletable: type: boolean sortOrder: type: integer format: int32 IntelligentSalesRoomUpdateWidgetRequest: type: object properties: name: type: string minLength: 0 maxLength: 255 content: type: string minLength: 0 maxLength: 10000 IntelligentSalesRoomReorderWidgetsRequest: type: object required: - orderedWidgetIds properties: orderedWidgetIds: type: array items: type: string IntelligentSalesRoomTheme: type: object properties: createdOn: type: integer format: int64 updatedOn: type: integer format: int64 template: type: string enum: - TEMPLATE_1 - TEMPLATE_2 - TEMPLATE_3 websiteUrl: type: string logoUrl: type: string primaryColor: type: string secondaryColor: type: string salesRoomId: type: string isLogoAutoExtracted: type: boolean isColorAutoExtracted: type: boolean IntelligentSalesRoomUpdateThemeRequest: type: object required: - template properties: template: type: string enum: - TEMPLATE_1 - TEMPLATE_2 - TEMPLATE_3 websiteUrl: type: string logoUrl: type: string primaryColor: type: string secondaryColor: type: string IntelligentSalesRoomAIGeneratedContent: type: object properties: id: type: string format: uuid salesRoomId: type: string widgetId: type: string isEdited: type: boolean generatedOn: type: integer format: int64 lastEditedOn: type: integer format: int64 generatedContent: type: string orderFormContext: type: string IntelligentSalesRoomUpdateAIContentRequest: type: object properties: editedContent: type: string minLength: 0 maxLength: 10000 IntelligentSalesRoomEngagementSummaryResponse: type: object properties: lastActivity: type: integer format: int64 mostActiveUser: type: string totalVisitors: type: integer format: int32 totalSessions: type: integer format: int32 totalTimeSpentSeconds: type: integer format: int64 averageTimeSpent: type: string totalEvents: type: integer format: int32 IntelligentSalesRoomActivityLog: type: object properties: eventType: type: string enum: - PAGE_FOCUS - PAGE_BLUR - SCROLL - CLICK - KEYDOWN - LOAD - UNLOAD - FILE_UPLOAD_VIEW - FILE_DOWNLOAD - LINK_CLICK - YOUTUBE_PLAY - YOUTUBE_PAUSE - YOUTUBE_COMPLETE - GOOGLE_WORKSPACE_VIEW - CONTACT_EDIT - CONTACT_ADD - CUSTOM_FIELD_EDIT - ORDER_PDF_DOWNLOAD - ESIGNATURE_INITIATE - ACCEPT_PROPOSAL metadata: type: object additionalProperties: type: object salesRoomId: type: string userEmail: type: string eventTimestamp: type: integer format: int64 IntelligentSalesRoomShareLinkAccess: type: object properties: userAgent: type: string userName: type: string salesRoomId: type: string userEmail: type: string firstAccess: type: integer format: int64 lastAccess: type: integer format: int64 isActive: type: boolean ipAddress: type: string IntelligentSalesRoomUpdateCustomerInfoRequest: type: object IntelligentSalesRoomTrackEventRequest: type: object required: - eventType properties: eventType: type: string enum: - PAGE_FOCUS - PAGE_BLUR - SCROLL - CLICK - KEYDOWN - LOAD - UNLOAD - FILE_UPLOAD_VIEW - FILE_DOWNLOAD - LINK_CLICK - YOUTUBE_PLAY - YOUTUBE_PAUSE - YOUTUBE_COMPLETE - GOOGLE_WORKSPACE_VIEW - CONTACT_EDIT - CONTACT_ADD - CUSTOM_FIELD_EDIT - ORDER_PDF_DOWNLOAD - ESIGNATURE_INITIATE - ACCEPT_PROPOSAL metadata: type: object additionalProperties: type: object userEmail: type: string minLength: 0 maxLength: 1024 IntelligentSalesRoomCreateWidgetRequest: type: object required: - type properties: name: type: string minLength: 0 maxLength: 255 type: type: string enum: - ORDER_FORM_PDF - CUSTOMER_INFORMATION - ADDITIONAL_INFORMATION - E_SIGNATURE_BUTTON - ACCEPT_PROPOSAL_BUTTON - MEDIA_CONTENT - RICH_TEXT - AI_GENERATED_TEXT - USER_PDF content: type: string minLength: 0 maxLength: 10000 IntelligentSalesRoomExtractThemeRequest: type: object properties: websiteUrl: type: string minLength: 0 maxLength: 1024 IntelligentSalesRoomShareLinkAccessRequest: type: object properties: userName: type: string minLength: 0 maxLength: 1024 userEmail: type: string minLength: 0 maxLength: 1024 IntelligentSalesRoomEngagementSession: type: object properties: durationSeconds: type: integer format: int64 sessionId: type: string userAgent: type: string userName: type: string salesRoomId: type: string userEmail: type: string sessionEnd: type: integer format: int64 lastActivityTime: type: integer format: int64 sessionStart: type: integer format: int64 isActive: type: boolean ipAddress: type: string tabsVisited: type: array items: type: string activityData: type: object additionalProperties: type: object sessionExpired: type: boolean EmailContact: type: object properties: contactId: type: string type: type: string enum: - ACCOUNT_CONTACT - USER_GROUP - USER email: type: string name: type: string entityIds: type: array uniqueItems: true items: type: string BulkInvoiceRun: type: object properties: entityId: type: string name: type: string description: type: string targetDate: type: integer format: int64 invoiceDate: type: integer format: int64 chargeInclusionOption: type: string enum: - INCLUDE_USAGE - EXCLUDE_USAGE - ONLY_USAGE isHistorical: type: boolean id: type: string bulkInvoiceRunId: type: string automatedInvoiceRuleId: type: string status: type: string enum: - QUEUED - CREATED - PROCESSING - FAILED - COMPLETED - RUNNING phase: type: string enum: - INVOICE_GENERATION_NOT_STARTED - NO_INVOICES_FOUND - INVOICES_GENERATING - INVOICES_GENERATED - INVOICES_POSTING - INVOICES_POSTED - INVOICES_EMAILING - INVOICES_EMAILED invoiceSelector: $ref: '#/components/schemas/BulkInvoiceRunSelector' failureReason: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 BulkInvoiceRunExclusions: type: object properties: accounts: type: array readOnly: true items: $ref: '#/components/schemas/AccountJson' accountIds: type: array uniqueItems: true items: type: string BulkInvoiceRunSelector: type: object properties: exclusions: $ref: '#/components/schemas/BulkInvoiceRunExclusions' BulkInvoiceRunItem: type: object properties: id: type: string format: uuid runId: type: string accountId: type: string accountName: type: string subscriptionId: type: string draftInvoiceNumber: type: string postedInvoiceNumber: type: string invoiceCreatedOn: type: integer format: int64 invoiceCurrencyCode: type: string invoiceAmount: type: number failureReason: type: string excludedForPosting: type: boolean excludedForEmailing: type: boolean emailSent: type: boolean createdOn: type: integer format: int64 updatedOn: type: integer format: int64 draftInvoiceNotGenerated: type: boolean invoiceNotPosted: type: boolean draftInvoiceGenerated: type: boolean invoicePosted: type: boolean includedForPosting: type: boolean includedForEmailing: type: boolean InvoiceBalanceJson: type: object properties: accountId: type: string invoiceNumber: type: string balance: type: number updatedOn: type: integer format: int64 EmailNotifiersList: type: object properties: toIds: type: array items: type: string ccIds: type: array items: type: string bccIds: type: array items: type: string InvoiceItemJson: type: object properties: id: type: string planId: type: string chargeId: type: string orderId: type: string orderLineItemId: type: string subscriptionChargeId: type: string subscriptionChargeGroupId: type: string listAmount: type: number discountAmount: type: number amount: type: number taxAmount: type: number taxRate: $ref: '#/components/schemas/TaxRateJson' listUnitPrice: type: number sellUnitPrice: type: number quantity: type: integer format: int64 drawdownQuantityUsed: type: integer format: int64 drawdownQuantityRemaining: type: integer format: int64 periodStartDate: type: integer format: int64 periodEndDate: type: integer format: int64 isBilled: type: boolean functionalListAmount: type: number functionalDiscountAmount: type: number functionalAmount: type: number functionalTaxAmount: type: number triggerOn: type: integer format: int64 InvoiceJson: type: object properties: entityId: type: string invoiceNumber: type: string postedDate: type: integer format: int64 invoiceDate: type: integer format: int64 voidedDate: type: integer format: int64 dueDate: type: integer format: int64 currency: type: string paymentTerm: type: string totalDiscount: type: number subTotal: type: number taxTotal: type: number taxTransactionCode: type: string total: type: number subscriptionId: type: string accountId: type: string resellerAccountId: type: string invoiceItems: type: array items: $ref: '#/components/schemas/InvoiceItemJson' billingContact: $ref: '#/components/schemas/AccountContactJson' shippingContact: $ref: '#/components/schemas/AccountContactJson' status: type: string enum: - DRAFT - POSTED - PAID - CONVERTED - VOIDED purchaseOrderNumber: type: string purchaseOrderRequired: type: boolean note: type: string emailNotifiersList: $ref: '#/components/schemas/EmailNotifiersList' erpId: type: string generationMethod: type: string enum: - USER_INITIATED - API_INITIATED - BULK_INVOICE_RUN - AUTOMATED_INVOICE_JOB - RULE_DRIVEN_INVOICE_JOB - UNKNOWN generatedBy: type: string exchangeRateId: type: string exchangeRate: type: number exchangeRateDate: type: integer format: int64 functionalTotalDiscount: type: number functionalSubTotal: type: number functionalTaxTotal: type: number functionalTotal: type: number customFields: type: object additionalProperties: $ref: '#/components/schemas/CustomFieldValue' TaxRateJson: type: object required: - status properties: id: type: string format: uuid name: type: string description: type: string taxPercentage: type: number taxCode: type: string taxInclusive: type: boolean status: type: string enum: - ACTIVE - DISABLED - EXPIRED inUse: type: boolean InvoiceItemPreviewJson: type: object properties: orderLineItemId: type: string amount: type: number listAmount: type: number discountAmount: type: number listUnitPrice: type: number sellUnitPrice: type: number InvoicePreviewJson: type: object properties: orderId: type: string lineItems: type: array items: $ref: '#/components/schemas/InvoiceItemPreviewJson' invoiceItems: type: array items: $ref: '#/components/schemas/InvoiceItemJson' total: type: number totalDiscount: type: number createdOn: type: integer format: int64 InvoiceJsonPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/InvoiceJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true UpdateInvoiceRequest: type: object required: - invoiceDate properties: invoiceDate: type: integer format: int64 dueDate: type: integer format: int64 note: type: string minLength: 0 maxLength: 1000 purchaseOrderNumber: type: string minLength: 0 maxLength: 255 billingContactId: type: string emailNotifiersList: $ref: '#/components/schemas/EmailNotifiersList' VoidInvoiceRequest: type: object required: - invoiceBalance - voidDate properties: voidDate: type: integer format: int64 invoiceBalance: type: number BillingEventEntry: type: object properties: id: type: string readOnly: true triggerOn: type: integer format: int64 readOnly: true amount: type: number readOnly: true createdOn: type: integer format: int64 readOnly: true InvoiceNumberPrefix: type: object properties: prefix: type: string TenantInvoiceConfig: type: object properties: invoiceConfigId: type: string invoiceNumberPrefix: $ref: '#/components/schemas/InvoiceNumberPrefix' invoiceNumberScheme: type: string enum: - SEQUENCE - PSEUDO_RANDOM invoiceNextNumber: type: integer format: int64 invoiceNumberLength: type: integer format: int32 InvoiceDeletableResponse: type: object properties: deletable: type: boolean readOnly: true message: type: string readOnly: true BillingEventInput: type: object required: - amount properties: subscriptionId: type: string readOnly: true subscriptionChargeId: type: string readOnly: true triggerOn: type: integer format: int64 readOnly: true amount: type: number readOnly: true BulkInvoiceRunInput: type: object properties: entityId: type: string name: type: string description: type: string targetDate: type: integer format: int64 invoiceDate: type: integer format: int64 chargeInclusionOption: type: string enum: - INCLUDE_USAGE - EXCLUDE_USAGE - ONLY_USAGE isHistorical: type: boolean PaymentBankAccountJson: type: object required: - currencyCode - entityIds - status properties: id: type: string readOnly: true entityIds: type: array items: type: string externalId: type: string name: type: string description: type: string currencyCode: type: string cashLedgerAccountId: type: string expenseLedgerAccountId: type: string status: type: string enum: - DRAFT - ACTIVE - DEPRECATED hasExistingPayments: type: boolean createdOn: type: integer format: int64 readOnly: true updatedOn: type: integer format: int64 readOnly: true SettlementApplication: type: object properties: id: type: string format: uuid entityId: type: string customerAccountId: type: string invoiceNumber: type: string paymentId: type: string creditMemoNumber: type: string applicationType: type: string enum: - PAYMENT - VOID_PAYMENT - CREDIT - UNAPPLY_CREDIT amount: type: number note: type: string appliedOn: type: integer format: int64 exchangeRateId: type: string exchangeRate: type: number exchangeRateDate: type: integer format: int64 functionalAmount: type: number createdOn: type: integer format: int64 status: type: string enum: - ATTEMPTING_PAYMENT_COLLECTION - APPLIED_PAYMENT - FAILED negatedSettlementId: type: string format: uuid ApplyPaymentRequest: type: object properties: invoiceNumber: type: string invoiceAmount: type: string paymentMethodId: type: string format: uuid paymentBankAccountId: type: string paymentType: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL amount: type: number bankFee: type: number note: type: string paymentDate: type: integer format: int64 BulkPaymentUploadData: type: object properties: currencyCode: type: string amount: type: number failed: type: boolean bankFee: type: number invoiceNumber: type: string note: type: string paymentMethod: type: string paymentBankAccountId: type: string paymentDate: type: integer format: int64 paymentMethodId: type: string format: uuid failureReason: type: string newInvoiceBalance: type: number originalInvoiceBalance: type: number BulkPaymentUploadResult: type: object properties: paymentsRequestCount: type: integer format: int32 failedPaymentsCount: type: integer format: int32 bulkPaymentUploadData: type: array items: $ref: '#/components/schemas/BulkPaymentUploadData' CreditMemoApplicationJson: type: object required: - amount - creditMemoNumber properties: id: type: string format: uuid invoiceNumber: type: string invoiceAmount: type: string creditMemoNumber: type: string amount: type: number note: type: string CreditMemoUnapplicationJson: type: object required: - creditMemoNumber - settlementToUnapplyId properties: invoiceNumber: type: string invoiceBalanceAmount: type: string creditMemoNumber: type: string creditMemoBalanceAmount: type: string settlementToUnapplyId: type: string format: uuid note: type: string AccountingEvent: type: object properties: id: type: string entityId: type: string accountingDate: type: integer format: int64 accountId: type: string subscriptionId: type: string sourceTransactionType: type: string enum: - INVOICE_POSTED - PAYMENT_PROCESSED - CREDIT_MEMO_POSTED - REVENUE_RECOGNIZED - PAYMENT_VOIDED - INVOICE_VOIDED - REALIZED_GAIN_LOSS_POSTED - REFUND sourceTransactionId: type: string sourceEventId: type: string sourceEventTimestamp: type: integer format: int64 sourceEventPayload: $ref: '#/components/schemas/ByteBuffer' sourceEventMetadata: type: object additionalProperties: type: string sourceEventSequenceNumber: type: integer format: int64 AccountingEventPaginatedResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/AccountingEvent' count: type: integer format: int32 pageToken: type: string totalCount: type: integer format: int32 ByteBuffer: type: object properties: short: type: integer format: int32 char: type: string int: type: integer format: int32 long: type: integer format: int64 float: type: number format: float double: type: number format: double direct: type: boolean readOnly: type: boolean LedgerAccount: type: object properties: entityIds: type: array uniqueItems: true items: type: string name: type: string accountCode: type: string description: type: string minLength: 0 maxLength: 65535 accountType: type: string enum: - ACCOUNTS_RECEIVABLE - TAX_LIABILITY - CASH - DEFERRED_REVENUE - RECOGNIZED_REVENUE - CONTRACT_ASSET - REALIZED_GAIN_LOSS - EXPENSE - REFUND isDefault: type: boolean inUse: type: boolean default: type: boolean id: type: string ExternalArrScheduleJson: type: object required: - amount - endDate - quantity - startDate properties: id: type: string externalId: type: string startDate: type: integer format: int64 endDate: type: integer format: int64 category: type: string enum: - OPENING_BALANCE - NEW - ADD_ON - RENEWAL_ADD_ON - UPSELL - MARKUP - RENEWAL_UPSELL - RENEWAL_MARKUP - DOWNSELL - MARKDOWN - RENEWAL_DOWNSELL - RENEWAL_MARKDOWN - TERMINATION - EXPIRATION - PENDING_RENEWAL - REACTIVATION - DEBOOK amount: type: number quantity: type: integer format: int64 previousScheduleId: type: string metadata: type: string submittedBy: type: string NotificationTargetAndSubscriptions: type: object properties: name: type: string description: type: string notificationId: type: string notificationTargetType: type: string enum: - SLACK - WEBHOOK - EMAIL notificationTarget: type: string subscribedEvents: type: array items: type: string enum: - INVOICE_POSTED - INVOICE_VOIDED - INVOICE_GENERATION_FAILED - SUBSCRIPTION_CREATED - SUBSCRIPTION_ACTIVATING - SUBSCRIPTION_ACTIVATED - SUBSCRIPTION_CHARGE_CHANGE - SUBSCRIPTION_CANCELLING - SUBSCRIPTION_CANCELLED - SUBSCRIPTION_EXPIRING - SUBSCRIPTION_EXPIRED - SUBSCRIPTION_DELETED - ORDER_SUBMITTED - ORDER_EXECUTED - ORDER_APPROVED - ESIGNATURE_COMPLETED - ESIGNATURE_PARTIALLY_SIGNED - PAYMENT_PROCESSED - PAYMENT_ATTEMPT_FAILED - PAYMENT_RETRIES_EXHAUSTED - ACCOUNT_PAYMENT_METHOD_SUSPENDED - HUBSPOT_SYNC_FAILED - SALESFORCE_SYNC_FAILED - SALESFORCE_INVALID_CREDENTIALS - CONTACT_CREATED - CONTACT_UPDATED - CONTACT_DELETED - CHARGE_CREATED - CHARGE_UPDATED - CHARGE_DELETED - PRODUCT_CREATED - PRODUCT_UPDATED - PRODUCT_DELETED - PLAN_CREATED - PLAN_UPDATED - PLAN_DELETED - PLAN_STATUS_CHANGED - USER_CREATED - USER_DISABLED - USER_REACTIVATED - REFUND_GENERATED - ACCOUNTING_PERIOD_CLOSED - ACCOUNTING_PERIOD_REOPENED - DUNNING_EMAIL_SENT - ACCOUNT_CREATED - ACCOUNT_UPDATED - ACCOUNT_DELETED - INVOICE_RUN_FAILED - INVOICE_RUN_SUCCEEDED OpportunityPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/OpportunityJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true OpportunityRestJson: 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 ApprovalSubmissionJson: type: object required: - attemptNumber - status - submittedAt properties: attemptNumber: type: integer format: int32 example: 1 description: Submission attempt number/version readOnly: true submittedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when submitted readOnly: true submittedBy: type: string example: kaitlyn.underwood@company.com description: Email of user who submitted readOnly: true submitterNote: type: string example: End of quarter deal description: Submission note text readOnly: true status: type: string example: FULLY_APPROVED description: Status of this submission readOnly: true enum: - INACTIVE - AWAITING_APPROVAL - ADMIN_BYPASS - NOT_APPLICABLE - REJECTED - APPROVED - CANCELLED - NEEDS_APPROVAL - FULLY_APPROVED - PENDING - AUTO_APPROVED - ERROR_ORDER_OWNER_IS_MISSING_TO_FIND_APPROVAL_SEGMENT - ERROR_ORDER_OWNER_NOT_PART_OF_ANY_APPROVAL_SEGMENT - ERROR_ORDER_OWNER_PART_OF_MULTIPLE_APPROVAL_SEGMENTS - ERROR_ORDER_OWNER_NOT_PART_OF_APPROVAL_SEGMENT_SELECTED_ON_ORDER fullyApprovedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when fully approved, null if not approved readOnly: true rejectedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when rejected, null if not rejected readOnly: true totalApprovalTime: type: integer format: int64 example: 5400 description: Total approval time in seconds (null if not completed) readOnly: true workflows: type: array description: List of workflows triggered for this submission readOnly: true items: $ref: '#/components/schemas/WorkflowJson' description: Single approval submission attempt (approval domain only) ApprovalSummaryJson: type: object required: - totalAttempts properties: totalAttempts: type: integer format: int32 example: 2 description: Total number of submission attempts readOnly: true firstSubmittedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) of first submission readOnly: true lastUpdatedAt: type: integer format: int64 example: 1762514400 description: Timestamp (in epoch seconds) of final update readOnly: true totalTimeSeconds: type: integer format: int64 example: 23400 description: Total time from first submission to last update in seconds readOnly: true totalWorkflows: type: integer format: int32 example: 2 description: Total number of unique workflows triggered across all attempts readOnly: true description: Summary statistics across all approval attempts ApproverJson: type: object required: - level - status properties: level: type: integer format: int32 example: 1 description: Approval level/sequence readOnly: true approver: type: string example: sumit.subskribe@company.com description: Approver user ID or email readOnly: true status: type: string example: APPROVED description: Approval status readOnly: true enum: - INACTIVE - AWAITING_APPROVAL - ADMIN_BYPASS - NOT_APPLICABLE - REJECTED - APPROVED - CANCELLED - NEEDS_APPROVAL - FULLY_APPROVED - PENDING - AUTO_APPROVED - ERROR_ORDER_OWNER_IS_MISSING_TO_FIND_APPROVAL_SEGMENT - ERROR_ORDER_OWNER_NOT_PART_OF_ANY_APPROVAL_SEGMENT - ERROR_ORDER_OWNER_PART_OF_MULTIPLE_APPROVAL_SEGMENTS - ERROR_ORDER_OWNER_NOT_PART_OF_APPROVAL_SEGMENT_SELECTED_ON_ORDER assignedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when task was assigned readOnly: true respondedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when approver responded, null if pending readOnly: true duration: type: integer format: int64 example: 2700 description: Duration from assignment to response in seconds, null if not responded readOnly: true originalApprovalAt: type: integer format: int64 example: 1762509000 description: Original approval timestamp (in epoch seconds) for smart approvals readOnly: true approverNote: type: string description: Comment/note from approver readOnly: true description: Individual approver with timeline data (approval domain only) OrderApprovalHistoryResponse: type: object required: - currentAttempt - orderId - orderStatus properties: orderId: type: string example: ORD-9FB8TW8 description: Order ID reference readOnly: true orderStatus: type: string example: APPROVED description: Status of the order readOnly: true enum: - DRAFT - SUBMITTED - APPROVED - EXECUTED - EXPIRED currentAttempt: type: integer format: int32 example: 2 description: Current approval attempt number readOnly: true currentSubmission: $ref: '#/components/schemas/ApprovalSubmissionJson' approvalHistory: type: array description: Historical approval submissions (previous attempts, if any) readOnly: true items: $ref: '#/components/schemas/ApprovalSubmissionJson' summary: $ref: '#/components/schemas/ApprovalSummaryJson' description: Complete approval history for an order (approval domain only) WorkflowJson: type: object required: - status - triggeredAt - workflowId - workflowName properties: workflowId: type: string example: APRV-D4P10 description: Approval flow ID readOnly: true workflowName: type: string example: Discount > 10% and <= 25% description: Human-readable workflow name readOnly: true smartApprovalEnabled: type: boolean example: true description: Whether smart approval is enabled readOnly: true status: type: string example: APPROVED description: Current workflow status readOnly: true triggeredAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when workflow was triggered readOnly: true completedAt: type: integer format: int64 example: 1762509000 description: Timestamp (in epoch seconds) when workflow completed, null if in progress readOnly: true totalDuration: type: integer format: int64 example: 5400 description: Total workflow duration in seconds, null if not completed readOnly: true approvers: type: array description: List of approvers for this workflow readOnly: true items: $ref: '#/components/schemas/ApproverJson' description: Approval workflow with approver details (approval domain only) OrderJsonPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/OrderJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true CustomBillingPeriodInput: type: object required: - recurrenceWithCount properties: amount: type: number readOnly: true recurrenceWithCount: $ref: '#/components/schemas/CustomBillingRecurrence' triggerInstant: type: integer format: int64 readOnly: true triggerDate: type: string readOnly: true CustomBillingRecurrence: type: object properties: recurrence: $ref: '#/components/schemas/RecurrenceJson' count: type: integer format: int32 readOnly: true CustomBillingScheduleInput: type: object required: - version properties: version: type: string readOnly: true enum: - V1 orderId: type: string readOnly: true orderLines: type: array readOnly: true items: type: string schedules: type: array readOnly: true items: $ref: '#/components/schemas/CustomBillingPeriodInput' DocumentCustomContent: type: object properties: id: type: string format: uuid orderId: type: string title: type: string content: type: string OpportunityInput: type: object properties: name: type: string id: type: string type: type: string stage: type: string crmId: type: string accountId: type: string opportunityCrmType: type: string enum: - SALESFORCE - HUBSPOT isClosed: type: boolean primaryOrderId: type: string opportunityId: type: string customFields: type: array items: $ref: '#/components/schemas/CustomFieldEntry' OrderLineItemRequestJson: 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 chargeId: type: string quantity: type: integer format: int64 isRamp: type: boolean discounts: type: array items: $ref: '#/components/schemas/DiscountJson' predefinedDiscounts: type: array items: type: string effectiveDate: type: integer format: int64 endDate: type: integer format: int64 listUnitPrice: type: number listPriceOverrideRatio: type: number pricingOverride: $ref: '#/components/schemas/PricingOverrideJson' attributeReferences: type: array items: $ref: '#/components/schemas/AttributeReference' customFields: type: array items: $ref: '#/components/schemas/CustomFieldEntry' arrOverride: type: number replacedPlanId: type: string amount: type: number dryRunItem: type: boolean OrderRequestJson: type: object required: - orderType - startDate properties: id: type: string example: ORD-AXBY123 description: System-generated unique identifier for the 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. 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 - RENEWAL - RESTRUCTURE 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 you want to amend, restructure, or cancel. To renew a subscription, use the `renewalForSubscriptionId` field to specify the ID of the subscription you want to renew. This field is not required while creating a new subscription.' 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) you want to add to this order. items: $ref: '#/components/schemas/OrderLineItemRequestJson' 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." executedOn: type: integer format: int64 example: 1672617600 description: Date when the order was executed in Unix timestamp format. Don't include this field if you're creating an order with `orderType` = `NEW`. This field is required only when you're creating an order to amend, renew, restructure, or cancel an existing subscription. 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). rampInterval: type: array example: '[1672531200, 1680307200, 1688083200]' description: Array of timestamps (in Unix timestamp format) defining intervals for ramped pricing schedules. 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 document template IDs to use for generating order forms. Specified as UUIDs. items: type: string sfdcOpportunityId: type: string isPrimaryOrderForSfdcOpportunity: type: boolean sfdcOpportunityName: type: string sfdcOpportunityType: type: string sfdcOpportunityStage: type: string opportunityCrmType: type: string example: SALESFORCE description: Type of CRM where the opportunity is managed. enum: - SALESFORCE - HUBSPOT ownerId: type: string example: USR-12345AB description: ID of the user who owns this order. renewalForSubscriptionId: type: string example: SUB-A1B3C4D description: ID of the subscription being renewed. Required only when `orderType` is `RENEWAL`. documentMasterTemplateId: type: string example: f47ac10b-58cc-4372-a567-0e02b2c3d479 description: UUID of the master document template to use for generating order documents. documentCustomContent: $ref: '#/components/schemas/DocumentCustomContent' 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 restructureForSubscriptionId: type: string 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). entityId: type: string example: ENT-98765AB description: ID of the entity (e.g., business or subsidiary) associated with this order. 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. **NOTE:** If you include the `rampInterval` object dates for a ramped pricing schedule, `startDateType` must be set to `FIXED`. 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 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. customBillingSchedule: $ref: '#/components/schemas/CustomBillingScheduleInput' customPredefinedTemplatesOnOrder: type: array description: List of custom predefined templates to include on the order. items: $ref: '#/components/schemas/CustomPredefinedTemplateOnOrder' subscriptionDurationModel: type: string example: TERMED description: 'Determines the subscription term. Supported values: * `TERMED`: Subscription has a fixed term length. * `EVERGREEN`: Subscription continues indefinitely until cancelled.' enum: - TERMED - EVERGREEN opportunityInput: $ref: '#/components/schemas/OpportunityInput' description: JSON object containing information required to create an order. OrderAttributesUpdateRequest: type: object properties: name: type: string shippingContactId: type: string billingContactId: type: string purchaseOrderNumber: type: string crmOpportunityId: type: string crmOpportunityName: type: string crmOpportunityStage: type: string crmOpportunityType: type: string BillingPeriod: type: object properties: period: $ref: '#/components/schemas/Period' fullPeriod: $ref: '#/components/schemas/Period' recurrence: $ref: '#/components/schemas/Recurrence' start: type: integer format: int64 end: type: integer format: int64 fullPeriodDuration: $ref: '#/components/schemas/Duration' fullPeriodStart: type: integer format: int64 fullPeriodEnd: type: integer format: int64 CustomBillingPeriodOutput: type: object properties: amount: type: number triggerInstant: type: integer format: int64 recurrenceWithCount: $ref: '#/components/schemas/CustomBillingRecurrence' periods: type: array items: $ref: '#/components/schemas/BillingPeriod' CustomBillingScheduleOutput: type: object properties: id: type: string version: type: string enum: - V1 orderId: type: string orderLines: type: array items: type: string schedules: type: array items: $ref: '#/components/schemas/CustomBillingPeriodOutput' isAdhocBilling: type: boolean createdOn: type: integer format: int64 updatedOn: type: integer format: int64 Duration: type: object properties: seconds: type: integer format: int64 zero: type: boolean nano: type: integer format: int32 negative: type: boolean units: type: array items: $ref: '#/components/schemas/TemporalUnit' Period: type: object properties: start: type: integer format: int64 end: type: integer format: int64 valid: type: boolean Recurrence: type: object properties: cycle: type: string readOnly: true enum: - DAY - MONTH - QUARTER - SEMI_ANNUAL - YEAR - PAID_IN_FULL - CUSTOM step: type: integer format: int32 readOnly: true display: type: string TemporalUnit: type: object properties: durationEstimated: type: boolean duration: $ref: '#/components/schemas/Duration' timeBased: type: boolean dateBased: type: boolean PaymentRetryResult: type: object properties: retryAction: type: string enum: - RETRIED - SKIPPED - RETRIED_AFTER_MANUAL_ATTEMPT detail: type: string manualPaymentAttemptId: type: string IntervalBasedPaymentRetryPolicy: allOf: - $ref: '#/components/schemas/PaymentRetryPolicy' - type: object properties: schedule: type: array items: $ref: '#/components/schemas/ScheduleEntry' PaymentRetryConfigOutput: type: object required: - groupingId - policy properties: groupingId: type: string readOnly: true policy: $ref: '#/components/schemas/PaymentRetryPolicy' PaymentRetryPolicy: type: object required: - type discriminator: propertyName: type properties: version: type: integer format: int32 totalAttempts: type: integer format: int32 type: type: string enum: - INTERVAL_BASED ScheduleEntry: type: object properties: attemptName: type: string afterMinutes: type: integer format: int32 PaymentRetryConfigInput: type: object required: - policy properties: groupingId: type: string readOnly: true policy: $ref: '#/components/schemas/PaymentRetryPolicy' PaymentJson: type: object required: - accountId - paymentMethodId properties: id: type: string format: uuid readOnly: true paymentId: type: string accountId: type: string paymentMethodId: type: string format: uuid currencyCode: type: string state: type: string enum: - CREATED - CONFIRMED - CAPTURED - PROCESSING - CARD_DECLINED - ACH_TRANSFER_FAILED - RECONCILED - INITIATED - FAILED - SUCCEED - VOIDED status: type: string readOnly: true amount: type: number paymentDate: type: integer format: int64 exchangeRateId: type: string exchangeRate: type: number exchangeRateDate: type: integer format: int64 functionalAmount: type: number functionalAmountCaptured: type: number functionalBankFee: type: number PaymentConfiguration: type: object properties: supportedPaymentTypes: type: array uniqueItems: true items: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL PaymentJsonPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/PaymentJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true PaymentDeletableResponse: type: object properties: deletable: type: boolean readOnly: true message: type: string readOnly: true PaymentBalanceJson: type: object properties: accountId: type: string paymentId: type: string balance: type: number updatedOn: type: integer format: int64 VoidPaymentJson: type: object required: - invoiceBalance - invoiceNumber - voidDate properties: paymentId: type: string voidDate: type: integer format: int64 invoiceBalance: type: number invoiceNumber: type: string note: type: string PlanJson: type: object required: - charges - name - productId - status properties: id: type: string description: System-generated unique identifier for the plan readOnly: true entityIds: type: array description: Array of entity IDs associated with this plan uniqueItems: true items: type: string name: type: string description: Unique name of the plan displayName: type: string description: Display name of the plan shown to customers description: type: string description: Detailed description of the plan status: type: string description: 'Status of the plan: `DRAFT`, `ACTIVE`, `GRANDFATHERED`, `ARCHIVED`, or `DEPRECATED`. Set the status to `DRAFT` when creating a new plan.' enum: - DRAFT - ACTIVE - GRANDFATHERED - ARCHIVED - DEPRECATED productId: type: string description: ID of the product this plan is associated with charges: type: array description: Array of charges associated with this plan items: $ref: '#/components/schemas/ChargeJson' currency: type: string description: Currency code for this plan (defaults to system default if not specified) externalId: type: string description: External identifier for the plan, used for integration with other systems templateIds: type: array description: List of template IDs associated with this plan items: type: string replacementPlanIds: type: array description: IDs of plans that can replace this plan during upgrades/downgrades items: type: string customFields: type: object description: Map of custom fields associated with this plan additionalProperties: $ref: '#/components/schemas/CustomFieldValue' updatedOn: type: integer format: int64 description: Timestamp of when the plan was last updated (in seconds since epoch) eventObjectId: type: string description: A plan is a collection of charges that dictates how a product is priced. PlanMetadataJson: type: object properties: entityIds: type: array description: Entity ids to be updated readOnly: true uniqueItems: true items: type: string ChargePartialJson: type: object required: - name properties: id: type: string description: System-generated unique identifier for the charge readOnly: true name: type: string description: Name of the charge displayName: type: string description: Display name of the charge shown to customers description: type: string description: Detailed description of the charge taxRateId: type: string format: uuid description: 'ID of the tax rate applied to this charge. To get a list of available tax rate IDs, call the [Get tax rates](/reference/gettaxrates) operation. DEPRECATED: Use taxRateStrategyId instead. (deprecated: use taxRateStrategyId)' taxRateStrategyId: type: string description: ID of the tax rate strategy applied to this charge. This determines how taxes are calculated when multiple tax rates apply. unitOfMeasureId: type: string format: uuid description: ID of the unit of measure for this charge (e.g., GB, users, licenses). To get a list of available unit of measure IDs, call the [Get units of measure](/reference/getunitsofmeasure) operation. isRenewable: type: boolean description: Indicates if the charge is renewable isCreditable: type: boolean description: Indicates if the charge can be credited isListPriceEditable: type: boolean description: Indicates if the list price can be edited minQuantity: type: integer format: int64 description: Minimum quantity that must be ordered. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. defaultQuantity: type: integer format: int64 description: Default quantity for this charge. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. maxQuantity: type: integer format: int64 description: Maximum quantity that can be ordered. Applicable only if the chargeModel is PER_UNIT or RATE_CARD_LOOKUP. externalId: type: string description: External identifier for the charge, used for integration with other systems minAmount: type: number description: '**NOTE: This parameter is currently in beta** Minimum monetary amount for this charge. Applies only when `type` is `PERCENTAGE_OF`.' maxAmount: type: number description: '**NOTE: This parameter is currently in beta** Maximum monetary amount for this charge. Applies only when `type` is `PERCENTAGE_OF`.' recognitionRuleId: type: string description: ID of the revenue recognition rule associated with this charge erpId: type: string description: ERP system identifier for this charge itemCode: type: string description: Item code used for this charge in external systems targetPlanIds: type: array description: List of plan IDs that this PERCENTAGE_OF charge applies to items: type: string creditable: type: boolean description: JSON object representing the charge details. PlanJsonPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/PlanJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true DocumentSection: type: object required: - location properties: id: type: string format: uuid entityIds: type: array uniqueItems: true items: type: string name: type: string minLength: 0 maxLength: 1024 title: type: string minLength: 0 maxLength: 1024 location: type: string enum: - BEFORE_SIGNATURE - AFTER_SIGNATURE deleted: type: boolean ProductCategory: type: object properties: productCategoryId: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string minLength: 0 maxLength: 100 description: type: string inUse: type: boolean updatedOn: type: integer format: int64 pkId: type: string format: uuid ProductCategoryPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/ProductCategory' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true ProductJson: type: object required: - name - sku properties: id: type: string description: System-generated unique identifier for the product entityIds: type: array description: Set of entity IDs associated with this product uniqueItems: true items: type: string name: type: string description: Unique name of the product displayName: type: string description: Display name of the product shown to customers inUse: type: boolean description: Indicates if the product is currently in use by any plans description: type: string description: Detailed description of the product sku: type: string description: Stock Keeping Unit (SKU) for the product productCategoryId: type: string description: ID of the category this product belongs to productCategory: $ref: '#/components/schemas/ProductCategory' updatedOn: type: integer format: int64 description: Timestamp of when the product was last updated (in seconds since epoch) externalId: type: string description: External identifier for the product, used for integration with other systems eventObjectId: type: string ProductJsonPaginationResponse: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/ProductJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true ProductInputJson: type: object required: - name - sku properties: id: type: string description: System-generated unique identifier for the product readOnly: true entityIds: type: array description: Set of entity IDs associated with this product uniqueItems: true items: type: string name: type: string description: Unique name of the product displayName: type: string description: Name of the product as shown to customers description: type: string description: Detailed description of the product sku: type: string description: Stock Keeping Unit (SKU) for the product productCategoryId: type: string description: ID of the category this product belongs to externalId: type: string description: External identifier for the product, used for integration with other systems RefundDetail: type: object required: - creditMemoNumber - currency - id - paymentId - refundDate - refundId properties: id: type: string refundId: type: string referenceId: type: string creditMemoNumber: type: string amount: type: number refundDate: type: integer format: int64 paymentId: type: string paymentMethodType: type: string createdBy: type: string notes: type: string currency: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 eventObjectId: type: string Refund: type: object properties: id: type: string refundId: type: string referenceId: type: string tenantId: type: string entityId: type: string creditMemoNumber: type: string amount: type: number refundDate: type: integer format: int64 paymentId: type: string paymentMethodType: type: string currencyCode: type: string notes: type: string createdBy: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 RefundRequestJson: type: object required: - amount - createdBy - creditMemoNumber - paymentId - refundDate properties: creditMemoNumber: type: string paymentId: type: string amount: type: number refundDate: type: integer format: int64 paymentMethodType: type: string createdBy: type: string notes: type: string referenceId: type: string PredefinedReportJson: type: object properties: reportId: type: string params: type: object additionalProperties: type: object duration: $ref: '#/components/schemas/ReportDuration' reportDate: type: integer format: int64 ReportDuration: type: object properties: start: type: integer format: int64 end: type: integer format: int64 ReportJobResponse: type: object properties: reportId: type: string reportRunId: type: string status: type: string enum: - OK - FAILED uri: type: string PredefinedReportDefChartJson: type: object properties: chartType: type: string mainAxisKey: type: string crossAxisKey: type: string mainAxisLabel: type: string crossAxisLabel: type: string mainAxisScale: type: string crossAxisScale: type: string title: type: string sortBy: type: string showLegend: type: boolean PredefinedReportDefJson: type: object properties: reportId: type: string name: type: string description: type: string filters: type: array items: $ref: '#/components/schemas/PredefinedReportParamObject' chart: $ref: '#/components/schemas/PredefinedReportDefChartJson' PredefinedReportDefsJson: type: object properties: reportDefs: type: array items: $ref: '#/components/schemas/PredefinedReportDefJson' PredefinedReportParam: type: object required: - datatype - type properties: name: type: string description: type: string type: type: string enum: - value - range - selection datatype: type: string enum: - date - string - integer allowedValues: type: array items: type: string defaultValue: type: object optional: type: boolean PredefinedReportParamObject: type: object required: - datatype - type properties: name: type: string description: type: string type: type: string enum: - value - range - selection datatype: type: string enum: - date - string - integer allowedValues: type: array items: type: string defaultValue: type: object optional: type: boolean RevenueEnablementProgress: type: object properties: entityId: type: string cpqEnabled: type: boolean billingEnabled: type: boolean accountingPeriodDefined: type: boolean revenueAndAccountingEnabled: type: boolean revenueRulesAndGlCodeAssigned: type: boolean goLiveDate: type: integer format: int64 historicalInvoicesGenerated: type: boolean historicalInvoicesRunId: type: string historicalInvoicesReviewedAndClosed: type: boolean revenueScheduleReviewed: type: boolean revenueScheduleGenerationJobId: type: string glBalancesReviewed: type: boolean glBalancesReprocessEventsJobId: type: string glBalancesBulkRevenueRecognitionId: type: string isCompleted: type: boolean RecognitionEventCompletion: type: object required: - unitOfCompletion properties: tenantId: type: string entityId: type: string subscriptionId: type: string chargeId: type: string aliasId: type: string accountingPeriodId: type: string unitOfCompletion: type: number status: type: string enum: - ACCEPTED - PROCESSED arrivedOn: type: integer format: int64 createdOn: type: integer format: int64 updatedOn: type: integer format: int64 deleted: type: boolean RecognitionRule: type: object properties: entityIds: type: array uniqueItems: true items: type: string name: type: string source: type: string enum: - ORDER - INVOICE recognitionType: type: string enum: - OVER_TIME - POINT_IN_TIME - EVENT distributionMethod: type: string enum: - DAYS - MONTHS_EVEN - MONTHS_PARTIAL_PRORATED recognitionDateAlignment: type: string enum: - INVOICE_START_DATE - INVOICE_END_DATE isCatchupRequired: type: boolean recognitionEventType: type: string enum: - PERCENTAGE_OF_COMPLETION - AMOUNT deferredRevenueAccountId: type: string recognizedRevenueAccountId: type: string inUse: type: boolean catchupRequired: type: boolean id: type: string BulkRevenueRecognitionInput: type: object properties: entityId: type: string name: type: string description: type: string targetDate: type: integer format: int64 BulkRevenueRecognition: type: object properties: entityId: type: string name: type: string description: type: string targetDate: type: integer format: int64 id: type: string bulkRevenueRecognitionId: type: string status: type: string enum: - QUEUED - CREATED - PROCESSING - FAILED - COMPLETED phase: type: string enum: - REVENUE_RECOGNITION_NOT_STARTED - NO_ACCOUNTING_PERIODS_FOUND - REVENUE_RECOGNIZING - REVENUE_RECOGNIZED - ACCOUNTING_PERIOD_CLOSING - JOURNAL_ENTRIES_CREATING - JOURNAL_ENTRIES_CREATED - ACCOUNTING_PERIOD_CLOSED failureReason: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 BulkRevenueRecognitionItem: type: object properties: id: type: string format: uuid bulkRevenueRecognitionId: type: string accountingPeriodId: type: string isRecognized: type: boolean journalEntriesGenerated: type: boolean isClosed: type: boolean failureReason: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 SalesforceClientIntegrationRequestJson: type: object properties: clientId: type: string clientSecret: type: string redirectUri: type: string baseLoginUrl: type: string SalesforceAccount: type: object properties: id: type: string name: type: string description: type: string billingAddress: $ref: '#/components/schemas/SalesforceAccountBillingAddress' phone: type: string CurrencyIsoCode: type: string SalesforceAccountBillingAddress: type: object properties: street: type: string city: type: string state: type: string postalCode: type: string country: type: string CustomField: type: object properties: entries: type: object readOnly: true additionalProperties: $ref: '#/components/schemas/CustomFieldValue' empty: type: boolean 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' SubscriptionUpdateJson: type: object properties: shippingContactId: type: string billingContactId: type: string purchaseOrderNumber: type: string purchaseOrderRequiredForInvoicing: type: boolean externalId: type: string autoRenew: type: boolean emailNotifiersList: $ref: '#/components/schemas/EmailNotifiersList' activationDate: type: integer format: int64 name: type: string minLength: 0 maxLength: 255 SubscriptionChargeChangeSchedule: type: object properties: id: type: string format: uuid changesOn: type: integer format: int64 createdOn: type: integer format: int64 updatedOn: type: integer format: int64 subscriptionId: type: string isDeleted: type: boolean subscriptionVersion: type: integer format: int32 chargeIdsStarting: type: string chargeIdsEnding: type: string isProcessed: type: boolean SubscriptionSchedules: type: object properties: chargeChangeSchedules: type: array items: $ref: '#/components/schemas/SubscriptionChargeChangeSchedule' statusChangeSchedules: type: array items: $ref: '#/components/schemas/SubscriptionStatusChangeSchedule' SubscriptionStatusChangeSchedule: type: object properties: id: type: string format: uuid changesOn: type: integer format: int64 createdOn: type: integer format: int64 updatedOn: type: integer format: int64 subscriptionId: type: string isDeleted: type: boolean subscriptionVersion: type: integer format: int32 changeEventType: type: string enum: - INVOICE_POSTED - INVOICE_POSTED_V2 - INVOICE_GENERATION_FAILED - PAYMENT_PROCESSED - PAYMENT_ATTEMPT_FAILED - PAYMENT_RETRIES_EXHAUSTED - ACCOUNT_PAYMENT_METHOD_SUSPENDED - CREDIT_MEMO_POSTED - REVENUE_RECOGNIZED - PAYMENT_VOIDED - INVOICE_VOIDED - INVOICE_VOIDED_V2 - CREDIT_MEMO_VOIDED - REALIZED_GAIN_LOSS_POSTED - ORDER_SUBMITTED - ORDER_EXECUTED - ORDER_APPROVED - ORDER_REVERTED_TO_DRAFT - ORDER_APPROVAL_FLOWS_EVALUATED - SUBSCRIPTION_CREATED - SUBSCRIPTION_UPDATED - SUBSCRIPTION_ACTIVATING - SUBSCRIPTION_ACTIVATED - SUBSCRIPTION_CANCELLING - SUBSCRIPTION_CANCELLED - SUBSCRIPTION_EXPIRING - SUBSCRIPTION_EXPIRED - SUBSCRIPTION_CHARGE_CHANGE - SUBSCRIPTION_DELETED - ESIGNATURE_COMPLETED - ESIGNATURE_VOIDED - ESIGNATURE_PARTIALLY_SIGNED - TASK_SCHEDULED - TASK_COMPLETED - TASK_EXECUTING - HUBSPOT_SYNC_FAILED - SALESFORCE_SYNC_FAILED - SALESFORCE_INVALID_CREDENTIALS - CONTACT_CREATED - CONTACT_UPDATED - CONTACT_DELETED - CHARGE_CREATED - CHARGE_UPDATED - CHARGE_DELETED - PRODUCT_CREATED - PRODUCT_UPDATED - PRODUCT_DELETED - PLAN_CREATED - PLAN_UPDATED - PLAN_DELETED - PLAN_STATUS_CHANGED - USER_CREATED - USER_DISABLED - USER_REACTIVATED - REFUND_GENERATED - ACCOUNTING_PERIOD_REOPENED - ACCOUNTING_PERIOD_CLOSED - INVOICE_PAID - DUNNING_EMAIL_SENT - ACCOUNT_CREATED - ACCOUNT_UPDATED - ACCOUNT_DELETED - INVOICE_RUN_SUCCEEDED - INVOICE_RUN_FAILED - ACCOUNT_CUSTOM_FIELDS_UPDATED - ORDER_CUSTOM_FIELDS_UPDATED - SUBSCRIPTION_CUSTOM_FIELDS_UPDATED - PLAN_CUSTOM_FIELDS_UPDATED - CHARGE_CUSTOM_FIELDS_UPDATED - INVOICE_CUSTOM_FIELDS_UPDATED - SALES_ROOM_CUSTOM_FIELDS_UPDATED - OPPORTUNITY_CUSTOM_FIELDS_UPDATED isProcessed: type: boolean PaginatedSubscriptionsResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/SubscriptionJson' numElements: type: integer format: int32 nextCursor: type: string format: uuid PurchaseOrder: type: object properties: purchaseOrderNumber: type: string minLength: 0 maxLength: 255 originOrderId: type: string addedOn: type: integer format: int64 SubscriptionChargeJson: type: object required: - accountId - chargeId - endDate - isRamp - orderLines - quantity - startDate properties: id: type: string groupId: type: string accountId: type: string chargeId: type: string quantity: type: integer format: int64 isRamp: type: boolean currencyConversionRateId: type: string discounts: type: array items: $ref: '#/components/schemas/DiscountJson' predefinedDiscounts: type: array items: $ref: '#/components/schemas/TenantDiscountLineItemJson' attributeReferences: type: array items: $ref: '#/components/schemas/AttributeReference' pricingOverride: $ref: '#/components/schemas/PricingOverrideJson' listUnitPrice: type: number sellUnitPrice: type: number discountAmount: type: number startDate: type: integer format: int64 endDate: type: integer format: int64 orderLines: type: array items: type: string customFields: type: object additionalProperties: $ref: '#/components/schemas/CustomFieldValue' SubscriptionJson: type: object required: - accountId - billingCycle - charges - creationTime - endDate - entityId - orders - startDate - state - termLength - version properties: id: type: string version: type: integer format: int32 entityId: type: string externalId: type: string accountId: type: string shippingContactId: type: string billingContactId: type: string state: type: string enum: - ACTIVE - EXPIRED - CANCELLED - PENDING - PENDING_CANCELLATION startDate: type: integer format: int64 endDate: type: integer format: int64 canceledDate: type: integer format: int64 termLength: $ref: '#/components/schemas/RecurrenceJson' billingCycle: $ref: '#/components/schemas/RecurrenceJson' paymentTerm: type: string billingTerm: type: string enum: - UP_FRONT - IN_ARREARS charges: type: array items: $ref: '#/components/schemas/SubscriptionChargeJson' predefinedDiscounts: type: array items: $ref: '#/components/schemas/TenantDiscountJson' orders: type: array items: type: string purchaseOrders: type: array items: $ref: '#/components/schemas/PurchaseOrder' purchaseOrderRequiredForInvoicing: type: boolean creationTime: type: integer format: int64 rampInterval: type: array items: type: integer format: int64 renewedFromSubscriptionId: type: string renewedFromDate: type: integer format: int64 renewedToSubscriptionId: type: string renewedToDate: type: integer format: int64 restructuredFromSubscriptionId: type: string restructuredFromDate: type: integer format: int64 restructuredToSubscriptionId: type: string restructuredToDate: type: integer format: int64 autoRenew: type: boolean activationDate: type: integer format: int64 name: type: string customFields: type: object additionalProperties: $ref: '#/components/schemas/CustomFieldValue' TaxJarIntegrationInput: type: object required: - apiKey properties: apiKey: type: string readOnly: true isSandbox: type: boolean readOnly: true 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 TaxRateStrategyJson: type: object required: - taxRateId properties: id: type: string name: type: string countryCode: type: string taxRateId: type: string format: uuid TaxRatePaginationResponseJson: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/TaxRateJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true TaxRateStrategyPaginatedResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/TaxRateStrategyJson' count: type: integer format: int32 pageToken: type: string totalCount: type: integer format: int32 TemplateScript: type: object required: - enabled - script - templateType properties: id: type: string format: uuid readOnly: true templateType: type: string readOnly: true enum: - ORDER - COMPOSITE_ORDER - INVOICE - CREDIT_MEMO - PREDEFINED_TERM script: type: string readOnly: true enabled: type: boolean readOnly: true createdBy: type: string readOnly: true createdOn: type: integer format: int64 readOnly: true updatedOn: type: integer format: int64 readOnly: true TenantJob: type: object properties: module: type: string enum: - HUBSPOT - SALESFORCE - QUICKBOOKS - ERP - REVENUE_RECOGNITION - ACCOUNTING - AUTOMATIC_INVOICE_GENERATION - FOREIGN_EXCHANGE - EVENT - TENANT_MANAGEMENT - PAYMENT - PRISMATIC objectId: type: string metadata: type: object additionalProperties: type: string entityIds: type: array uniqueItems: true items: type: string entityId: type: string createdOn: type: integer format: int64 updatedOn: type: integer format: int64 status: type: string enum: - QUEUED - PROCESSING - SUCCESSFUL - FAILED - CANCELLED tenantId: type: string jobType: type: string enum: - HUBSPOT_ACCOUNT_SYNC - HUBSPOT_ORDER_SYNC - HUBSPOT_COMPOSITE_ORDER_SYNC - SALESFORCE_ACCOUNT_SYNC - SALESFORCE_ACCOUNT_ARR_SYNC - SALESFORCE_ORDER_SYNC - SALESFORCE_COMPOSITE_ORDER_SYNC - SALESFORCE_SUBSCRIPTION_SYNC - CRM_ORDER_DELETION_SYNC - QBO_JOURNAL_ENTRY_CREATION - QBO_JOURNAL_ENTRY_DELETION - ERP_JOURNAL_ENTRY_CREATION - ERP_JOURNAL_ENTRY_DELETION - ERP_JOURNAL_ENTRY_CREATION_V2 - ERP_JOURNAL_ENTRY_DELETION_V2 - ERP_INVOICE_SYNC - ERP_CREDIT_MEMO_SYNC - ERP_VOID_INVOICE - REV_GENERATE_SCHEDULE - REV_REGENERATE_SCHEDULE - REV_GENERATE_SCHEDULES_FOR_TENANT - REV_REGENERATE_SCHEDULES_FOR_TENANT - RECOGNIZE_REVENUE - CRM_COMPOSITE_ORDER_DELETION_SYNC - HUBSPOT_SUBSCRIPTION_SYNC - HUBSPOT_ELECTRONIC_SIGNATURE_SYNC - CRM_SUBSCRIPTION_DELETION_SYNC - CREATE_JOURNAL_ENTRIES - HUBSPOT_ORDER_ANNUAL_AMOUNT_SYNC - SALESFORCE_TRANSACTIONAL_ARR_METRICS_SYNC - EXCHANGE_RATE_REFRESH - AUTOMATED_INVOICE_RULE_TRIGGER - REPROCESS_EVENTS_FOR_TENANT - TENANT_CREATED - PAYMENT_RETRY - PRISMATIC_INVOICE_SYNC failureReason: type: string objectModel: type: string enum: - ACCOUNT - ORDER - COMPOSITE_ORDER - INVOICE - CREDIT_MEMO - SUBSCRIPTION - CRM_OPPORTUNITY - ACCOUNTING_PERIOD - AUTOMATED_INVOICE_RULE - EXCHANGE_RATE_REFRESH_DATE - TENANT - PAYMENT delayedUntil: type: integer format: int64 jobId: type: string attempts: type: integer format: int32 startedOn: type: integer format: int64 endedOn: type: integer format: int64 partitionKey: type: string deduplicate: type: boolean TenantJson: type: object properties: tenantId: type: string name: type: string email: type: string phoneNumber: type: string address: $ref: '#/components/schemas/AccountAddressJson' sourceInitiator: type: string readOnly: true enum: - CPQ - BILLY companyDomain: type: string cfacId: type: integer format: int64 isSandbox: type: boolean hasSalesforceIntegration: type: boolean readOnly: true isDeleted: type: boolean isTest: type: boolean hasHubSpotIntegration: type: boolean readOnly: true hasSso: type: boolean readOnly: true createdOn: type: integer format: int64 readOnly: true tenantSetting: $ref: '#/components/schemas/TenantSettingJson' TenantSettingJson: type: object properties: defaultTimeZone: type: string supportedCurrencies: type: array items: type: string percentDerivedFrom: type: string enum: - LIST_AMOUNT - SELL_AMOUNT tenantSettingSeal: type: string enum: - 'ON' - 'OFF' orderExpiryDurationInDays: type: string signingOrder: type: string enum: - ACCOUNT_FIRST - TENANT_FIRST - ACCOUNT_ONLY globalBccEmail: type: string isUpdateOrderStartDateEnabled: type: boolean autoReplacePlans: type: boolean isDocxAdminOnly: type: boolean isDocxPasswordProtected: type: boolean BackendConfig: type: object properties: id: type: string conditions: type: array items: $ref: '#/components/schemas/Condition' Condition: type: object properties: key: type: string checks: type: array items: type: string enum: - required - empty defaultValue: type: string Customization: type: object required: - configType properties: id: type: string configType: type: string enum: - state - form - dgpTable hidden: type: boolean required: type: boolean defaultValueSetters: type: array items: $ref: '#/components/schemas/DefaultValueDefinition' columnOrdering: type: array items: type: string columnDefaultInvisible: type: array items: type: string backend: $ref: '#/components/schemas/BackendConfig' DefaultValueDefinition: type: object properties: path: type: string value: type: string TenantUiCustomization: type: object required: - version properties: version: type: string enum: - V1_TENANT_LEVEL customizations: type: array items: $ref: '#/components/schemas/Customization' DocxSettings: type: object properties: isDocxAdminOnly: type: boolean isDocxPasswordProtected: type: boolean PaymentTermSettingsJson: type: object required: - customPaymentTermsAllowed - defaultPaymentTerm - defaultPaymentTerms properties: defaultPaymentTerms: type: array readOnly: true items: type: string defaultPaymentTerm: type: string readOnly: true customPaymentTermsAllowed: type: boolean readOnly: true BillingCycleDefinitionJson: type: object properties: id: type: string readOnly: true name: type: string readOnly: true recurrence: $ref: '#/components/schemas/RecurrenceJson' status: type: string readOnly: true enum: - ACTIVE - INACTIVE isDefault: type: boolean readOnly: true BillingCycleDefinitionAdd: type: object properties: name: type: string readOnly: true recurrence: $ref: '#/components/schemas/RecurrenceJson' status: type: string readOnly: true enum: - ACTIVE - INACTIVE BillingCycleDefinitionUpdateJson: type: object required: - status properties: name: type: string readOnly: true status: type: string readOnly: true enum: - ACTIVE - INACTIVE DefaultBillingCycleDefinitionInput: type: object required: - id properties: id: type: string readOnly: true TransactionalExchangeRate: type: object required: - effectiveDate - exchangeRate - exchangeSource - fromCurrency - isOverridden - toCurrency properties: id: type: string readOnly: true fromCurrency: type: string readOnly: true toCurrency: type: string readOnly: true effectiveDate: type: integer format: int64 readOnly: true exchangeRate: type: number readOnly: true exchangeSource: type: string readOnly: true enum: - QUODD - SAME_CURRENCY - USER - TEST_RANDOM updatedBy: type: string readOnly: true isOverridden: type: boolean readOnly: true UnitOfMeasureJson: type: object required: - status properties: id: type: string format: uuid name: type: string description: type: string status: type: string enum: - DRAFT - ACTIVE - DEPRECATED UnitOfMeasurePaginationResponseJson: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/UnitOfMeasureJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true Entry: type: object properties: rowNumber: type: integer format: int64 failed: type: boolean failureReason: type: string UsageBatchInsertResult: type: object properties: rawUsagesTotal: type: integer format: int32 totalFailed: type: integer format: int32 totalDuplicates: type: integer format: int32 entries: type: array items: $ref: '#/components/schemas/Entry' RawUsage: type: object properties: id: type: string description: Unique identifier for a particular usage record aliasId: type: string description: Alias ID for an usage based subscription item. This value is required if subscriptionId and subscriptionChargeId are not provided subscriptionId: type: string description: SubscriptionId to attach usage record to. This value is required if aliasId is not provided chargeId: type: string description: ChargeId of an usage based charge to attach usage record to. This value is required if aliasId is not provided usageTime: type: integer format: int64 description: Usage time in unix timestamp (seconds) usageQuantity: type: integer format: int64 attributeReferences: type: array description: List of attribute references to derive the price for the usage record items: $ref: '#/components/schemas/AttributeReference' description: A raw usage record RawUsagesData: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/RawUsage' description: A list of RawUsage objects UsageAggregateOutput: type: object properties: subscriptionId: type: string subscriptionChargeGroupId: type: string attributeReferences: type: array items: $ref: '#/components/schemas/AttributeReference' startAt: type: integer format: int64 endAt: type: integer format: int64 observedDataPoints: type: integer format: int32 usageSum: type: number usageMax: type: number usageMin: type: number PrepaidStats: type: object properties: accountId: type: string accountName: type: string accountCrmId: type: string subscriptionId: type: string entityDisplayId: type: string subscriptionStartDate: type: integer format: int64 subscriptionEndDate: type: integer format: int64 planName: type: string drawdownChargeName: type: string provisionedQuantity: type: number startingQuantity: type: number remainingQuantity: type: number consumedQuantity: type: number periodStart: type: integer format: int64 periodEnd: type: integer format: int64 UserGroupRequestJson: type: object properties: id: type: string entityIds: type: array uniqueItems: true items: type: string name: type: string description: type: string users: type: array items: type: string externalId: type: string InputStream: type: object UserPaginationResponseJson: type: object properties: data: type: array readOnly: true items: $ref: '#/components/schemas/UserJson' numElements: type: integer format: int32 readOnly: true nextCursor: type: string format: uuid readOnly: true UserInput: type: object properties: id: type: string displayName: type: string title: type: string email: type: string phoneNumber: type: string state: type: string enum: - ACTIVE - DISABLED - EXPIRED role: type: string enum: - ADMIN - FINANCE - SALES - SALES_MANAGER - ACCOUNTANT - BILLING_CLERK - REVENUE_CLERK - READ_ONLY - EXECUTIVE - CRM - IMPORT - BILLY_ADMIN - BILLY_ENGINEER - BILLY_SUPPORT - BILLY_JOB ssoOnly: type: boolean entityIds: type: array items: type: string externalId: type: string UserSsoUpdate: type: object properties: ssoOnly: type: boolean NewAccountJson: type: object required: - accountId - name - uvcaCfacId properties: accountId: type: string description: Account ID - Required for CPQ-RevenuHub integration (max 36 characters) minLength: 0 maxLength: 36 name: type: string description: Account name description: type: string description: (optional) Account description crmId: type: string description: (optional) CRM ID accountDisplayId: type: string description: (optional) Human-readable account display ID generated by DealHub (e.g. ACC-100847). Immutable once set. minLength: 0 maxLength: 40 currency: type: string description: 'Currency code (ISO 4217 format). Optional - defaults to USD if not provided. Example: USD, EUR, GBP' shippingAddress: $ref: '#/components/schemas/AccountAddressJson' billingAddress: $ref: '#/components/schemas/AccountAddressJson' uvcaCfacId: type: integer format: int64 description: uvca_cfac_id - Required for CPQ-RevenuHub integration entityIds: type: array description: (optional) Entity IDs where this account belongs uniqueItems: true items: type: string taxExemptionUseCode: type: string description: (optional) Tax exemption use code enum: - A - B - C - D - E - F - G - H - I - J - K - L - M - N - P - Q - R hasAutomaticPayment: type: boolean description: (optional) Input true, if this Account will have an automatic payment. Default is false excludeFromBatchOperations: type: boolean description: (optional) Input true, if this account needs to be excluded from Batch Operations. Default is false excludeFromDunning: type: boolean description: (optional) Input true, if this account needs to be excluded from Dunning emails. Default is false supportedPaymentTypes: type: array description: '(optional) Supported payment types for this Account. Example: ACH, Card, Check, Wire, Invoice' uniqueItems: true items: type: string enum: - ACH - CARD - CHECK - WIRE - INVOICE - DEPOSIT - EXTERNAL taxId: type: string description: (optional) Tax identifier for the account (max 100 characters) minLength: 0 maxLength: 100 attributes: type: object description: (optional) Additional attributes as key-value pairs for CPQ integration additionalProperties: type: object updatedOn: type: integer format: int64 description: (optional) Last updated timestamp (epoch seconds) AccountQueryRequest: type: object required: - accountIds properties: accountIds: type: array description: List of account identifiers (max 100) items: type: string maxItems: 100 minItems: 0 NewAccountContactJson: type: object required: - accountId - email properties: contactId: type: string description: Contact ID - Used for CPQ-RevenuHub integration minLength: 0 maxLength: 36 accountId: type: string description: Uniquely identifies the Account minLength: 0 maxLength: 36 firstName: type: string description: (optional) 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 description: (optional) External system identifier erpId: type: string description: (optional) ERP system identifier crmId: type: string description: (optional) CRM system identifier fullName: type: string eventObjectId: type: string Factor: type: object required: - id - name - value properties: name: type: string readOnly: true id: type: string readOnly: true value: type: number readOnly: true Order: type: object required: - billingContactId - billingCycle - billingTerm - buyerAccountId - currency - endDate - listAmount - orderIdentifier - orderStatus - orderType - paymentTerm - shippingContactId - startDate - totalAmount properties: entityId: type: string readOnly: true name: type: string readOnly: true orderIdentifier: type: string readOnly: true buyerAccountId: type: string readOnly: true shippingContactId: type: string readOnly: true billingContactId: type: string readOnly: true currency: type: string readOnly: true paymentTerm: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true billingAnchorDate: type: integer format: int64 readOnly: true periodMetadata: type: array readOnly: true items: $ref: '#/components/schemas/OrderPeriodMetadata' billingCycle: $ref: '#/components/schemas/RecurrenceJson' billingTerm: type: string readOnly: true enum: - UP_FRONT - IN_ARREARS listAmount: type: number readOnly: true totalAmount: type: number readOnly: true submittedBy: type: string readOnly: true purchaseOrderRequiredForInvoicing: type: boolean readOnly: true purchaseOrderNumber: type: string readOnly: true orderType: type: string readOnly: true enum: - NEW - AMENDMENT - CANCEL - RENEWAL - RESTRUCTURE orderStatus: type: string readOnly: true enum: - DRAFT - SUBMITTED - APPROVED - EXECUTED - EXPIRED orderLineItems: type: array readOnly: true items: $ref: '#/components/schemas/OrderLineItem' subscriptionId: type: string readOnly: true OrderLineItem: type: object required: - actionType - endDate - lineItemIdentifier - listAmount - listUnitPrice - pricingBlock - sellAmount - sellUnitPrice - sku - startDate properties: lineItemIdentifier: type: string readOnly: true sku: type: string readOnly: true groupId: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true sellAmount: type: number readOnly: true listAmount: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true renewable: type: boolean readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' customAttributes: type: string readOnly: true actionType: type: string readOnly: true enum: - ADD - UPDATE - REMOVE - RENEWAL - NONE - MISSING_RENEWAL - RESTRUCTURE subscriptionChargeId: type: string readOnly: true subscriptionChargeGroupId: type: string readOnly: true OrderPeriodMetadata: type: object required: - endDate - startDate properties: startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true metadata: type: object readOnly: true additionalProperties: type: object NewOrderInput: type: object required: - billingContactId - billingCycle - billingTerm - buyerAccountId - currency - endDate - listAmount - orderIdentifier - paymentTerm - shippingContactId - startDate - totalAmount properties: entityId: type: string readOnly: true name: type: string readOnly: true orderIdentifier: type: string readOnly: true buyerAccountId: type: string readOnly: true shippingContactId: type: string readOnly: true billingContactId: type: string readOnly: true currency: type: string readOnly: true paymentTerm: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true billingAnchorDate: type: integer format: int64 readOnly: true periodMetadata: type: array readOnly: true items: $ref: '#/components/schemas/OrderPeriodMetadata' billingCycle: $ref: '#/components/schemas/RecurrenceJson' billingTerm: type: string readOnly: true enum: - UP_FRONT - IN_ARREARS listAmount: type: number readOnly: true totalAmount: type: number readOnly: true submittedBy: type: string readOnly: true purchaseOrderRequiredForInvoicing: type: boolean readOnly: true purchaseOrderNumber: type: string readOnly: true orderLineItems: type: array readOnly: true items: $ref: '#/components/schemas/NewOrderLineItemInput' NewOrderLineItemInput: type: object required: - endDate - lineItemIdentifier - listAmount - listUnitPrice - pricingBlock - sellAmount - sellUnitPrice - sku - startDate properties: lineItemIdentifier: type: string readOnly: true sku: type: string readOnly: true groupId: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true sellAmount: type: number readOnly: true listAmount: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true renewable: type: boolean readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' customAttributes: type: string readOnly: true NewOrderRequest: type: object required: - order properties: order: $ref: '#/components/schemas/NewOrderInput' validateStructure: type: boolean readOnly: true JsonNode: type: object NewSkuSyncRequest: type: object required: - skus properties: skus: type: array readOnly: true items: $ref: '#/components/schemas/SkuSyncInput' SkuProductAttributes: type: object properties: subscriptionItemType: type: string readOnly: true billingTerm: type: string readOnly: true trackableARR: type: boolean readOnly: true isEventBased: type: boolean readOnly: true erpId: type: string readOnly: true taxRateStrategyId: type: string readOnly: true revRecognitionRuleId: type: string readOnly: true taxLiabilityAccountId: type: string readOnly: true deferredRevenueAccountId: type: string readOnly: true recognizedRevenueAccountId: type: string readOnly: true contractAssetAccountId: type: string readOnly: true customAttributes: type: object readOnly: true additionalProperties: type: object SkuSyncInput: type: object required: - sku - type properties: sku: type: string readOnly: true name: type: string readOnly: true type: type: string readOnly: true subtype: type: string readOnly: true desc: type: string readOnly: true defaultTag: type: string readOnly: true tags: type: array readOnly: true items: type: string productAttributes: $ref: '#/components/schemas/SkuProductAttributes' RenewalLineItemInput: type: object required: - endDate - lineItemIdentifier - listAmount - listUnitPrice - pricingBlock - sellAmount - sellUnitPrice - sku - startDate properties: lineItemIdentifier: type: string readOnly: true sku: type: string readOnly: true groupId: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true sellAmount: type: number readOnly: true listAmount: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true renewable: type: boolean readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' customAttributes: type: string readOnly: true renewedFromSubscriptionLineId: type: string readOnly: true RenewalOrderInput: type: object required: - billingContactId - billingCycle - billingTerm - endDate - listAmount - orderIdentifier - paymentTerm - shippingContactId - subscriptionId - subscriptionVersion - totalAmount properties: name: type: string readOnly: true subscriptionId: type: string readOnly: true subscriptionVersion: type: integer format: int32 readOnly: true orderIdentifier: type: string readOnly: true shippingContactId: type: string readOnly: true billingContactId: type: string readOnly: true paymentTerm: type: string readOnly: true endDate: type: integer format: int64 readOnly: true billingAnchorDate: type: integer format: int64 readOnly: true periodMetadata: type: array readOnly: true items: $ref: '#/components/schemas/OrderPeriodMetadata' billingCycle: $ref: '#/components/schemas/RecurrenceJson' billingTerm: type: string readOnly: true enum: - UP_FRONT - IN_ARREARS listAmount: type: number readOnly: true totalAmount: type: number readOnly: true submittedBy: type: string readOnly: true purchaseOrderRequiredForInvoicing: type: boolean readOnly: true purchaseOrderNumber: type: string readOnly: true renewalLineItems: type: array readOnly: true items: $ref: '#/components/schemas/RenewalLineItemInput' RenewalOrderRequest: type: object required: - order properties: order: $ref: '#/components/schemas/RenewalOrderInput' PaginatedResult: type: object required: - count - data properties: data: type: array readOnly: true items: type: object count: type: integer format: int32 readOnly: true pageToken: type: string readOnly: true PaginatedResultSubscriptionHead: type: object required: - count - data properties: data: type: array readOnly: true items: type: object count: type: integer format: int32 readOnly: true pageToken: type: string readOnly: true Subscription: type: object required: - billingContactId - billingCycle - billingTerm - buyerAccountId - createdOn - currency - endDate - entityId - id - paymentTerm - shippingContactId - startDate - state - version properties: entityId: type: string readOnly: true id: type: string readOnly: true buyerAccountId: type: string readOnly: true shippingContactId: type: string readOnly: true billingContactId: type: string readOnly: true currency: type: string readOnly: true paymentTerm: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true billingAnchorDate: type: integer format: int64 readOnly: true periodMetadata: type: array readOnly: true items: $ref: '#/components/schemas/OrderPeriodMetadata' billingCycle: $ref: '#/components/schemas/RecurrenceJson' billingTerm: type: string readOnly: true enum: - UP_FRONT - IN_ARREARS state: type: string readOnly: true enum: - ACTIVE - EXPIRED - CANCELLED - PENDING - PENDING_CANCELLATION version: type: integer format: int32 readOnly: true renewedToSubscriptionId: type: string readOnly: true createdOn: type: integer format: int64 readOnly: true lines: type: array readOnly: true items: $ref: '#/components/schemas/SubscriptionLine' SubscriptionLine: type: object required: - billingCycle - endDate - id - listAmount - listUnitPrice - pricingBlock - renewable - sellAmount - sellUnitPrice - sku - startDate - status properties: id: type: string readOnly: true sku: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true groupId: type: string readOnly: true listAmount: type: number readOnly: true sellAmount: type: number readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' renewable: type: boolean readOnly: true customAttributes: type: string readOnly: true status: type: string readOnly: true enum: - PENDING - ACTIVE - EXPIRED - TERMINATED - CANCELLED PaginatedResultSubscription: type: object required: - count - data properties: data: type: array readOnly: true items: type: object count: type: integer format: int32 readOnly: true pageToken: type: string readOnly: true AmendmentOrderInput: type: object required: - listAmount - orderIdentifier - startDate - subscriptionId - subscriptionVersion - totalAmount properties: subscriptionId: type: string readOnly: true subscriptionVersion: type: integer format: int32 readOnly: true name: type: string readOnly: true orderIdentifier: type: string readOnly: true startDate: type: integer format: int64 readOnly: true listAmount: type: number readOnly: true totalAmount: type: number readOnly: true submittedBy: type: string readOnly: true modificationLineItems: type: array readOnly: true items: $ref: '#/components/schemas/ModificationLineItem' AmendmentOrderRequest: type: object required: - order properties: order: $ref: '#/components/schemas/AmendmentOrderInput' ModificationLineItem: type: object required: - action - endDate - lineItemIdentifier - listAmount - listUnitPrice - pricingBlock - sellAmount - sellUnitPrice - sku - startDate properties: lineItemIdentifier: type: string readOnly: true sku: type: string readOnly: true groupId: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true sellAmount: type: number readOnly: true listAmount: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true renewable: type: boolean readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' customAttributes: type: string readOnly: true action: type: string readOnly: true enum: - DEBOOK - REBOOK - REMOVE - ADD - RENEWAL modifyingSubscriptionLineId: type: string readOnly: true CancelLineItemInput: type: object required: - cancellingSubscriptionLineId - endDate - lineItemIdentifier - listAmount - listUnitPrice - pricingBlock - sellAmount - sellUnitPrice - sku - startDate properties: lineItemIdentifier: type: string readOnly: true sku: type: string readOnly: true groupId: type: string readOnly: true startDate: type: integer format: int64 readOnly: true endDate: type: integer format: int64 readOnly: true listUnitPrice: type: number readOnly: true sellUnitPrice: type: number readOnly: true sellAmount: type: number readOnly: true listAmount: type: number readOnly: true factors: type: array readOnly: true items: $ref: '#/components/schemas/Factor' pricingBlock: type: string readOnly: true renewable: type: boolean readOnly: true billingCycle: $ref: '#/components/schemas/RecurrenceJson' customAttributes: type: string readOnly: true cancellingSubscriptionLineId: type: string readOnly: true CancelOrderInput: type: object required: - listAmount - orderIdentifier - startDate - subscriptionId - subscriptionVersion - totalAmount properties: subscriptionId: type: string readOnly: true subscriptionVersion: type: integer format: int32 readOnly: true name: type: string readOnly: true orderIdentifier: type: string readOnly: true startDate: type: integer format: int64 readOnly: true listAmount: type: number readOnly: true totalAmount: type: number readOnly: true submittedBy: type: string readOnly: true cancelLineItems: type: array readOnly: true items: $ref: '#/components/schemas/CancelLineItemInput' CancelOrderRequest: type: object required: - order properties: order: $ref: '#/components/schemas/CancelOrderInput'