Portal/Instance Identifier
Base URL:
Sandbox URL:
https://api.businesscentral.dynamics.com
Table of Contents
Customer Endpoints
Get a Customer by Id: (GET)
[Base URL]/api/v2.0/companies({company-id})/customers({customer-id})
Get a Customer by Number: (GET)
[Base URL]/api/v2.0/companies({company-id })/customers?$filter=number eq {customer-number}
Get ODatav4 Customer by Number: (GET)
[Base URL]/ODataV4/Company({company-name})/CustomerCard({customer-no})
Create ODatav4 Customer (POST)
[Base URL]/ODataV4/Company({company-name})/CustomerCard
Update a Customer (PATCH)
[Base URL]/ODataV4/Company({company-name})/CustomerCard({customer-no})
Poll Customers by LastModifiedDateTime (GET)
[Base URL]/api/v2.0/companies({companyId})/customers?$top={Limit}&$skip={Page * Limit}&$filter=type eq 'Person' and lastModifiedDateTime ge {utcTimeString}
Customer Categories Endpoints
Get All Customer Categories: (GET)
[Base URL]/api/v2.0/companies({company-name})/CustomerPriceGroups
Poll Customers Categories: (GET)
[Base URL]/ /ODataV4/Company('{companyName}')/CustomerPriceGroups?$top={Limit}&$skip={Page * Limit}
Company Endpoints
Get a Company by Number (GET)
[Base URL]/api/v2.0/companies/{company-id}/customers?$filter=number eq {customer-number}
Create a Company (POST)
[Base URL]/ODataV4/Company({company-name})/CustomerCard
Get a Company by Id (GET)
[Base URL]/api/v2.0/companies/{company-id}/customers({customer-id})
Update a Company (PATCH)
[Base URL]/ODataV4/Company({company-name})/CustomerCard({customer-no})
Poll Companies by lastModifiedDateTime (GET)
[Base URL]/api/v2.0/companies({companyId})/customers?$top={Limit}&$skip={Page * Limit}&$filter=type eq 'Company' and lastModifiedDateTime ge {utcTimeString}
Contact Endpoints (Company Relationship in iPaaS)
Get a Contact by Number (GET)
[Base URL]/api/v2.0/companies/{company-id}/contacts?$filter=number eq {contact-number}
Get a Contact by Company Number (GET)
[Base URL]/ODataV4/Company({company-name})/contacts?$filter=Type eq 'Person' and CompanyNo eq {company-number}
Get Contacts by LastModifiedDateTime (GET)
[Base URL]/ODataV4/Company({company-name})/contacts?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime ge {utcTimeString}
Poll Contacts by LastModifiedDateTime (GET)
[Base URL]/api/v2.0/companies({companyId})/{contactEndpoint.ToLower()} ?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime ge {utcTimeString}
Customer Card Endpoints
Get a Company by Number (GET)
[Base URL]/ODataV4/Company({company-name})/CustomerCard({company_no})
Contact Endpoints (Customer in iPaaS)
Get a Contact by Id (GET)
[Base URL]/api/v2.0/companies({company-id})/contacts({contact-id})
Get a Contact by Number (GET)
[Base URL]/api/v2.0/companies({company-id})/contacts?$filter=number eq {contact-number}
Get a Contact by Contact Number (GET)
[Base URL]/ODataV4/Company({company-name})/contacts({contact-number})
Get a Contact by Company Number and Type Person only (GET)
[Base URL]/ODataV4/Company({company-name})/contacts?$filter=Type eq ‘Person’ and CompanyNo eq {company-number}
Get Contacts by LastModifiedDateTime (GET)
[Base URL]/ODataV4/Company({company-name})/contacts?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime ge {utcTimeString}
Location Endpoints
Get a Location by Id (GET)
[Base URL]/api/v2.0/companies/{company-id}/locations/{location-id}
Get a Location by Code (GET)
[Base URL]/api/v2.0/companies/{company-id}/locations?$filter=code eq {location-code}
Get a Location by Number (GET)
[Base URL]/ODataV4/Company({company-name})/locations({location-no})
Poll Locations (GET)
[Base URL]/ api/v2.0/companies({companyId})/Locations?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime gt {utcTimeString}ODataV4/Company({company-name})/locations({location-no})
Sales Order Endpoints
Get a Sales Order by Id (GET)
[Base URL]/api/v2.0/companies/{company-id}/salesOrders/{salesorder-id}
Get a Sales Order by Number (GET)
[Base URL]/api/v2.0/companies/{company-id}/salesOrders?$filter=number eq {No}
Get a Sales Order by Number (GET)
[Base URL]/ODataV4/Company({company-name})/SalesOrders?$filter=No eq {salesorder-no}
Create a Sales Order (POST)
[Base URL]/ODataV4/Company({company-name})/SalesOrders
Update a Sales Order (PATCH – ODataV4)
[Base URL]/ODataV4/Company({company-name})/SalesOrders('Order',{salesorder-number})
Poll Sales Orders (GET)
[Base URL]/ api/v2.0/companies({companyId})/salesOrders?$filter=lastModifiedDateTime ge {utcTimeString}&$top={Limit}&$skip={Page * Limit}
Poll Sales Orders Shipments (GET)
[Base URL]/ api/v2.0/companies({companyId})/salesShipments?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime ge {utcTimeString}
Poll Sales Orders Invoices (GET)
[Base URL]/ api/v2.0/companies({companyId})/salesInvoices?$top={Limit}&$skip={Page * Limit}&$filter=lastModifiedDateTime ge {utcTimeString} and orderId ne 00000000-0000-0000-0000-000000000000
Sales Order Line Item Endpoints
Get Sales Order Line Items by Sales Order Id (GET)
[Base URL]/api/v2.0/companies/{company-id}/salesOrderLines?$filter=documentid eq {salesorder-id}
Get a Sales Order Line Item by Line No (GET)
[Base URL]/ODataV4/Company({company-name})/SalesOrderLines?$filter=No eq {salesorderline-no}Base URL]/api/v2.0/companies/{company-id}/salesOrderLines?$filter=documentid eq {salesorder-id}
Create a Sales Order Line Item (POST)
[Base URL]/ODataV4/Company({company-name})/SalesOrderLines
Update a Sales Order Line Item (PATCH)
[Base URL]/ODataV4/Company({company-name})/SalesOrderLines(Document_Type={document-type}, Document_No={document-no}, Line_No={line-no})
Shipping Method Endpoints
Get All Shipping Methods (GET)
[Base URL]/ODataV4/Company({company-name})/ShippingAgents?$top={limit}&$skip={Page*limit}
Poll Shipping Methods (GET)
[Base URL]/ ODataV4/Company('{companyName}')/ShippingAgents?$top={Limit}&$skip={Page * Limit}
Product Endpoints
Get a Product by Id (GET)
[Base URL]/api/v2.0/companies/{company-id}/items/{product-id}
Get a Product by Number (GET)
[Base URL]/api/v2.0/companies/{company-id}/items?$filter=number eq {product-no}
Get ODatav4 Product by Number (GET)
[Base URL]/ODataV4/Company({company-name})/ItemCard({product-no})
Update a Product (PATCH)
[Base URL]/ODataV4/Company({company-name})/ItemCard({product-no})
Poll Products (GET)
[Base URL]/ api/v2.0/companies({companyId})/items?$top={Limit}&$skip={Page*Limit}&$filter=lastModifiedDateTime gt {utcTimeString}
Poll Products From SalesPrices (GET)
[Base URL]/ ODataV4/Company('{companyName}')/SalesPrices?$top={Limit}&$skip={Page * Limit}&$filter=SystemModifiedAt gt {utcTimeString}
Authorization Endpoints
Base URL: https://login.microsoftonline.com/
Get an Access Token For Client Credentials, Public App and Refresh Token (POST)
[Base URL]/{TenatId}/oauth2/v2.0/token
Utility/Generic Endpoints
Base URL: https://api.businesscentral.dynamics.com
Get a Product by Sku (GET)
[Base URL]/ODataV4/Company({companyName})/Items?$filter=No eq '{sku}'
Get a Country by Name (GET)
[Base URL]/ODataV4/Company({companyName})/Country?$filter=Name eq '{name}'
Get Company Id by Name (GET)
[Base URL]/ODataV4/Company('{companyName}')
Get a Location by Code (GET)
[Base URL]/api/v2.0/companies({companyId})/Locations?$filter=code eq '{Location}'
Get a Customer by Email (GET)
[Base URL]/api/v2.0/companies({companyId})/customers?$filter=email eq '{email}'
Get Customer Id by Number (GET)
[Base URL]/api/v2.0/companies({companyId})/customers?$filter=number eq '{number}'
Get Product Id by SKU (GET)
[Base URL]/api/v2.0/companies({companyId})/items?$filter=number eq '{sku}'
Get Sales Order Id by Transaction Number (GET)
[Base URL]/api/v2.0/companies({companyId})/salesOrders?$filter=number eq '{SalesOrderNumber}'
Get Sales Prices By Item No And Sales Code (GET)
[Base URL]/ODataV4/Company('{companyName}')/SalesPrices?$filter=Item_No eq '{itemNo}' and Sales_Code eq '{salesCode}'