openapi: 3.1.0 info: title: Business Central Administration Center Accounts Items 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: Items description: Manage inventory items paths: /companies({company_id})/items: get: summary: List Items description: Returns a list of item objects from the specified company. operationId: listItems tags: - Items parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/top' - $ref: '#/components/parameters/skip' - $ref: '#/components/parameters/filter' - $ref: '#/components/parameters/orderby' - $ref: '#/components/parameters/select' responses: '200': description: Successfully retrieved items content: application/json: schema: type: object properties: value: type: array items: $ref: '#/components/schemas/Item' examples: Listitems200Example: summary: Default listItems 200 response x-microcks-default: true value: value: - '@odata.etag': example_value id: abc123 number: example_value displayName: example_value displayName2: example_value type: Inventory itemCategoryId: '500123' itemCategoryCode: example_value blocked: true gtin: example_value inventory: 42.5 unitPrice: 42.5 priceIncludesTax: true unitCost: 42.5 taxGroupId: '500123' taxGroupCode: example_value baseUnitOfMeasureId: '500123' baseUnitOfMeasureCode: example_value generalProductPostingGroupId: '500123' generalProductPostingGroupCode: example_value inventoryPostingGroupId: '500123' inventoryPostingGroupCode: example_value lastModifiedDateTime: '2026-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: summary: Create an Item description: Creates a new item object in the specified company. operationId: createItem tags: - Items parameters: - $ref: '#/components/parameters/company_id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ItemCreate' examples: CreateitemRequestExample: summary: Default createItem request x-microcks-default: true value: number: example_value displayName: example_value type: Inventory itemCategoryCode: example_value blocked: true gtin: example_value unitPrice: 42.5 unitCost: 42.5 taxGroupCode: example_value baseUnitOfMeasureCode: example_value responses: '201': description: Item created successfully content: application/json: schema: $ref: '#/components/schemas/Item' examples: Createitem201Example: summary: Default createItem 201 response x-microcks-default: true value: '@odata.etag': example_value id: abc123 number: example_value displayName: example_value displayName2: example_value type: Inventory itemCategoryId: '500123' itemCategoryCode: example_value blocked: true gtin: example_value inventory: 42.5 unitPrice: 42.5 priceIncludesTax: true unitCost: 42.5 taxGroupId: '500123' taxGroupCode: example_value baseUnitOfMeasureId: '500123' baseUnitOfMeasureCode: example_value generalProductPostingGroupId: '500123' generalProductPostingGroupCode: example_value inventoryPostingGroupId: '500123' inventoryPostingGroupCode: example_value lastModifiedDateTime: '2026-01-15T10:30:00Z' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /companies({company_id})/items({item_id}): get: summary: Get an Item description: Retrieves a specific item by ID. operationId: getItem tags: - Items parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/item_id' - $ref: '#/components/parameters/select' responses: '200': description: Successfully retrieved item content: application/json: schema: $ref: '#/components/schemas/Item' examples: Getitem200Example: summary: Default getItem 200 response x-microcks-default: true value: '@odata.etag': example_value id: abc123 number: example_value displayName: example_value displayName2: example_value type: Inventory itemCategoryId: '500123' itemCategoryCode: example_value blocked: true gtin: example_value inventory: 42.5 unitPrice: 42.5 priceIncludesTax: true unitCost: 42.5 taxGroupId: '500123' taxGroupCode: example_value baseUnitOfMeasureId: '500123' baseUnitOfMeasureCode: example_value generalProductPostingGroupId: '500123' generalProductPostingGroupCode: example_value inventoryPostingGroupId: '500123' inventoryPostingGroupCode: example_value lastModifiedDateTime: '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 an Item description: Updates an existing item object. operationId: updateItem tags: - Items parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/item_id' - $ref: '#/components/parameters/ifMatch' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ItemUpdate' examples: UpdateitemRequestExample: summary: Default updateItem request x-microcks-default: true value: displayName: example_value type: Inventory itemCategoryCode: example_value blocked: true gtin: example_value unitPrice: 42.5 unitCost: 42.5 taxGroupCode: example_value baseUnitOfMeasureCode: example_value responses: '200': description: Item updated successfully content: application/json: schema: $ref: '#/components/schemas/Item' examples: Updateitem200Example: summary: Default updateItem 200 response x-microcks-default: true value: '@odata.etag': example_value id: abc123 number: example_value displayName: example_value displayName2: example_value type: Inventory itemCategoryId: '500123' itemCategoryCode: example_value blocked: true gtin: example_value inventory: 42.5 unitPrice: 42.5 priceIncludesTax: true unitCost: 42.5 taxGroupId: '500123' taxGroupCode: example_value baseUnitOfMeasureId: '500123' baseUnitOfMeasureCode: example_value generalProductPostingGroupId: '500123' generalProductPostingGroupCode: example_value inventoryPostingGroupId: '500123' inventoryPostingGroupCode: example_value lastModifiedDateTime: '2026-01-15T10:30:00Z' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: summary: Delete an Item description: Deletes an item by ID. operationId: deleteItem tags: - Items parameters: - $ref: '#/components/parameters/company_id' - $ref: '#/components/parameters/item_id' responses: '204': description: Item deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: ItemCreate: type: object required: - displayName properties: number: type: string maxLength: 20 example: example_value displayName: type: string maxLength: 100 example: example_value type: type: string enum: - Inventory - Service - Non-Inventory example: Inventory itemCategoryCode: type: string maxLength: 20 example: example_value blocked: type: boolean example: true gtin: type: string maxLength: 14 example: example_value unitPrice: type: number format: decimal example: 42.5 unitCost: type: number format: decimal example: 42.5 taxGroupCode: type: string maxLength: 20 example: example_value baseUnitOfMeasureCode: type: string maxLength: 10 example: example_value Item: type: object properties: '@odata.etag': type: string example: example_value id: type: string format: uuid description: The unique identifier of the item example: abc123 number: type: string description: The item number maxLength: 20 example: example_value displayName: type: string description: The item display name maxLength: 100 example: example_value displayName2: type: string description: The item display name 2 maxLength: 50 example: example_value type: type: string description: The item type enum: - Inventory - Service - Non-Inventory example: Inventory itemCategoryId: type: string format: uuid description: The item category ID example: '500123' itemCategoryCode: type: string description: The item category code maxLength: 20 example: example_value blocked: type: boolean description: Whether the item is blocked example: true gtin: type: string description: The Global Trade Item Number maxLength: 14 example: example_value inventory: type: number format: decimal description: The current inventory quantity readOnly: true example: 42.5 unitPrice: type: number format: decimal description: The unit price example: 42.5 priceIncludesTax: type: boolean description: Whether the price includes tax example: true unitCost: type: number format: decimal description: The unit cost example: 42.5 taxGroupId: type: string format: uuid description: The tax group ID example: '500123' taxGroupCode: type: string description: The tax group code maxLength: 20 example: example_value baseUnitOfMeasureId: type: string format: uuid description: The base unit of measure ID example: '500123' baseUnitOfMeasureCode: type: string description: The base unit of measure code maxLength: 10 example: example_value generalProductPostingGroupId: type: string format: uuid example: '500123' generalProductPostingGroupCode: type: string maxLength: 20 example: example_value inventoryPostingGroupId: type: string format: uuid example: '500123' inventoryPostingGroupCode: type: string maxLength: 20 example: example_value lastModifiedDateTime: type: string format: date-time readOnly: true example: '2026-01-15T10:30:00Z' ItemUpdate: type: object properties: displayName: type: string maxLength: 100 example: example_value type: type: string enum: - Inventory - Service - Non-Inventory example: Inventory itemCategoryCode: type: string maxLength: 20 example: example_value blocked: type: boolean example: true gtin: type: string maxLength: 14 example: example_value unitPrice: type: number format: decimal example: 42.5 unitCost: type: number format: decimal example: 42.5 taxGroupCode: type: string maxLength: 20 example: example_value baseUnitOfMeasureCode: type: string maxLength: 10 example: example_value ErrorResponse: type: object properties: error: type: object properties: code: type: string description: A stable error code message: type: string description: A human-readable error message example: example_value parameters: ifMatch: name: If-Match in: header required: true description: ETag value for optimistic concurrency control schema: type: string filter: name: $filter in: query description: OData filter expression schema: type: string orderby: name: $orderby in: query description: OData order by expression schema: type: string company_id: name: company_id in: path required: true description: The unique identifier of the company schema: type: string format: uuid item_id: name: item_id in: path required: true description: The unique identifier of the item schema: type: string format: uuid skip: name: $skip in: query description: Number of items to skip schema: type: integer minimum: 0 select: name: $select in: query description: Comma-separated list of properties to include in the response schema: type: string top: name: $top in: query description: Maximum number of items to return schema: type: integer minimum: 0 responses: Unauthorized: description: Unauthorized - authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request - invalid input content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 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