Contributing
June 26, 2026 · View on GitHub
BCApps is the single home for Business Central application development. Whether you want to improve the System Application, the Business Foundation, the Base Application, one of Microsoft's first-party apps, or the developer tools, this is the place to do it — side-by-side with the Microsoft product team and the rest of the community.
What to contribute
This project primarily welcomes contributions of two types:
- Pull Requests for pre-approved features, which are based on BC Ideas (http://aka.ms/bcideas) that have been picked as candidates for code contribution projects.
- Pull Requests with fixes and improvements addressing pre-approved issues, which are non-customer reported.
In either case, an approved GitHub issue in state "approved", must exist, before a Pull Request can be created. Once a Pull Request is created it must be linked to a GitHub issue.
⚠IMPORTANT⚠: This is not the right place to report product defects with customer impact to Microsoft! Issues created in this repository won't get picked up by the Microsoft engineering team and issues reported in this repository do not fall under SLAs (Service Level Agreements) and hence have no guaranteed time to mitigation, just as provided fixes won't get backported to all supported versions of the product.
If your customers are experiencing product defects or you have discovered a severe issue in the product, please follow the steps outlined in "Technical Support for Dynamics 365 Business Central" to get your issue routed to the right team at Microsoft and to get it treated with the right priority.
How to contribute
In the case that you would like to contribute code to this project, you first must establish what kind of contribution we're dealing with:
A) A small bug fix, product improvement, paper cut, conveniences customers just can't live without, things you've been fixing for years and from version to version, things you are now forced to create as per tenant extension and which you can't monetize or things you're just tired of fixing over and over again.
B) New capabilities or implementations of larger changes to the existing application platform.
Let's take a look at what it takes to contribute with A):
-
Create a new issue
Before a Pull Request can be created, it is required to have an issue registered, which has been approved for development by Microsoft. This is done to ensure that community members aren't wasting their time on writing code, which later cannot be accepted.
-
Wait for approval
Now that your issue is registered, Microsoft will triage your issue and either approve or reject it. An approved issue will have a label "approved".
-
Create a Pull Request
Now a Pull Request can be created. It is important that the Pull Request is linked to an approved issue. In order to link a issue to a PR, please add "Fixes #" followed by the issue ID. E.g. "Fixes #123". Pull Requests which aren't linked to approved issues will get rejected.
If it is your first contribution, you are required to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com. When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the Pull Request appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
Before creating a Pull Request, you might want to verify your changes work as expected. Refer to Local Development Environment guidelines for more info.
-
Get a succesful build and code review approval
Before your Pull Request can be merged, it must have successful required status checks, all conversations resolved and an approval from a code owner. BCApps builds and tests run automatically through AL-Go for GitHub, and an automated Copilot code review agent inspects each PR and posts review comments against shared best practices (see
tools/Code Reviewand BCQuality). The human code review can be done by both Microsoft and members of the community. This ensures that quality of the code is on par with Microsoft's and the community's standards. -
Final validation
Before the code can be deployed, Microsoft will do a final validation of the Pull Request and issue. Should the change be mentioned in the release notes? Did some of the initially planned work spill over? Is the work on the issue truly done/done?
-
Merge the Pull Request
You've reached the end! When the Pull Request is completed and merged, the change will ship with an upcoming release of the product.
If you would like to add new capabilities to the product as described in B), the process is similar to A), except you need to link your issue to a idea on BCIdeas. Therefore, the process is as follows:
- Find or register your idea on BCIdeas
- Start by searching for existing approved issues here on GitHub related to your idea. If you cannot find an approved issue, look for existing ideas on BCIdeas, which cover the scenario your were thinking about implementing; ideally ideas with some votes. If you find an idea you'd like to use as open source contribution issue, inform Microsoft that you intend to do a contribution and a product manager will tag the idea. In the less likely event that you don't find any idea which points in the direction of the feature you intended to work on, you can go ahead and log a new idea, describing the new capability you would like to add to the product. Don't forget mention that the idea is suitable for open source contribution.
- Wait for approval: If you created a new idea, a Microsoft product manager will revise the idea. If the idea is aligned with the strategy of the application platform and is considered feasible to implement, the idea will get approved and marked as "open for contribution". Once the idea has "open for contribution" mentioned as part of idea title, an issue will be created and approved immediately in this repository.
- Find allies: If you reused an existing idea, check Application Functionality group on Business Central Yammer portal for any input from other partners (just search for idea title). There you can also find partners in crime (= other developers with same issue) that can help with the development or review of your future PR.
-
Get the issue into "approved" state
Once the issue is created on GitHub, it still needs to be approved. Once approved, the rest of the process is identical to the process described in A).
Get to know the codebase
BCApps spans the whole Business Central application platform, so the right starting point depends on what you're changing.
Working on the System Application? Familiarize yourself with the following sites on Microsoft Learn:
- Module architecture
- Get started with modules
- Set up your development environment
- Create a new module
- Create a .NET wrapper module
- Change a module
Working on the Base Application, a first-party app, or a developer tool? Many apps under src/Apps and src/Tools ship their own README.md describing their architecture and test setup — start there. The whole repository is built and tested with AL-Go for GitHub; the AL-Go projects are defined under build/projects.
More Resources
-
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
-
If you are a beginner at contributing, start by following the GitHub guidelines.
-
If you are new to developing for Business Central, visit Developers Learning Catalog.