---
id: topic/dev-itpro/development/extensibility
type: topic
title: Extensibility
summary: "Extensibility in Business Central AL development: how to extend code flow, tables, pages, reports, enums, and permission sets without changing base code. It also covers events, requesting changes to Microsoft's code, client add-ins, Power BI embedding, and System Application modules."
tier: official
language: en
system: development
review:
  state: reviewed
  by: opus
  at: "2026-10-07T02:15:38.168Z"
  flags: []
generated:
  at: "2026-10-08T06:31:25.130Z"
  pipeline: 0.2.0
  prompts:
    hub-topic: 1
  input_hash: f9f0febd69bb6a80627476882186f3136dc82a5024ccb9eb856851082660c040
evidence:
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-contribute-extensibility
    title: Contribute a change yourself
    date: "2025-04-02"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-control-addin-bestpractices
    title: Control add-in performance best practices
    date: "2026-06-24"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-control-addin-style
    title: Control Add-in Style Guide
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/create-extensibility-request
    title: Create an extensibility request
    date: "2025-04-02"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-deprecate-external-business-events
    title: Deprecate external business events
    date: "2025-07-02"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-power-bi-report-parts
    title: Embed Power BI reports in pages
    date: "2025-05-12"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-events-example
    title: Event example
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-event-types
    title: Event types
    date: "2025-05-21"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-events-discoverability
    title: Events discoverability
    date: "2025-05-21"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extend-pages-based-on-date-virtual-table
    title: Extend Pages Based on the Date Virtual Table
    date: "2026-08-24"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-application-areas
    title: Extending Application Areas
    date: "2025-01-10"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extend-exchange-rates
    title: Extending currency exchange rate adjustments
    date: "2023-12-28"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-templates
    title: Extending Customer, Vendor, and Item Templates
    date: "2021-10-14"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-document-sharing-onedrive
    title: Extending Document Sharing and OneDrive for Business
    date: "2021-10-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-email
    title: Extending Email
    date: "2022-05-19"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extension-errors-recommendations
    title: Extending error messages with recommendations
    date: "2025-11-17"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-invoice-posting-example
    title: Extending G/L entry aggregations when posting invoices
    date: "2024-01-03"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-item-charges
    title: Extending Item Charges Distribution Methods
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-best-price-calculations
    title: Extending Price Calculations
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extending-shopify
    title: Extending Shopify
    date: "2026-09-03"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-data-archive-extension
    title: Extending the Data Archive extension
    date: "2023-12-21"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extend-edocuments
    title: Extending the e-documents functionality
    date: "2025-01-27"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extensibility-overview
    title: Extensibility overview
    date: "2026-07-02"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extensible-enums
    title: Extensible Enums
    date: "2025-05-21"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extension-object-overview
    title: Extension objects overview
    date: "2024-03-11"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-getting-started
    title: Get started with modules
    date: "2024-03-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/admin-powerbi
    title: Introduction to Business Central and Power BI
    date: "2026-06-17"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-events-isolated
    title: Isolated events in AL
    date: "2021-11-11"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-use-ishandled-min-req
    title: Minimum requirements for new IsHandled events
    date: "2025-08-29"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-notifications-developing
    title: Notifications
    date: "2025-01-21"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-page-ext-object
    title: Page extension object
    date: "2024-11-13"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-permissionset-ext-object
    title: Permission Set Extension Object
    date: "2025-06-02"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-publish-code-customization
    title: Publishing a code-customized Base Application
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-publishing-events
    title: Publishing Events
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-raising-events
    title: Raising Events
    date: "2021-04-01"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-report-ext-object
    title: Report extension object
    date: "2024-11-11"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-subscribing-to-events
    title: Subscribing to events
    date: "2024-04-18"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-table-ext-object
    title: Table extension object
    date: "2024-04-17"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-application-app-file
    title: The Microsoft_Application.app file
    date: "2024-01-16"
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/types-of-events-for-extensibility
    title: Types of events for extensibility
    date: "2025-08-15"
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extensibility-overview
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extension-object-overview
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-getting-started
  objects:
    - object/page/4500
    - object/page/4503
    - object/page/4504
    - object/page/4511
    - object/page/4512
    - object/page/6103
    - object/page/6133
    - object/page/6316
    - object/page/6317
  features: []
  topics:
    - topic/dev-itpro/development
    - topic/dev-itpro/development/extensibility/extensibility-requests
    - topic/dev-itpro/development/extensibility/extending-al-objects
    - topic/dev-itpro/development/extensibility/extending-the-base-application
    - topic/dev-itpro/development/extensibility/using-events
    - topic/dev-itpro/development/extensibility/developing-client-add-ins
    - topic/dev-itpro/development/extensibility/embedding-power-bi
  localizations: []
  videos:
    - video/QGIr_XPp8lk
    - video/uxYuoJP-uH8
  posts:
    - post/thatnavguy-com/https-thatnavguy-com-blog-2026-bc-friday-tips-75-dynamics-bc-excel-reports--cd3c716212
  guidelines: []
  changes:
    - change/bcapps/10058
    - change/bcapps/8085
    - change/bcapps/8115
    - change/bcapps/8634
    - change/bcapps/9272
