Skip to main content

Microsoft Dynamics 365 API Endpoints

Updated today

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}'

Did this answer your question?