Microsoft Dynamics 365 Business Central – Gotchas
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
attachmentsAllIf 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.
Bank Accounts1 gotcha
bankAccountsAllIf 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.
Bill Payments1 gotcha
billPaymentsAllIf 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
billsAddWhen 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
categoriesAllIf 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
companiesAllmeta.total_count requires $count=true OData parameter — not currently implemented. meta.total_count will not appear.
Credit Notes1 gotcha
creditNotesAddtax_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
customersAllIf 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
employeesAllIf 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
expensesAddEmployee 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.
Invoice Items1 gotcha
invoiceItemsAllIf 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
invoicesAddtax_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.
Journal Entries1 gotcha
journalEntriesAddEmployee 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.
Ledger Accounts1 gotcha
ledgerAccountsAllIf 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
locationsAllIf 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
paymentsAllIf 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.
Purchase Orders1 gotcha
purchaseOrdersAddIf 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
suppliersAddIf 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
taxRatesAllIf 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.
Tracking Categories1 gotcha
trackingCategoriesAllThe 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.