learn_toc_path:
  - Development
  - Extensibility
toc_file: dev-itpro/TOC.md
parent: topic/dev-itpro/development
children:
  - topic/dev-itpro/development/extensibility/extensibility-requests
  - topic/dev-itpro/development/extensibility/extending-al-objects
  - topic/dev-itpro/development/extensibility/extending-the-base-application
  - topic/dev-itpro/development/extensibility/using-events
  - topic/dev-itpro/development/extensibility/developing-client-add-ins
  - topic/dev-itpro/development/extensibility/embedding-power-bi
coverage:
  learn: 42
  code: 9
  video: 2
  blog: 1
  guideline: 0
bc_forms:
  - 4500
  - 4503
  - 4504
  - 4511
  - 4512
  - 6103
  - 6133
  - 6316
  - 6317
member_hash: e63799d0490adc0aa7ab352fb77c426572f14cdf906996d0533152b72c13ec1e
narrative: generated
---

# Extensibility

> Extensibility in Business Central AL development: how to extend code flow, tables, pages, reports, enums, and permission sets without changing base code. It also covers events, requesting changes to Microsoft's code, client add-ins, Power BI embedding, and System Application modules.

Path: [Development](../development.md) > Extensibility · tier official · system development · narrative reviewed (checked by Opus)

## Overview

Extensibility is the section for AL developers who need to change or add to Business Central behavior without modifying base code. The overview page lists the options: extending code flow through events, adding table fields, modifying page layout, extending reports, creating permission sets, and extending enumerations. The extension objects overview explains how table, page, report, enum, and permission set extension objects add fields, actions, layout, and values to existing objects.

The subtopics go deeper. Extending AL objects covers page, table, report, enum, and permission set extensions, plus event types and application areas. Extending the base application is the largest subtopic, with 15 pages. Using events covers event types, publishing, raising, subscribing, isolated events, the Event Recorder, deprecating external business events, UI notifications, and a workflow events walkthrough. Extensibility requests explains how to ask Microsoft for changes to the AL codebase through the BCApps repository. It covers designing and justifying new events, including IsHandled events, and contributing a change directly. Developing client add-ins covers performance and styling of control add-ins. Embedding Power BI covers putting Power BI reports, scorecards, and dashboards on Business Central pages.

Start with the Extensibility overview, then the extension objects overview. Move to Using events when you need to hook into existing logic. Use Get started with modules if you want to build or change System Application modules in the open-source repository.

## Key points

- Extension objects: table, page, report, enum, and permission set extensions add fields, actions, layout, and values to existing objects.
- Code flow is extended through events. The Using events subtopic covers publishing, raising, subscribing, isolated events, and the Event Recorder for finding events.
- Extensibility requests describes how to ask Microsoft for changes to the AL codebase through the BCApps repository. It covers how to justify new events, including IsHandled events, and how to contribute a change directly.
- Get started with modules covers System Application module development: AL requirements, Git, environment setup, and building or modifying modules.
- Client add-in guidance covers performance (AL trigger invocation, callbacks, payload size) and styling (colors, typography, CSS).
- Embedding Power BI covers embedding reports, scorecards, and dashboards in pages, including the embed framework and context handling.
- The extension objects overview covers the Extensible property, and Extending AL objects also covers application areas.

## Subtopics

- [Extensibility requests](extensibility/extensibility-requests.md) (5 pages)
- [Extending AL objects](extensibility/extending-al-objects.md) (7 pages)
- [Extending the base application](extensibility/extending-the-base-application.md) (15 pages)
- [Using events](extensibility/using-events.md) (10 pages)
- [Developing client add-ins](extensibility/developing-client-add-ins.md) (2 pages)
- [Embedding Power BI](extensibility/embedding-power-bi.md) (2 pages)

