openapi: 3.1.0 info: title: Business Central Administration Center Accounts Extension Upload API description: REST API for programmatic administration of Dynamics 365 Business Central environments. Enables querying and managing production and sandbox environments, setting up administrative notifications, viewing tenant telemetry, managing apps, scheduling updates, and performing environment operations such as copy, rename, restore, and delete. version: '2.28' 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 servers: - url: https://api.businesscentral.dynamics.com/admin/v2.28 description: Business Central Administration Center security: - oauth2: [] - bearerAuth: [] tags: - name: Extension Upload description: Upload and install per-tenant extensions paths: /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 components: parameters: ifMatch: name: If-Match in: header required: true description: ETag value for optimistic concurrency control schema: type: string company_id: name: company_id in: path required: true description: The unique identifier of the company schema: type: string format: uuid responses: Unauthorized: description: Unauthorized - authentication required 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 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 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 Admin APIs clientCredentials: tokenUrl: https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token scopes: https://api.businesscentral.dynamics.com/.default: Access Business Central Admin APIs bearerAuth: type: http scheme: bearer bearerFormat: JWT externalDocs: description: Administration Center API Documentation url: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/administration-center-api