Microsoft Dynamics 365 Business Central – Gotchas

Service ID: microsoft-dynamics-365-business-central

Microsoft Dynamics 365 Business Central is an enterprise resource planning (ERP) system focused on mid & large scale businesses.

⚠️

20 gotchas across 20 resources

These are connector-specific behaviors and limitations to be aware of when integrating.

Attachments1 gotcha

allattachmentsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

allbankAccountsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

allbillPaymentsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Bills1 gotcha

addbillsAdd

When a line omits tax_rate, the VAT group configured on the G/L Account Card applies. A foreign vendor's VAT business posting group can zero the line VAT regardless of the tax_rate sent. In U.S.-localized tenants the returned tax_inclusive reads false even when true was sent; line amounts are still computed inclusive of the sent tax rate, so totals match what was sent. A '400 Bad Request' error "Control 'fieldName' is read-only" means that field's 'editable' property is disabled in Business Central.

Categories1 gotcha

allcategoriesAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Companies1 gotcha

allcompaniesAll

meta.total_count requires $count=true OData parameter — not currently implemented. meta.total_count will not appear.

Credit Notes1 gotcha

addcreditNotesAdd

tax_inclusive cannot be set on sales documents — the returned value reflects the Customer Card's "Prices Including VAT" setting. When tax_inclusive: true is sent for a document stored as tax-exclusive, line unit_price is written as its net value so the document totals match the sent tax-inclusive amounts. When a line omits tax_rate, the VAT group configured on the Item or G/L Account Card applies. A foreign customer's VAT business posting group can zero the line VAT regardless of the tax_rate sent. A '400 Bad Request' error "Control 'fieldName' is read-only" means that field's 'editable' property is disabled in Business Central.

Customers1 gotcha

allcustomersAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Employees1 gotcha

allemployeesAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Expenses1 gotcha

addexpensesAdd

Employee account type: set account.type to "employee" and account.id to the employee number (or GUID, which will be resolved automatically). Note: reading back the expense will NOT return the employee reference — employee payment lines are invisible in BC's API for draft entries, and resolve to a GL payable account when posted.

allinvoiceItemsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Invoices1 gotcha

addinvoicesAdd

tax_inclusive cannot be set on sales documents — the returned value reflects the Customer Card's "Prices Including VAT" setting. When tax_inclusive: true is sent for a document stored as tax-exclusive, line unit_price is written as its net value so the document totals match the sent tax-inclusive amounts. When a line omits tax_rate, the VAT group configured on the Item or G/L Account Card applies. A foreign customer's VAT business posting group can zero the line VAT regardless of the tax_rate sent. A '400 Bad Request' error "Control 'fieldName' is read-only" means that field's 'editable' property is disabled in Business Central.

addjournalEntriesAdd

Employee account type: journal entry lines can reference employees via the employee field (use display_id for the employee number, or id with a GUID which will be resolved automatically). Note: reading back the journal entry will NOT return the employee reference — employee lines are invisible in BC's API for draft entries, and resolve to a GL payable account when posted. Send ledger_account: {} alongside the employee field to satisfy schema validation.

allledgerAccountsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Locations1 gotcha

alllocationsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

Payments1 gotcha

allpaymentsAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

addpurchaseOrdersAdd

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central.

Suppliers1 gotcha

addsuppliersAdd

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central.

Tax Rates1 gotcha

alltaxRatesAll

If you encounter a '400 Bad Request' error indicating "Control 'fieldName' is read-only" it means the 'editable' property for this field in Microsoft Dynamics 365 Business Central is currently set to false. To resolve this issue and make the field writable, simply update the 'editable' property to true in Microsoft Dynamics 365 Business Central. Additionally, line item tax rates must be specified by tax rate code (e.g., "G3"), not by ID. In U.S.-regionalized Business Central tenants, the tax_inclusive field cannot be set to true.

alltrackingCategoriesAll

The limit parameter is ignored. All tracking categories (parent dimensions and their Standard dimension values) are always returned in a single response. Non-Standard dimension value types (Begin-Total, End-Total, Heading, Total) are excluded as they cannot be assigned to transactions.