# Microsoft Dynamics 365 Business Central — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/microsoft-dynamics-365-business-central/overview

Microsoft Dynamics 365 Business Central is an enterprise resource planning (ERP) system focused on mid & large scale businesses.
- Status: live
- Authentication: oauth2

- **account type required:** Business Central online (SaaS), any edition — on-premises deployments are not supported.
- **apideck credentials available:** true
- **apideck credentials note:** For testing: OAuth shows "Apideck" as the requesting application. Production is bring-your-own Entra app.
- **authentication note:** Authorization Code flow via a Microsoft Entra ID app registration.
- **consumer access level:** Any Business Central user can authorize; a Microsoft Entra admin grants consent once per tenant.
- **costs:** Microsoft publishes no separate API pricing; API access comes with the consumer's Business Central licence.
- **difficulty:** moderate
- **difficulty reason:** Self-Service OAuth + Required Per-Consumer Environment & Company Setup
- **environment notes:**   - **description:** Business Central uses one credential structure for both: the Environment the consumer selects during setup (Sandbox or Production) decides which instance is accessed, and there are no separate development credentials. To test, use a free 30-day Business Central trial, a sandbox environment included with an active Essentials or Premium subscription (CRONUS demo data or a copy of production data, created in the Business Central admin center), or a Microsoft Business Central Partner Sandbox license. Per-user rate limits apply in every environment, so take care when testing against a company that holds production data.
  - **environment:** Single environment (sandbox and production share the same credential structure)
- **important to know:** Purchase orders post as header-only documents: line items are accepted on write but never reach Business Central. Reads return line items correctly.
Posting-group fields (Vendor Posting Group, and the G/L Account Card's posting groups) are not settable through the API: configure them in Business Central — or link a Vendor Template in API Setup — before creating suppliers, bills, or expenses.
Two silent-breakage traps: an Entra client secret expires after at most 24 months (rotate it, or every connection on that app stops working), and a refresh token expires after 90 days of inactivity, so dormant connections need re-authorizing.
- **partnership note:** Any Microsoft Entra ID app registration can connect; there is no partner programme or app review.
- **partnership required:** false
- **partnership url:** https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
- **rate limits:** 6,000 requests per user per 5-minute sliding window; 5 concurrent requests per user.
- **responsibility matrix:**   - **apideck:** Docs provided
  - **area:** Register App in Microsoft Entra
  - **customer:** ✓ (or use Apideck credentials)
  - **apideck:** Docs provided
  - **area:** Grant Admin Consent
  - **consumer:** ✓ (Entra admin)
  - **area:** Rotate Client Secret
  - **customer:** ✓ (before expiry)
  - **area:** Add Credentials to Apideck
  - **customer:** ✓ (or use Apideck credentials)
  - **apideck:** Handles OAuth flow
  - **area:** Authorize Connection (OAuth)
  - **consumer:** ✓
  - **apideck:** Prompts in Vault
  - **area:** Select Environment & Company
  - **consumer:** ✓
  - **apideck:** Maintains connector
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** ✓ Automatic
  - **area:** Token Refresh
  - **apideck:** Logs & alerts
  - **area:** Monitor Connections
  - **consumer:** ✓ Can revoke anytime
  - **customer:** ✓ Via Apideck Dashboard
- **sandbox available:** true
- **sandbox note:** Free 30-day trial (fastest route), or up to three sandbox environments included with an active Essentials or Premium subscription.
- **sandbox url:** https://learn.microsoft.com/en-us/dynamics365/business-central/admin-sandbox-environments
- **supported resource categories:**   - **name:** Core Financial
  - **resources:** ledger-accounts
journal-entries
tax-rates
tracking-categories
bank-accounts
company-info
companies
  - **name:** Accounts Receivable
  - **resources:** invoices
credit-notes
payments
customers
invoice-items
  - **name:** Accounts Payable
  - **resources:** bills
bill-payments
bill-credit-notes
purchase-orders
suppliers
expenses
  - **name:** Organizational
  - **resources:** locations
employees
  - **name:** Other
  - **resources:** attachments
- **webhooks:** No webhooks — Business Central changes must be polled.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** false
- **downstream id:** sales-invoice
- **downstream name:** Sales Invoice
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** false
- **downstream id:** purchase-invoices
- **downstream name:** Purchase Invoices
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** false
- **downstream id:** bill-payments
- **downstream name:** Bill Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** false
- **downstream id:** sales-credit-memos
- **downstream name:** Sales Credit Memos
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** false
- **downstream id:** bill-credit-notes
- **downstream name:** Bill Credit Notes
- **id:** bill-credit-notes
- **name:** Bill Credit Notes
- **status:** beta
- **custom field support:** false
- **downstream id:** customer-payment-journals
- **downstream name:** Customer Payment Journals
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** false
- **downstream id:** items
- **downstream name:** Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** false
- **downstream id:** customers
- **downstream name:** Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** false
- **downstream id:** vendors
- **downstream name:** Vendors
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** false
- **downstream id:** accounts
- **downstream name:** Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** false
- **downstream id:** purchase-orders
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **name:** Purchase Orders
- **status:** live
- **custom field support:** false
- **downstream id:** goods-receipts
- **downstream name:** Goods Receipts
- **id:** goods-receipts
- **name:** Goods Receipts
- **status:** beta
- **custom field support:** false
- **downstream id:** tax-groups
- **downstream name:** Tax Groups
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** false
- **downstream id:** fiscal-periods
- **downstream name:** Fiscal Periods
- **id:** fiscal-periods
- **name:** Fiscal Periods
- **status:** beta
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta
- **custom field support:** false
- **downstream id:** company-information
- **downstream name:** Company Information
- **id:** company-info
- **name:** Company Info
- **status:** live
- **custom field support:** false
- **downstream id:** locations
- **downstream name:** Locations
- **id:** locations
- **name:** Locations
- **status:** live
- **custom field support:** false
- **downstream id:** companies
- **downstream name:** Companies
- **id:** companies
- **name:** Companies
- **status:** beta
- **custom field support:** false
- **downstream id:** dimensions
- **downstream name:** Dimensions
- **id:** tracking-categories
- **name:** Tracking Categories
- **status:** live
- **custom field support:** false
- **downstream id:** attachments
- **downstream name:** Attachments
- **id:** attachments
- **name:** Attachments
- **status:** live
- **custom field support:** false
- **downstream id:** journal-entries
- **downstream name:** Journal Entries
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** false
- **downstream id:** expenses
- **downstream name:** Expenses
- **id:** expenses
- **name:** Expenses
- **status:** live
- **custom field support:** false
- **downstream id:** journals
- **downstream name:** Journals
- **id:** journals
- **name:** Journals
- **status:** beta
- **custom field support:** false
- **downstream id:** bank-accounts
- **downstream name:** Bank Accounts
- **id:** bank-accounts
- **name:** Bank Accounts
- **status:** beta
- **custom field support:** false
- **downstream id:** employees
- **downstream name:** Employees
- **id:** employees
- **name:** Employees
- **status:** beta

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
