openapi: 3.1.0 info: title: Business Central Automation API v2.0 description: >- API for automating company setup and tenant management in Dynamics 365 Business Central. Supports creating companies, installing and managing extensions, assigning permission sets to users, uploading and applying RapidStart packages, managing user groups and security groups, and activating features programmatically. version: '2.0' contact: name: Microsoft Dynamics Support email: bcsupport@microsoft.com url: https://dynamics.microsoft.com/support/ license: name: Microsoft APIs Terms of Use url: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use termsOfService: https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use externalDocs: description: Automation API Documentation url: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/itpro-introduction-to-automation-apis servers: - url: https://api.businesscentral.dynamics.com/v2.0/{environment}/api/microsoft/automation/v2.0 description: Business Central Online Automation API variables: environment: default: production description: The name of the Business Central environment - url: https://{server}:{port}/{instance}/api/microsoft/automation/v2.0 description: Business Central On-Premises Automation API variables: server: default: localhost description: The on-premises server hostname port: default: '7048' description: The OData services port instance: default: BC description: The Business Central server instance name security: - oauth2: [] - bearerAuth: [] tags: - name: Companies description: Manage automation companies - name: Extensions description: Manage installed extensions - name: Extension Upload description: Upload and install per-tenant extensions - name: Extension Deployment Status description: Monitor extension installation progress - name: Users description: Manage Business Central users - name: User Groups description: Manage user groups (deprecated in v25, use security groups) - name: Security Groups description: Manage security groups - name: Permission Sets description: Manage permission sets and user permissions - name: Configuration Packages description: Manage RapidStart configuration packages - name: Features description: Manage feature flags - name: Profiles description: Manage user profiles - name: Scheduled Jobs description: View scheduled background jobs paths: /companies: get: summary: List Companies description: Returns a list of companies available for automation. operationId: listCompanies tags: - Companies responses: '200': description: Successfully retrieved companies content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/Company' examples: Listcompanies200Example: summary: Default listCompanies 200 response x-microcks-default: true value: value: - id: abc123 name: Example Title displayName: example_value businessProfileId: '500123' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/automationCompanies: get: summary: List Automation Companies description: Returns a list of automation company objects. operationId: listAutomationCompanies tags: - Companies parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved automation companies content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/AutomationCompany' examples: Listautomationcompanies200Example: summary: Default listAutomationCompanies 200 response x-microcks-default: true value: value: - id: abc123 name: Example Title displayName: example_value businessProfileId: '500123' evaluationCompany: true '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Create a Company description: Creates a new company in the Business Central tenant. operationId: createAutomationCompany tags: - Companies parameters: - $ref: '#/components/parameters/company_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AutomationCompanyCreate' examples: CreateautomationcompanyRequestExample: summary: Default createAutomationCompany request x-microcks-default: true value: name: Example Title displayName: example_value businessProfileId: '500123' responses: '201': description: Company created successfully content: application/json: schema: $ref: '#/components/schemas/AutomationCompany' examples: Createautomationcompany201Example: summary: Default createAutomationCompany 201 response x-microcks-default: true value: id: abc123 name: Example Title displayName: example_value businessProfileId: '500123' evaluationCompany: true '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/automationCompanies({automationCompany_id}): get: summary: Get an Automation Company description: Retrieves a specific automation company by ID. operationId: getAutomationCompany tags: - Companies parameters: - $ref: '#/components/parameters/company_id' - name: automationCompany_id in: path required: true schema: type: string format: uuid example: '500123' responses: '200': description: Successfully retrieved automation company content: application/json: schema: $ref: '#/components/schemas/AutomationCompany' examples: Getautomationcompany200Example: summary: Default getAutomationCompany 200 response x-microcks-default: true value: id: abc123 name: Example Title displayName: example_value businessProfileId: '500123' evaluationCompany: true '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: summary: Update an Automation Company description: Updates properties of an automation company (e.g., rename). operationId: updateAutomationCompany tags: - Companies parameters: - $ref: '#/components/parameters/company_id' - name: automationCompany_id in: path required: true schema: type: string format: uuid example: '500123' - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AutomationCompanyUpdate' examples: UpdateautomationcompanyRequestExample: summary: Default updateAutomationCompany request x-microcks-default: true value: name: Example Title displayName: example_value responses: '200': description: Company updated successfully content: application/json: schema: $ref: '#/components/schemas/AutomationCompany' examples: Updateautomationcompany200Example: summary: Default updateAutomationCompany 200 response x-microcks-default: true value: id: abc123 name: Example Title displayName: example_value businessProfileId: '500123' evaluationCompany: true '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: summary: Delete an Automation Company description: Deletes a company from the tenant. operationId: deleteAutomationCompany tags: - Companies parameters: - $ref: '#/components/parameters/company_id' - name: automationCompany_id in: path required: true schema: type: string format: uuid example: '500123' responses: '204': description: Company deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensions: get: summary: List Extensions description: Returns a list of extensions published to the tenant. operationId: listExtensions tags: - Extensions parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved extensions content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/Extension' examples: Listextensions200Example: summary: Default listExtensions 200 response x-microcks-default: true value: value: - id: abc123 packageId: '500123' displayName: example_value publisher: example_value versionMajor: 10 versionMinor: 10 versionBuild: 10 versionRevision: 10 isInstalled: true publishedAs: Global '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensions({extension_id})/Microsoft.NAV.install: post: summary: Install an Extension description: Installs a published extension on the tenant. operationId: installExtension tags: - Extensions parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/extension_id' responses: '204': description: Extension installation initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensions({extension_id})/Microsoft.NAV.uninstall: post: summary: Uninstall an Extension description: Uninstalls an extension from the tenant. operationId: uninstallExtension tags: - Extensions parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/extension_id' responses: '204': description: Extension uninstallation initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensions({extension_id})/Microsoft.NAV.uninstallAndDeleteExtensionData: post: summary: Uninstall and Delete Extension Data description: Uninstalls an extension and deletes all data owned by the extension. This action cannot be undone. operationId: uninstallAndDeleteExtensionData tags: - Extensions parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/extension_id' responses: '204': description: Extension uninstallation and data deletion initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensions({extension_id})/Microsoft.NAV.unpublish: post: summary: Unpublish an Extension description: Unpublishes an uninstalled extension from the tenant. operationId: unpublishExtension tags: - Extensions parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/extension_id' responses: '204': description: Extension unpublished '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensionUpload: post: summary: Create Extension Upload Record description: Creates an extension upload record for uploading a per-tenant extension. operationId: createExtensionUpload tags: - Extension Upload parameters: - $ref: '#/components/parameters/company_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExtensionUploadCreate' examples: CreateextensionuploadRequestExample: summary: Default createExtensionUpload request x-microcks-default: true value: schedule: Current version schemaSyncMode: Add responses: '201': description: Extension upload record created content: application/json: schema: $ref: '#/components/schemas/ExtensionUpload' examples: Createextensionupload201Example: summary: Default createExtensionUpload 201 response x-microcks-default: true value: systemId: '500123' schedule: Current version schemaSyncMode: Add status: example_value '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensionUpload({extensionUpload_id})/extensionContent: patch: summary: Upload Extension File description: Uploads the extension file content to the extension upload record. operationId: uploadExtensionFile tags: - Extension Upload parameters: - $ref: '#/components/parameters/company_id' - name: extensionUpload_id in: path required: true schema: type: string format: uuid example: '500123' - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/octet-stream: schema: type: string format: binary examples: UploadextensionfileRequestExample: summary: Default uploadExtensionFile request x-microcks-default: true value: example_value responses: '200': description: Extension file uploaded '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensionUpload({extensionUpload_id})/Microsoft.NAV.upload: post: summary: Install Uploaded Extension description: Triggers the installation of a previously uploaded per-tenant extension. operationId: installUploadedExtension tags: - Extension Upload parameters: - $ref: '#/components/parameters/company_id' - name: extensionUpload_id in: path required: true schema: type: string format: uuid example: '500123' responses: '204': description: Extension installation initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/extensionDeploymentStatus: get: summary: List Extension Deployment Statuses description: Returns a list of ongoing extension deployment statuses. operationId: listExtensionDeploymentStatuses tags: - Extension Deployment Status parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved deployment statuses content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/ExtensionDeploymentStatus' examples: Listextensiondeploymentstatuses200Example: summary: Default listExtensionDeploymentStatuses 200 response x-microcks-default: true value: value: - id: abc123 name: Example Title publisher: example_value operationType: example_value status: Unknown appVersion: example_value startedOn: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/users: get: summary: List Users description: Returns a list of Business Central users. operationId: listUsers tags: - Users parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved users content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/User' examples: Listusers200Example: summary: Default listUsers 200 response x-microcks-default: true value: value: - userSecurityId: '500123' userName: example_value displayName: example_value state: Enabled expiryDate: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/users({user_id}): get: summary: Get a User description: Retrieves a specific user by user security ID. operationId: getUser tags: - Users parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/user_id' responses: '200': description: Successfully retrieved user content: application/json: schema: $ref: '#/components/schemas/User' examples: Getuser200Example: summary: Default getUser 200 response x-microcks-default: true value: userSecurityId: '500123' userName: example_value displayName: example_value state: Enabled expiryDate: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: summary: Update a User description: Updates properties of a Business Central user. operationId: updateUser tags: - Users parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/user_id' - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserUpdate' examples: UpdateuserRequestExample: summary: Default updateUser request x-microcks-default: true value: state: Enabled expiryDate: '2026-01-15T10:30:00Z' responses: '200': description: User updated successfully content: application/json: schema: $ref: '#/components/schemas/User' examples: Updateuser200Example: summary: Default updateUser 200 response x-microcks-default: true value: userSecurityId: '500123' userName: example_value displayName: example_value state: Enabled expiryDate: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/users/Microsoft.NAV.getNewUsersFromOffice365: post: summary: Get New Users From Office 365 description: >- Retrieves new users or updated user information from Office 365. Runs synchronously. Not supported with S2S authentication. operationId: getNewUsersFromOffice365 tags: - Users parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Users retrieved successfully '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/users/Microsoft.NAV.getNewUsersFromOffice365Async: post: summary: Get New Users From Office 365 (async) description: >- Schedules a background job to retrieve new users from Office 365. Returns a link to the scheduled job for tracking progress. Not supported with S2S authentication. operationId: getNewUsersFromOffice365Async tags: - Users parameters: - $ref: '#/components/parameters/company_id' responses: '202': description: Background job scheduled '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/users({user_id})/userPermissions: get: summary: List User Permissions description: Returns permission sets assigned to the user. operationId: listUserPermissions tags: - Permission Sets parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/user_id' responses: '200': description: Successfully retrieved user permissions content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/UserPermission' examples: Listuserpermissions200Example: summary: Default listUserPermissions 200 response x-microcks-default: true value: value: - id: abc123 roleId: '500123' displayName: example_value company: example_value scope: System appId: '500123' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Assign a Permission Set to a User description: Assigns a permission set to the specified user. operationId: createUserPermission tags: - Permission Sets parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/user_id' requestBody: required: true content: application/json: schema: type: object required: - roleId properties: roleId: type: string description: The permission set role ID examples: CreateuserpermissionRequestExample: summary: Default createUserPermission request x-microcks-default: true value: roleId: '500123' responses: '201': description: Permission set assigned content: application/json: schema: $ref: '#/components/schemas/UserPermission' examples: Createuserpermission201Example: summary: Default createUserPermission 201 response x-microcks-default: true value: id: abc123 roleId: '500123' displayName: example_value company: example_value scope: System appId: '500123' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/permissionSets: get: summary: List Permission Sets description: Returns a list of available permission sets. operationId: listPermissionSets tags: - Permission Sets parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved permission sets content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/PermissionSet' examples: Listpermissionsets200Example: summary: Default listPermissionSets 200 response x-microcks-default: true value: value: - id: abc123 roleId: '500123' displayName: example_value scope: System appId: '500123' extensionName: example_value '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/securityGroups: get: summary: List Security Groups description: Returns a list of security groups. operationId: listSecurityGroups tags: - Security Groups parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved security groups content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/SecurityGroup' examples: Listsecuritygroups200Example: summary: Default listSecurityGroups 200 response x-microcks-default: true value: value: - id: abc123 groupId: '500123' code: example_value displayName: example_value '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/configurationPackages: get: summary: List Configuration Packages description: Returns a list of RapidStart configuration packages. operationId: listConfigurationPackages tags: - Configuration Packages parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved configuration packages content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/ConfigurationPackage' examples: Listconfigurationpackages200Example: summary: Default listConfigurationPackages 200 response x-microcks-default: true value: value: - id: abc123 code: example_value packageName: example_value languageId: '500123' productVersion: example_value processingOrder: 10 excludeConfigurationTables: true numberOfTables: 10 numberOfRecords: 10 numberOfErrors: 10 importStatus: ' ' applyStatus: ' ' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Create a Configuration Package description: Creates a new RapidStart configuration package record. operationId: createConfigurationPackage tags: - Configuration Packages parameters: - $ref: '#/components/parameters/company_id' requestBody: required: true content: application/json: schema: type: object required: - code - packageName properties: code: type: string description: The configuration package code packageName: type: string description: The configuration package name examples: CreateconfigurationpackageRequestExample: summary: Default createConfigurationPackage request x-microcks-default: true value: code: example_value packageName: example_value responses: '201': description: Configuration package created content: application/json: schema: $ref: '#/components/schemas/ConfigurationPackage' examples: Createconfigurationpackage201Example: summary: Default createConfigurationPackage 201 response x-microcks-default: true value: id: abc123 code: example_value packageName: example_value languageId: '500123' productVersion: example_value processingOrder: 10 excludeConfigurationTables: true numberOfTables: 10 numberOfRecords: 10 numberOfErrors: 10 importStatus: ' ' applyStatus: ' ' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/configurationPackages({package_id})/file('{code}')/content: patch: summary: Upload Rapidstart Package File description: Uploads the RapidStart package file content. operationId: uploadConfigurationPackageFile tags: - Configuration Packages parameters: - $ref: '#/components/parameters/company_id' - name: package_id in: path required: true schema: type: string format: uuid example: '500123' - name: code in: path required: true schema: type: string example: example_value - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/octet-stream: schema: type: string format: binary examples: UploadconfigurationpackagefileRequestExample: summary: Default uploadConfigurationPackageFile request x-microcks-default: true value: example_value responses: '200': description: Package file uploaded '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/configurationPackages({package_id})/Microsoft.NAV.import: post: summary: Import a Configuration Package description: Imports the uploaded RapidStart configuration package. operationId: importConfigurationPackage tags: - Configuration Packages parameters: - $ref: '#/components/parameters/company_id' - name: package_id in: path required: true schema: type: string format: uuid example: '500123' responses: '204': description: Import initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/configurationPackages({package_id})/Microsoft.NAV.apply: post: summary: Apply a Configuration Package description: Applies the imported RapidStart configuration package. operationId: applyConfigurationPackage tags: - Configuration Packages parameters: - $ref: '#/components/parameters/company_id' - name: package_id in: path required: true schema: type: string format: uuid example: '500123' responses: '204': description: Apply initiated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/features: get: summary: List Features description: Returns a list of features available in feature management. operationId: listFeatures tags: - Features parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved features content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/Feature' examples: Listfeatures200Example: summary: Default listFeatures 200 response x-microcks-default: true value: value: - id: abc123 displayName: example_value description: A sample description. enabled: true learnMoreUrl: https://www.example.com '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/features({feature_id})/Microsoft.NAV.activate: post: summary: Activate a Feature description: Activates the specified feature. operationId: activateFeature tags: - Features parameters: - $ref: '#/components/parameters/company_id' - name: feature_id in: path required: true schema: type: string example: '500123' requestBody: content: application/json: schema: type: object properties: updateInBackground: type: boolean default: false startDateTime: type: string format: date-time examples: ActivatefeatureRequestExample: summary: Default activateFeature request x-microcks-default: true value: updateInBackground: true startDateTime: '2026-01-15T10:30:00Z' responses: '200': description: Feature activated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/features({feature_id})/Microsoft.NAV.deactivate: post: summary: Deactivate a Feature description: Deactivates the specified feature. operationId: deactivateFeature tags: - Features parameters: - $ref: '#/components/parameters/company_id' - name: feature_id in: path required: true schema: type: string example: '500123' responses: '200': description: Feature deactivated '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/profiles: get: summary: List Profiles description: Returns a list of user profiles. operationId: listProfiles tags: - Profiles parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved profiles content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/Profile' examples: Listprofiles200Example: summary: Default listProfiles 200 response x-microcks-default: true value: value: - profileId: '500123' scope: System caption: example_value description: A sample description. applicationId: '500123' enabled: true '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/scheduledJobs: get: summary: List Scheduled Jobs description: Returns a list of scheduled background jobs. operationId: listScheduledJobs tags: - Scheduled Jobs parameters: - $ref: '#/components/parameters/company_id' responses: '200': description: Successfully retrieved scheduled jobs content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/ScheduledJob' examples: Listscheduledjobs200Example: summary: Default listScheduledJobs 200 response x-microcks-default: true value: value: - id: abc123 category: example_value status: example_value description: A sample description. errorMessage: example_value startDateTime: '2026-01-15T10:30:00Z' endDateTime: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 authentication via Microsoft Entra ID flows: authorizationCode: authorizationUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token scopes: https://api.businesscentral.dynamics.com/.default: Access Business Central Automation APIs clientCredentials: tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token scopes: https://api.businesscentral.dynamics.com/.default: Access Business Central Automation APIs bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: company_id: name: company_id in: path required: true description: The unique identifier of the company schema: type: string format: uuid extension_id: name: extension_id in: path required: true description: The package ID of the extension schema: type: string format: uuid user_id: name: user_id in: path required: true description: The user security ID schema: type: string format: uuid ifMatch: name: If-Match in: header required: true description: ETag value for optimistic concurrency control schema: type: string responses: BadRequest: description: Bad request - invalid input content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Unauthorized: description: Unauthorized - authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' schemas: ErrorResponse: type: object properties: error: type: object properties: code: type: string message: type: string example: example_value Company: type: object properties: id: type: string format: uuid example: abc123 name: type: string example: Example Title displayName: type: string example: example_value businessProfileId: type: string example: '500123' AutomationCompany: type: object properties: id: type: string format: uuid example: abc123 name: type: string description: The company name example: Example Title displayName: type: string description: The company display name example: example_value businessProfileId: type: string description: The business profile ID example: '500123' evaluationCompany: type: boolean description: Whether this is an evaluation company example: true AutomationCompanyCreate: type: object required: - name - displayName properties: name: type: string description: The name of the new company example: Example Title displayName: type: string description: The display name of the new company example: example_value businessProfileId: type: string example: '500123' AutomationCompanyUpdate: type: object properties: name: type: string example: Example Title displayName: type: string example: example_value Extension: type: object properties: id: type: string format: uuid description: The extension ID example: abc123 packageId: type: string format: uuid description: The package ID used for install/uninstall operations example: '500123' displayName: type: string description: The extension display name example: example_value publisher: type: string description: The extension publisher example: example_value versionMajor: type: integer description: Major version number example: 10 versionMinor: type: integer description: Minor version number example: 10 versionBuild: type: integer description: Build version number example: 10 versionRevision: type: integer description: Revision version number example: 10 isInstalled: type: boolean description: Whether the extension is currently installed example: true publishedAs: type: string description: How the extension was published enum: - Global - Dev - PTE example: Global ExtensionUpload: type: object properties: systemId: type: string format: uuid example: '500123' schedule: type: string description: When to schedule the installation enum: - Current version - Next minor version - Next major version example: Current version schemaSyncMode: type: string description: Schema synchronization mode enum: - Add - Force Sync example: Add status: type: string readOnly: true example: example_value ExtensionUploadCreate: type: object required: - schedule - schemaSyncMode properties: schedule: type: string enum: - Current version - Next minor version - Next major version example: Current version schemaSyncMode: type: string enum: - Add - Force Sync example: Add ExtensionDeploymentStatus: type: object properties: id: type: string format: uuid example: abc123 name: type: string description: Extension name example: Example Title publisher: type: string description: Extension publisher example: example_value operationType: type: string description: Type of deployment operation example: example_value status: type: string description: Deployment status enum: - Unknown - InProgress - Completed - Failed example: Unknown appVersion: type: string description: Extension version example: example_value startedOn: type: string format: date-time example: '2026-01-15T10:30:00Z' User: type: object properties: userSecurityId: type: string format: uuid description: The user security ID example: '500123' userName: type: string description: The user name example: example_value displayName: type: string description: The user display name example: example_value state: type: string description: The user state enum: - Enabled - Disabled example: Enabled expiryDate: type: string format: date-time description: The user expiry date example: '2026-01-15T10:30:00Z' UserUpdate: type: object properties: state: type: string enum: - Enabled - Disabled example: Enabled expiryDate: type: string format: date-time example: '2026-01-15T10:30:00Z' UserPermission: type: object properties: id: type: string format: uuid example: abc123 roleId: type: string description: The permission set role ID example: '500123' displayName: type: string description: The permission set display name example: example_value company: type: string description: The company name scope example: example_value scope: type: string enum: - System - Tenant example: System appId: type: string format: uuid example: '500123' PermissionSet: type: object properties: id: type: string format: uuid example: abc123 roleId: type: string description: The permission set role ID example: '500123' displayName: type: string description: The permission set display name example: example_value scope: type: string enum: - System - Tenant example: System appId: type: string format: uuid example: '500123' extensionName: type: string example: example_value SecurityGroup: type: object properties: id: type: string format: uuid example: abc123 groupId: type: string format: uuid description: The Microsoft Entra security group ID example: '500123' code: type: string description: The security group code example: example_value displayName: type: string description: The security group display name example: example_value ConfigurationPackage: type: object properties: id: type: string format: uuid example: abc123 code: type: string description: The package code example: example_value packageName: type: string description: The package name example: example_value languageId: type: integer example: '500123' productVersion: type: string example: example_value processingOrder: type: integer example: 10 excludeConfigurationTables: type: boolean example: true numberOfTables: type: integer readOnly: true example: 10 numberOfRecords: type: integer readOnly: true example: 10 numberOfErrors: type: integer readOnly: true example: 10 importStatus: type: string readOnly: true enum: - ' ' - InProgress - Completed - Error example: ' ' applyStatus: type: string readOnly: true enum: - ' ' - InProgress - Completed - Error example: ' ' Feature: type: object properties: id: type: string description: The feature ID example: abc123 displayName: type: string description: The feature display name example: example_value description: type: string description: The feature description example: A sample description. enabled: type: boolean description: Whether the feature is enabled example: true learnMoreUrl: type: string format: uri description: URL to documentation about the feature example: https://www.example.com Profile: type: object properties: profileId: type: string description: The profile ID example: '500123' scope: type: string enum: - System - Tenant example: System caption: type: string description: The profile caption example: example_value description: type: string example: A sample description. applicationId: type: string format: uuid example: '500123' enabled: type: boolean example: true ScheduledJob: type: object properties: id: type: string format: uuid example: abc123 category: type: string description: The job category example: example_value status: type: string description: The job status example: example_value description: type: string description: The job description example: A sample description. errorMessage: type: string description: Error message if the job failed example: example_value startDateTime: type: string format: date-time example: '2026-01-15T10:30:00Z' endDateTime: type: string format: date-time example: '2026-01-15T10:30:00Z'