## More Learn pages

- [Extensibility overview](https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extensibility-overview): How you can extend functionality in Dynamics 365 Business Central.
- [Extension objects overview](https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-extension-object-overview): Get an overview of the extension objects you can create in AL for Business Central.
- [Get started with modules](https://learn.microsoft.com/dynamics365/business-central/dev-itpro/developer/devenv-getting-started): Provides an overview of what you need to work with modules in the System Application.

## Videos, posts and code changes

Linked by a Haiku matcher with a grounding quote from the item's summary (link/topics.ts); machine-generated.

- [#10058 [Master]-Withholding Tax Posting generates Unbalanced G/L Entries when Multiple Withholding Tax Rates are used on one Purchase Invoice.](../../../changes/bcapps/10058.md) (code change): "Fixes unbalanced G/L entries when one purchase invoice uses several withholding tax rates"
- [#8085 [MCP] Server Features in MCP configuration: API Tools, Dynamic Tool Mode, Data Query Tools (Preview)](../../../changes/bcapps/8085.md) (code change): "Server Features surface to MCP configuration allowing admins to enable Data Query Tools"
- [#8115 Subscription Billing: respect Default Dimension Priorities on Subscription Lines](../../../changes/bcapps/8115.md) (code change): "Subscription Billing now respects Default Dimension Priorities when creating subscription lines"
- [#8634 [MCP] Register MCP server as a Copilot capability](../../../changes/bcapps/8634.md) (code change): "MCP server is now registered as a Copilot capability"
- [#9272 Fix duplicate in-transit location in localized Contoso demo data](../../../changes/bcapps/9272.md) (code change): "Replaced the warehousing module's independent in-transit location definition"
- [BC Friday Tips #75 Dynamics BC Excel Reports](../../../posts/thatnavguy-com/https-thatnavguy-com-blog-2026-bc-friday-tips-75-dynamics-bc-excel-reports--cd3c716212.md) (community post): "Excel Reports objects in Business Central belong to the Dynamics BC Excel Reports extension"
- [What's New: Extending E-Documents with New Interface (2025 release wave 1)](../../../videos/QGIr_XPp8lk.md) (video): "Extending E-Documents with New Interface; interfaces; api design"
- [Let's pass MB-820: Episode 19 - Extend ApplicationArea with custom areas](../../../videos/uxYuoJP-uH8.md) (video): "Application Area extension; Enable custom area function; Application area validation"

## Business Central pages and reports

The pages, reports and queries this hub's Learn pages name (ms.search.form, API reference), joined to the code by exact object id (data/index/docs-objects.json); a page shows the table it runs on.

- [Page 4500 "Current User Email Account"](../../../objects/page/4500.md) · on [Table 4508 "Email - Outlook Account"](../../../objects/table/4508.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 4503 "Microsoft 365 Email Account"](../../../objects/page/4503.md) · on [Table 4508 "Email - Outlook Account"](../../../objects/table/4508.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 4504 "Microsoft 365 Email Wizard"](../../../objects/page/4504.md) · captioned "Set up Microsoft 365 email account" · on [Table 4508 "Email - Outlook Account"](../../../objects/table/4508.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 4511 "SMTP Account Wizard"](../../../objects/page/4511.md) · captioned "Set up SMTP Account" · on [Table 4511 "SMTP Account"](../../../objects/table/4511.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 4512 "SMTP Account"](../../../objects/page/4512.md) · on [Table 4511 "SMTP Account"](../../../objects/table/4511.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 6103 "E-Document Services"](../../../objects/page/6103.md) · on [Table 6103 "E-Document Service"](../../../objects/table/6103.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 6133 "E-Document Service"](../../../objects/page/6133.md) · on [Table 6103 "E-Document Service"](../../../objects/table/6103.md) · via [Extending the base application](extensibility/extending-the-base-application.md)
- [Page 6316 "Sustainability Report Power BI"](../../../objects/page/6316.md) · captioned "Sustainability Report (Power BI)" · via [Embedding Power BI](extensibility/embedding-power-bi.md)
- [Page 6317 "To Net Zero Carbon Power BI"](../../../objects/page/6317.md) · captioned "Journey to Net Zero Carbon (Power BI)" · via [Embedding Power BI](extensibility/embedding-power-bi.md)

Source: Microsoft Learn (CC BY 4.0). Descriptions are Learn's own.
