CIN7.DearInventory - the C# library for the Cin7 Core Developer Portal
$ dotnet add package CIN7-DearInventoryCin7 Core Inventory API is part of Cin7 Core Inventory web application at https://inventory.dearsystems.com.
You will need to:
Create an account there before you can use the API.
Trial accounts are also allowed to access the API.
The API URL is https://inventory.dearsystems.com/externalapi/v2/. To call any API endpoint (method) you must append the endpoint name and parameters to the API URL. eg: https://inventory.dearsystems.com/externalapi/v2/me
Note: The API accepts only JSON data format.
Never assume that the API is actually online at any time. Always queue requests to the API so that you can retry the request in the event of a network failure: even if our server is up 24/7 forever, the network will not be. Consider what happens in the case of a network interruption, eg the cable gets cut by road workers yet again. You should always plan to add all requests to a queue so that they can be tried again in the event of any failure.
Full documentation of each endpoint is available on that endpoint's help page. This includes the operations supported and the full list of available fields with:
Name
Type
Length
Required values
Use our API Explorer to see examples of each data object.
Cin7 Core Inventory API is a subset of the functionality available through Cin7 Core Inventory UI - check the API documentation to see if the functionality you require is available in the API.
In the event of errors, the API will return an appropriate HTML status code, and an error message. You will need to read both the status code and the error message to establish the cause. Typical error messages are shown on the API status codes page.
To use the API you will need your Cin7 Core Account ID and API Application key. These can be created on the API setup page inside Cin7 Core Inventory application: https://inventory.dearsystems.com/ExternalAPI.
Each company that you have access to in Cin7 Core Inventory will have a different Cin7 Core Account ID. You can have multiple API Applications created on the same Cin7 Core account. This allows you to link different applications/add-ons to Cin7 Core, since API limits are applied on per API Application basis.
Your Account ID and API Application Key are equivalent to a login and password. They must be kept secret and not shared in any way.
Each request to the API must include these two values sent as HTTP headers:
api-auth-accountid - You must send your Account ID in this header.
api-auth-applicationkey - You must send API Application Key in this header.
PHP sample:
$account_id = 'api-auth-accountid: youraccountid';
$application_key = 'api-auth-applicationkey: applicationkey';
$naked_dear_url = 'https://inventory.dearsystems.com/ExternalApi/v2/SaleList';
$data = array ('Page' => '1', 'Limit' => '100');
$data = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$naked_dear_url.\"?\".$data); //GET API CALL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
\"Content-type: application/json\",
$account_id,
$application_key
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
curl_close ($ch);
print $server_output ;
Pagination is the process of dividing content into discrete pages.
The benefit of pagination is that it allows for faster response times to requests against large datasets like Customers, Products and Invoices, thus providing a more responsive and flexible API for your mission-critical applications.
Cin7 Core Inventory API currently uses pagination on the following endpoints:
SaleList
PurchaseList
StockAdjustmentList
StockTakeList
StockTransferList
Product
Сategory
All remaining API endpoints do not support pagination.
Pages are requested by adding page parameter to URL: https://inventory.dearsystems.com/ExternalApi/v2/{endpoint}?page={pagenumber}, where {endpoint} and {pagenumber} are placeholders.
For example, if you wanted to retrieve the 3rd page of 100 records from the Products endpoint we would write https://inventory.dearsystems.com/ExternalApi/v2/Product?page=3.
The default page size is 100 records, but is configurable by adding the desired page size in the URL querystring, https://inventory.dearsystems.com/ExternalApi/v2/{endpoint}?page={pagenumber}&limit={pagesize}.
The minimum page size is 1 and the maximum page size is 1000 records.
If you want to retrieve the 5th page of 200 ProductAvailability records (ie. 1001st to 1500th record) then you would use this URL: https://inventory.dearsystems.com/ExternalApi/v2/Product?page=5&limit=200.
In the endpoints that support Pagination additional parameter Total is returned with every API call response to provide information regarding how many records there are overall. Below is an example of this structure in JSON for Products endpoint.
{ "Products":[{...}], "Total":41}
| Status Code | Description |
|---|---|
200 OK | Operation was successful |
204 No Content | Operation was successful and there is no content to return |
400 Bad Request | The request was not in a correct form, or the posted data failed a validation test. Check the error returned to see what was wrong with the request. |
403 Forbidden | Method authentication failed |
404 Not found | Endpoint does not exist (eg using /Products instead of /Product) |
405 Not allowed | The method used is not allowed (eg PUT, DELETE) |
500 Internal Server Error | The object passed to the API could not be parsed or some unexpected error occurred in Cin7 Core while processing API request |
503 Service Unavailable | You reached 60 calls per minute API limit |
All date fields in Cin7 Core API (including parameters) are in ISO 8601 format and specifying UTC date: yyyy-MM-ddTHH:mm:ss.fff e.g. 2012-11-14T13:28:33.363
Previous API version's description is available here: http://support.dearsystems.com/solution/folders/1000134185
This C# SDK is automatically generated by the OpenAPI Generator project:
The DLLs included in the package may not be the latest version. We recommend using NuGet to obtain the latest version of the packages:
Install-Package RestSharp
Install-Package Newtonsoft.Json
Install-Package JsonSubTypes
Install-Package System.ComponentModel.Annotations
NOTE: RestSharp versions greater than 105.1.0 have a bug which causes file uploads to fail. See RestSharp#742. NOTE: RestSharp for .Net Core creates a new socket for each api call, which can lead to a socket exhaustion problem. See RestSharp#1406.
Run the following command to generate the DLL
/bin/sh build.shbuild.batThen include the DLL (under the bin folder) in the C# project, and use the namespaces:
using CIN7.DearInventory.Api;
using CIN7.DearInventory.Client;
using CIN7.DearInventory.Model;
A .nuspec is included with the project. You can follow the Nuget quickstart to create and publish packages.
This .nuspec uses placeholders from the .csproj, so build the .csproj directly:
nuget pack -Build -OutputDirectory out CIN7.DearInventory.csproj
Then, publish to a local feed or other host and consume the new package via Nuget as usual.
To use the API client with a HTTP proxy, setup a System.Net.WebProxy
Configuration c = new Configuration();
System.Net.WebProxy webProxy = new System.Net.WebProxy("http://myProxyUrl:80/");
webProxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
c.Proxy = webProxy;
using System.Collections.Generic;
using System.Diagnostics;
using CIN7.DearInventory.Api;
using CIN7.DearInventory.Client;
using CIN7.DearInventory.Model;
namespace Example
{
public class Example
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://inventory.dearsystems.com/ExternalApi/v2";
var apiInstance = new AttributeSetApi(config);
var ID = "ID_example"; // string | ID of Location to Delete
var apiAuthAccountid = 704ef231-cd93-49c9-a201-26b4b5d0d35b; // string? | e.g. 704ef231-cd93-49c9-a201-26b4b5d0d35b (optional)
var apiAuthApplicationkey = 0342a546-e0c2-0dff-f0be-6a5e17154033; // string? | e.g. 0342a546-e0c2-0dff-f0be-6a5e17154033 (optional)
try
{
// DELETE
MeAddressesIdDelete200Response result = apiInstance.RefAttributesetIdDelete(ID, apiAuthAccountid, apiAuthApplicationkey);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling AttributeSetApi.RefAttributesetIdDelete: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
Debug.Print(e.StackTrace);
}
}
}
}
All URIs are relative to https://inventory.dearsystems.com/ExternalApi/v2
| Class | Method | HTTP request | Description |
|---|---|---|---|
| AttributeSetApi | RefAttributesetIdDelete | DELETE /ref/attributeset?ID={ID} | DELETE |
| AttributeSetApi | RefAttributesetIdPgLmtNameGet | GET /ref/attributeset?ID={ID}&Page={Page}&Limit={Limit}&Name={Name} | GET |
| AttributeSetApi | RefAttributesetPost | POST /ref/attributeset | POST |
| AttributeSetApi | RefAttributesetPut | PUT /ref/attributeset | PUT |
| BankAccountsApi | AccountBankPgLmtIdEtc | GET /ref/account/bank?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&Bank={Bank} | GET |
| BrandApi | RefBrandIdDelete | DELETE /ref/brand?ID={ID} | DELETE |
| BrandApi | RefBrandPgLmtNameGet | GET /ref/brand?Page={Page}&Limit={Limit}&Name={Name} | GET |
| BrandApi | RefBrandPost | POST /ref/brand | POST |
| BrandApi | RefBrandPut | PUT /ref/brand | PUT |
| CRMApi | CrmLeadPost | POST /crm/lead | POST |
| CRMApi | CrmLeadPut | PUT /crm/lead | PUT |
| CRMApi | CrmOpportunityPgLmtIdModifiedsinceGet | GET /crm/opportunity?Page={Page}&Limit={Limit}&ID={ID}&ModifiedSince={ModifiedSince} | GET |
| CRMApi | CrmOpportunityPost | POST /crm/opportunity | POST |
| CRMApi | CrmOpportunityPut | PUT /crm/opportunity | PUT |
| CRMApi | CrmTaskPgLmtIdNameGet | GET /crm/task?Page={Page}&Limit={Limit}&ID={ID}&Name={Name} | GET |
| CRMApi | CrmTaskPost | POST /crm/task | POST |
| CRMApi | CrmTaskPut | PUT /crm/task | PUT |
| CRMApi | CrmTaskcategoryPost | POST /crm/taskcategory | POST |
| CRMApi | CrmTaskcategoryPut | PUT /crm/taskcategory | PUT |
| CRMApi | CrmWorkflowPost | POST /crm/workflow | POST |
| CRMApi | CrmWorkflowPut | PUT /crm/workflow | PUT |
| CRMApi | LeadPgLmtIdNameEtc | GET /crm/lead?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&ModifiedSince={ModifiedSince} | GET |
| CRMApi | TaskPgLmtIdNameEtc | GET /crm/task?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&StartDateFrom={StartDateFrom}&StartDateTo={StartDateTo}&EndDateFrom={EndDateFrom}&EndDateTo={EndDateTo}&CompleteDateFrom={CompleteDateFrom}&CompleteDateTo={CompleteDateTo}&AssignedTo={AssignedTo}&Category={Category} | GET |
| CRMApi | WorkflowstartIdNameStartdateEnitytypeEtc | POST /crm/workflowstart?ID={ID}&Name={Name}&StartDate={StartDate}&EnityType={EnityType}&EntityID={EntityID} | POST |
| CarrierApi | RefCarrierIdDelete | DELETE /ref/carrier?ID={ID} | DELETE |
| CarrierApi | RefCarrierPgLmtCarrieridDescriptionGet | GET /ref/carrier?Page={Page}&Limit={Limit}&CarrierID={CarrierID}&Description={Description} | GET |
| CarrierApi | RefCarrierPost | POST /ref/carrier | POST |
| CarrierApi | RefCarrierPut | PUT /ref/carrier | PUT |
| ChartOfAccountsApi | AccountPgLmtCodeNameEtc | GET /ref/account?Page={Page}&Limit={Limit}&Code={Code}&Name={Name}&Type={Type}&Status={Status} | GET |
| ChartOfAccountsApi | RefAccountCodeDelete | DELETE /ref/account?Code={Code} | DELETE |
| ChartOfAccountsApi | RefAccountPost | POST /ref/account | POST |
| ChartOfAccountsApi | RefAccountPut | PUT /ref/account | PUT |
| CustomerApi | CustomerCreditsPgLmtCustomeridEtc | GET /ref/customer/credits?Page={Page}&Limit={Limit}&CustomerID={CustomerID}&ShowUsedCredits={ShowUsedCredits} | GET |
| CustomerApi | CustomerPost | POST /customer | POST |
| CustomerApi | CustomerPut | PUT /customer | PUT |
| CustomerApi | PgLmtIdNameModifiedsinceEtc | GET /customer?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&ModifiedSince={ModifiedSince}&IncludeDeprecated={IncludeDeprecated}&IncludeProductPrices={IncludeProductPrices}&ContactFilter={ContactFilter} | GET |
| CustomerApi | RefCustomerTemplatesPgLmtCustomeridGet | GET /ref/customer/templates?Page={Page}&Limit={Limit}&CustomerId={CustomerId} | GET |
| CustomerApi | RefCustomerTemplatesPost | POST /ref/customer/templates | POST |
| CustomerApi | RefCustomerTemplatesTemplateidCustomeridDelete | DELETE /ref/customer/templates?TemplateId={TemplateId}&CustomerId={CustomerId} | DELETE |
| DisassemblyApi | DisassemblyIdVoidDelete | DELETE /disassembly?ID={ID}&Void={Void} | Delete |
| DisassemblyApi | DisassemblyOrderPost | POST /disassembly/order | POST |
| DisassemblyApi | DisassemblyOrderTaskidGet | GET /disassembly/order?TaskID={TaskID} | GET |
| DisassemblyApi | DisassemblyPost | POST /disassembly | POST |
| DisassemblyApi | DisassemblyTaskidGet | GET /disassembly?TaskID={TaskID} | GET |
| DisassemblyApi | DisassemblylistPgLmtStsSrchGet | GET /disassemblyList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search} | GET |
| FinishedGoodsApi | FinishedgoodsIdVoidDelete | DELETE /finishedGoods?ID={ID}&Void={Void} | Delete |
| FinishedGoodsApi | FinishedgoodsOrderPost | POST /finishedGoods/order | POST |
| FinishedGoodsApi | FinishedgoodsOrderTaskidGet | GET /finishedGoods/order?TaskID={TaskID} | GET |
| FinishedGoodsApi | FinishedgoodsPickPost | POST /finishedGoods/pick | POST |
| FinishedGoodsApi | FinishedgoodsPickTaskidGet | GET /finishedGoods/pick?TaskID={TaskID} | GET |
| FinishedGoodsApi | FinishedgoodsPost | POST /finishedGoods | POST |
| FinishedGoodsApi | FinishedgoodsPut | PUT /finishedGoods | PUT |
| FinishedGoodsApi | FinishedgoodsTaskidGet | GET /finishedGoods?TaskID={TaskID} | GET |
| FinishedGoodsApi | FinishedgoodslistPgLmtStsSrchSaleidGet | GET /finishedGoodsList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search}&SaleID={SaleID} | GET |
| FixedAssetTypeApi | RefFixedassettypePgLmtIdNameGet | GET /ref/fixedassettype?Page={Page}&Limit={Limit}&ID={FixedAssetTypeID}&Name={Name} | GET |
| FixedAssetTypeApi | RefFixedassettypePost | POST /ref/fixedassettype | POST |
| FixedAssetTypeApi | RefFixedassettypePut | PUT /ref/fixedassettype | PUT |
| InventoryWriteOffApi | InventorywriteoffIdVoidDelete | DELETE /inventoryWriteOff?ID={ID}&Void={Void} | Delete |
| InventoryWriteOffApi | InventorywriteoffPost | POST /inventoryWriteOff | POST |
| InventoryWriteOffApi | InventorywriteoffPut | PUT /inventoryWriteOff | PUT |
| InventoryWriteOffApi | InventorywriteoffTaskidGet | GET /inventoryWriteOff?TaskID={TaskID} | GET |
| InventoryWriteOffApi | InventorywriteofflistPgLmtStsSrchGet | GET /inventoryWriteOffList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search} | GET |
| JournalApi | JournalIdVoidDelete | DELETE /journal?ID={ID}&Void={Void} | Delete |
| JournalApi | JournalPgLmtTaskidStsSrchGet | GET /journal?Page={Page}&Limit={Limit}&TaskID={TaskID}&Status={Status}&Search={Search} | GET |
| JournalApi | JournalPost | POST /journal | POST |
| JournalApi | JournalPut | PUT /journal | PUT |
| LocationApi | LocIdPgLmtDeprecatedEtc | GET /ref/location?ID={ID}&Page={Page}&Limit={Limit}&Deprecated={Deprecated}&Name={Name} | GET |
| LocationApi | RefLocIdDelete | DELETE /ref/location?ID={ID} | DELETE |
| LocationApi | RefLocPost | POST /ref/location | POST |
| LocationApi | RefLocPut | PUT /ref/location | PUT |
| MeApi | AddressesPgLmtIdTypeEtc | GET /me/addresses?Page={Page}&Limit={Limit}&ID={ID}&Type={Type}&DefaultForType={DefaultForType}&Country={Country}&StateProvince={StateProvince}&CitySuburb={CitySuburb} | GET |
| MeApi | ContactsPgLmtIdNameEtc | GET /me/contacts?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&Type={Type}&DefaultForType={DefaultForType}&Phone={Phone}&Fax={Fax}&Email={Email} | GET |
| MeApi | MeAddressesIdDelete | DELETE /me/addresses?ID={ID} | DELETE |
| MeApi | MeAddressesPost | POST /me/addresses | POST |
| MeApi | MeAddressesPut | PUT /me/addresses | PUT |
| MeApi | MeContactsIdDelete | DELETE /me/contacts?ID={ID} | DELETE |
| MeApi | MeContactsPost | POST /me/contacts | POST |
| MeApi | MeContactsPut | PUT /me/contacts | PUT |
| MeApi | MeGet | GET /me | GET |
| MoneyTaskApi | BanktransferIdVoidDelete | DELETE /bankTransfer?ID={ID}&Void={Void} | Delete |
| MoneyTaskApi | BanktransferPost | POST /bankTransfer | POST |
| MoneyTaskApi | BanktransferPut | PUT /bankTransfer | PUT |
| MoneyTaskApi | BanktransferTaskidGet | GET /bankTransfer?TaskID={TaskID} | GET |
| MoneyTaskApi | MoneyoperationIdVoidDelete | DELETE /moneyOperation?ID={ID}&Void={Void} | Delete |
| MoneyTaskApi | MoneyoperationPost | POST /moneyOperation | POST |
| MoneyTaskApi | MoneyoperationPut | PUT /moneyOperation | PUT |
| MoneyTaskApi | MoneyoperationTaskidGet | GET /moneyOperation?TaskID={TaskID} | GET |
| MoneyTaskApi | MoneytasklistPgLmtStsSrchTasktypeGet | GET /moneyTaskList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search}&TaskType={TaskType} | GET |
| PaymentTermApi | PaymenttermPgLmtIdNameEtc | GET /ref/paymentterm?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&Method={Method}&IsActive={IsActive}&IsDefault={IsDefault} | GET |
| PaymentTermApi | RefPaymenttermIdDelete | DELETE /ref/paymentterm?ID={ID} | DELETE |
| PaymentTermApi | RefPaymenttermPost | POST /ref/paymentterm | POST |
| PaymentTermApi | RefPaymenttermPut | PUT /ref/paymentterm | PUT |
| PriceTiersApi | RefPricetierGet | GET /ref/priceTier | GET |
| ProductApi | IdPgLmtNameSkuEtc | GET /product?ID={ID}&Page={Page}&Limit={Limit}&Name={Name}&Sku={Sku}&ModifiedSince={ModifiedSince}&IncludeDeprecated={IncludeDeprecated}&IncludeBOM={IncludeBOM}&IncludeSuppliers={IncludeSuppliers}&IncludeMovements={IncludeMovements}&IncludeAttachments={IncludeAttachments}&IncludeReorderLevels={IncludeReorderLevels}&IncludeCustomPrices={IncludeCustomPrices} | GET |
| ProductApi | ProductAttachmentsIdDelete | DELETE /product/attachments?ID={ID} | DELETE |
| ProductApi | ProductAttachmentsPost | POST /product/attachments | POST |
| ProductApi | ProductAttachmentsProductidGet | GET /product/attachments?ProductID={ProductID} | GET |
| ProductApi | ProductPost | POST /product | POST |
| ProductApi | ProductPut | PUT /product | PUT |
| ProductApi | ProductavailabilityPgLmtIdNameEtc | GET /ref/productavailability?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&Sku={Sku}&Location={Location}&Batch={Batch}&Category={Category} | GET |
| ProductCategoriesApi | RefCategoryIdDelete | DELETE /ref/category?ID={ID} | DELETE |
| ProductCategoriesApi | RefCategoryPgLmtNameGet | GET /ref/category?Page={Page}&Limit={Limit}&Name={Name} | GET |
| ProductCategoriesApi | RefCategoryPost | POST /ref/category | POST |
| ProductCategoriesApi | RefCategoryPut | PUT /ref/category | PUT |
| ProductFamilyApi | IdPgLmtNameSkuEtc1 | GET /productFamily?ID={ID}&Page={Page}&Limit={Limit}&Name={Name}&Sku={Sku}&ModifiedSince={ModifiedSince} | GET |
| ProductFamilyApi | ProductfamilyAttachmentsFamilyidGet | GET /productFamily/attachments?FamilyID={FamilyID} | GET |
| ProductFamilyApi | ProductfamilyAttachmentsIdDelete | DELETE /productFamily/attachments?ID={ID} | DELETE |
| ProductFamilyApi | ProductfamilyAttachmentsPost | POST /productFamily/attachments | POST |
| ProductFamilyApi | ProductfamilyPost | POST /productFamily | POST |
| ProductFamilyApi | ProductfamilyPut | PUT /productFamily | PUT |
| ProductMarkupPricesApi | ProductMarkuppricesProductidGet | GET /product/markupprices?ProductID={ProductID} | GET |
| ProductMarkupPricesApi | ProductMarkuppricesPut | PUT /product/markupprices | PUT |
| ProductionApi | Authorize | POST /production/order/authorize | Authorize |
| ProductionApi | CallVoid | POST /production/order/void | Void |
| ProductionApi | CompleteRun | PUT /production/order/run/complete | Complete Run |
| ProductionApi | CompleteRunOperation | PUT /production/order/run/operation/complete | Complete Run Operation |
| ProductionApi | DeleteAttachment | DELETE /production/order/attachment?ProductionOrderAttachmentID={ProductionOrderAttachmentID} | Delete Attachment |
| ProductionApi | GetProductionOrderAttachments | GET /production/order/attachment?ProductionOrderID={ProductionOrderID}&ReturnAttachmentsContent={ReturnAttachmentsContent} | Get Production Order Attachments |
| ProductionApi | GetProductionOrderReferenceData | GET /production/order/referenceData | Get Production Order Reference Data |
| ProductionApi | OrderlistPgLmtStsSrchEtc | GET /production/orderList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search}&LocationID={LocationID}&RequiredByDateFrom={RequiredByDateFrom}&RequiredByDateTo={RequiredByDateTo}&CompletionDateFrom={CompletionDateFrom}&CompletionDateTo={CompletionDateTo}&SourceTaskID={SourceTaskID} | GET |
| ProductionApi | PostAttachment | POST /production/order/attachment?ProductionOrderID={ProductionOrderID} | Post Attachment |
| ProductionApi | ProductionFactorycalendarPost | POST /production/factoryCalendar | POST |
| ProductionApi | ProductionFactorycalendarPut | PUT /production/factoryCalendar | PUT |
| ProductionApi | ProductionFactorycalendarYearGet | GET /production/factoryCalendar?Year={Year} | GET |
| ProductionApi | ProductionOrderAllowrecalculatedatesAllowrecalculatecyclesandquantitiesPut | PUT /production/order?AllowRecalculateDates={AllowRecalculateDates}&AllowRecalculateCyclesAndQuantities={AllowRecalculateCyclesAndQuantities} | PUT |
| ProductionApi | ProductionOrderProductionorderidReturnattachmentscontentGet | GET /production/order?ProductionOrderID={ProductionOrderID}&returnAttachmentsContent={ReturnAttachmentsContent} | GET |
| ProductionApi | ProductionOrderRecalculatedatesPost | POST /production/order?RecalculateDates={RecalculateDates} | POST |
| ProductionApi | ProductionOrderRunPost | POST /production/order/run | POST |
| ProductionApi | ProductionOrderRunProductionorderidIncludeattachmentcontentGet | GET /production/order/run?ProductionOrderID={ProductionOrderID}&IncludeAttachmentContent={IncludeAttachmentContent} | GET |
| ProductionApi | ProductionOrderRunProductionorderidIncreaseorderquantityPut | PUT /production/order/run?ProductionOrderID={ProductionOrderID}&IncreaseOrderQuantity={IncreaseOrderQuantity} | PUT |
| ProductionApi | ProductionProductionbomPost | POST /production/productionBOM | POST |
| ProductionApi | ProductionProductionbomProductfamilyidBomidDelete | DELETE /production/productionBOM?ProductFamilyID={ProductFamilyID}&BOMID={BOMID} | DELETE |
| ProductionApi | ProductionProductionbomProductfamilyidReturnattachmentscontentGet | GET /production/productionBOM?ProductFamilyID={ProductFamilyID}&ReturnAttachmentsContent={ReturnAttachmentsContent} | GET |
| ProductionApi | ProductionProductionbomProductidBomidDelete | DELETE /production/productionBOM?ProductID={ProductID}&BOMID={BOMID} | DELETE |
| ProductionApi | ProductionProductionbomProductidReturnattachmentscontentGet | GET /production/productionBOM?ProductID={ProductID}&ReturnAttachmentsContent={ReturnAttachmentsContent} | GET |
| ProductionApi | ProductionProductionbomPut | PUT /production/productionBOM | PUT |
| ProductionApi | ProductionResourcePost | POST /production/resource | POST |
| ProductionApi | ProductionResourcePut | PUT /production/resource | PUT |
| ProductionApi | ProductionResourceResourceidDelete | DELETE /production/resource?ResourceID={ResourceID} | DELETE |
| ProductionApi | ProductionResourceResourceidIncludeattachmentsGet | GET /production/resource?ResourceID={ResourceID}&IncludeAttachments={IncludeAttachments} | GET |
| ProductionApi | ProductionResourcelistPgLmtNameOnlyactiveGet | GET /production/resourceList?Page={Page}&Limit={Limit}&Name={Name}&OnlyActive={OnlyActive} | GET |
| ProductionApi | ProductionSuspendreasonPgLmtWorkcenteridGet | GET /production/suspendReason?Page={Page}&Limit={Limit}&WorkcenterID={WorkcenterID} | GET |
| ProductionApi | ProductionSuspendreasonPut | PUT /production/suspendReason | PUT |
| ProductionApi | ProductionWorkcentersPgLmtNameGet | GET /production/workcenters?Page={Page}&Limit={Limit}&Name={Name} | GET |
| ProductionApi | ProductionWorkcentersPost | POST /production/workcenters | POST |
| ProductionApi | ProductionWorkcentersPut | PUT /production/workcenters | PUT |
| ProductionApi | ProductionWorkcentersWorkcenteridDelete | DELETE /production/workcenters?WorkCenterId={WorkCenterId} | DELETE |
| ProductionApi | PutAttachment | PUT /production/order/attachment | Put Attachment |
| ProductionApi | Release | POST /production/order/release | Release |
| ProductionApi | ResumeRunOperation | PUT /production/order/run/operation/resume | Resume Run Operation |
| ProductionApi | StartRunOperation | PUT /production/order/run/operation/start | Start Run Operation |
| ProductionApi | SuspendRunOperation | PUT /production/order/run/operation/suspend | Suspend Run Operation |
| ProductionApi | Undo | POST /production/order/undo | Undo |
| ProductionApi | UndoRun | PUT /production/order/run/undo | Undo Run |
| ProductionApi | UpdateManualJournals | PUT /production/order/run/manualJournal?ProductionOrderID={ProductionOrderID} | Update Manual Journals |
| ProductionApi | VoidRun | PUT /production/order/run/void | Void Run |
| PurchaseApi | AdvancedPurchaseAwayPost | POST /advanced-purchase/put-away | POST |
| PurchaseApi | AdvancedPurchaseAwayPurchaseidGet | GET /advanced-purchase/put-away?PurchaseID={PurchaseID} | GET |
| PurchaseApi | AdvancedPurchaseCreditnotePost | POST /advanced-purchase/creditnote | POST |
| PurchaseApi | AdvancedPurchaseCreditnotePurchaseidCombineadditionalchargesGet | GET /advanced-purchase/creditnote?PurchaseID={PurchaseID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | AdvancedPurchaseCreditnoteTaskidDelete | DELETE /advanced-purchase/creditnote?TaskID={TaskID} | DELETE |
| PurchaseApi | AdvancedPurchaseIdCombineadditionalchargesGet | GET /advanced-purchase?ID={ID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | AdvancedPurchaseIdVoidDelete | DELETE /advanced-purchase?ID={ID}&Void={Void} | DELETE |
| PurchaseApi | AdvancedPurchaseInvoicePost | POST /advanced-purchase/invoice | POST |
| PurchaseApi | AdvancedPurchaseInvoicePurchaseidCombineadditionalchargesGet | GET /advanced-purchase/invoice?PurchaseID={PurchaseID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | AdvancedPurchaseInvoiceTaskidVoidDelete | DELETE /advanced-purchase/invoice?TaskID={TaskID}&Void={Void} | DELETE |
| PurchaseApi | AdvancedPurchaseManualjournalPost | POST /advanced-purchase/manualJournal | POST |
| PurchaseApi | AdvancedPurchaseManualjournalPurchaseidGet | GET /advanced-purchase/manualJournal?PurchaseID={PurchaseID} | GET |
| PurchaseApi | AdvancedPurchasePaymentPost | POST /advanced-purchase/payment | POST |
| PurchaseApi | AdvancedPurchasePaymentPut | PUT /advanced-purchase/payment | PUT |
| PurchaseApi | AdvancedPurchasePost | POST /advanced-purchase | POST |
| PurchaseApi | AdvancedPurchasePut | PUT /advanced-purchase | PUT |
| PurchaseApi | AdvancedPurchaseStockPost | POST /advanced-purchase/stock | POST |
| PurchaseApi | AdvancedPurchaseStockPurchaseidGet | GET /advanced-purchase/stock?PurchaseID={PurchaseID} | GET |
| PurchaseApi | AdvancedPurchaseStockPut | PUT /advanced-purchase/stock | PUT |
| PurchaseApi | AdvancedPurchaseStockTaskidVoidDelete | DELETE /advanced-purchase/stock?TaskID={TaskID}&Void={Void} | DELETE |
| PurchaseApi | PgLmtSrchRequiredbyUpdatedsinceEtc | GET /purchaseList?Page={Page}&Limit={Limit}&Search={Search}&RequiredBy={RequiredBy}&UpdatedSince={UpdatedSince}&OrderStatus={OrderStatus}&RestockReceivedStatus={RestockReceivedStatus}&InvoiceStatus={InvoiceStatus}&CreditNoteStatus={CreditNoteStatus}&UnstockStatus={UnstockStatus}&Status{Status}&DropShipTaskID={DropShipTaskID} | GET |
| PurchaseApi | PgLmtSrchUpdatedsinceCreditnotestatusEtc | GET /purchaseCreditNoteList?Page={Page}&Limit={Limit}&Search={Search}&UpdatedSince={UpdatedSince}&CreditNoteStatus={CreditNoteStatus}&Status{Status} | GET |
| PurchaseApi | PurchaseAttachmentIdDelete | DELETE /purchase/attachment?ID={ID} | DELETE |
| PurchaseApi | PurchaseAttachmentPost | POST /purchase/attachment | POST |
| PurchaseApi | PurchaseAttachmentTaskidGet | GET /purchase/attachment?TaskID={TaskID} | GET |
| PurchaseApi | PurchaseCreditnotePost | POST /purchase/creditnote | POST |
| PurchaseApi | PurchaseCreditnoteTaskidCombineadditionalchargesGet | GET /purchase/creditnote?TaskID={TaskID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | PurchaseIdCombineadditionalchargesGet | GET /purchase?ID={ID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | PurchaseIdVoidDelete | DELETE /purchase?ID={ID}&Void={Void} | DELETE |
| PurchaseApi | PurchaseInvoicePost | POST /purchase/invoice | POST |
| PurchaseApi | PurchaseInvoiceTaskidCombineadditionalchargesGet | GET /purchase/invoice?TaskID={TaskID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | PurchaseManualjournalPost | POST /purchase/manualJournal | POST |
| PurchaseApi | PurchaseManualjournalTaskidGet | GET /purchase/manualJournal?TaskID={TaskID} | GET |
| PurchaseApi | PurchaseOrderPost | POST /purchase/order | POST |
| PurchaseApi | PurchaseOrderTaskidCombineadditionalchargesGet | GET /purchase/order?TaskID={TaskID}&CombineAdditionalCharges={CombineAdditionalCharges} | GET |
| PurchaseApi | PurchasePaymentIdallocationDelete | DELETE /purchase/payment?ID={ID}&DeleteAllocation={DeleteAllocation} | DELETE |
| PurchaseApi | PurchasePaymentPost | POST /purchase/payment | POST |
| PurchaseApi | PurchasePaymentPurchaseidOrdernumberInvoicenumberEtc | GET /advanced-purchase/payment?PurchaseID={PurchaseID}&OrderNumber={OrderNumber}&InvoiceNumber={InvoiceNumber}&CreditNoteNumber={CreditNoteNumber} | GET |
| PurchaseApi | PurchasePaymentPut | PUT /purchase/payment | PUT |
| PurchaseApi | PurchasePaymentTaskidGet | GET /purchase/payment?TaskID={TaskID} | GET |
| PurchaseApi | PurchasePost | POST /purchase | POST |
| PurchaseApi | PurchasePut | PUT /purchase | PUT |
| PurchaseApi | PurchaseStockPost | POST /purchase/stock | POST |
| PurchaseApi | PurchaseStockTaskidGet | GET /purchase/stock?TaskID={TaskID} | GET |
| ReferenceBooksApi | CustomPricesPost | POST /custom-prices | POST |
| ReferenceBooksApi | CustomPricesProductidCustomeridDelete | DELETE /custom-prices?ProductID={ProductID}&CustomerID={CustomerID} | DELETE |
| ReferenceBooksApi | CustomPricesPut | PUT /custom-prices | PUT |
| ReferenceBooksApi | Get | GET /reference/shipZonesEnabled | Get |
| ReferenceBooksApi | ProductSuppliersPost | POST /product-suppliers | POST |
| ReferenceBooksApi | ProductSuppliersProductidGet | GET /product-suppliers?ProductID={ProductID} | GET |
| ReferenceBooksApi | ProductSuppliersProductidSupplieridDelete | DELETE /product-suppliers?ProductID={ProductID}&SupplierID={SupplierID} | DELETE |
| ReferenceBooksApi | ProductSuppliersPut | PUT /product-suppliers | PUT |
| ReferenceBooksApi | ReferenceDealsIdPgLmtSrchGet | GET /reference/deals?ID={ID}&Page={Page}&Limit={Limit}&Search={Search} | GET |
| ReferenceBooksApi | ReferenceDealsPost | POST /reference/deals | POST |
| ReferenceBooksApi | ReferenceDealsPut | PUT /reference/deals | PUT |
| ReferenceBooksApi | ReferenceDiscountIdPgLmtSrchGet | GET /reference/discount?ID={ID}&Page={Page}&Limit={Limit}&Search={Search} | GET |
| ReferenceBooksApi | ReferenceDiscountPost | POST /reference/discount | POST |
| ReferenceBooksApi | ReferenceDiscountPut | PUT /reference/discount | PUT |
| ReferenceBooksApi | ReferenceShipzonesIdPgLmtSrchGet | GET /reference/shipZones?ID={ID}&Page={Page}&Limit={Limit}&Search={Search} | GET |
| ReferenceBooksApi | ReferenceShipzonesPost | POST /reference/shipZones | POST |
| ReferenceBooksApi | ReferenceShipzonesPut | PUT /reference/shipZones | PUT |
| ReferenceBooksApi | ReferenceShipzonesShipzoneidDelete | DELETE /reference/shipZones?ShipZoneID ={ShipZoneID} | Delete |
| ReferenceBooksApi | Update | PUT /reference/shipZonesEnabled | Update |
| SaleApi | PgLmtSrchCreatedsinceUpdatedsinceEtc | GET /saleCreditNoteList?Page={Page}&Limit={Limit}&Search={Search}&CreatedSince={CreatedSince}&UpdatedSince={UpdatedSince}&CreditNoteStatus={CreditNoteStatus}&Status={Status} | GET |
| SaleApi | PgLmtSrchCreatedsinceUpdatedsinceEtc1 | GET /saleList?Page={Page}&Limit={Limit}&Search={Search}&CreatedSince={CreatedSince}&UpdatedSince={UpdatedSince}&ShipBy={ShipBy}&QuoteStatus={QuoteStatus}&OrderStatus={OrderStatus}&CombinedPickStatus={CombinedPickStatus}&CombinedPackStatus={CombinedPackStatus}&CombinedShippingStatus={CombinedShippingStatus}&CombinedInvoiceStatus={CombinedInvoiceStatus}&CreditNoteStatus={CreditNoteStatus}&ExternalID={ExternalID}&Status={Status}&ReadyForShipping={ReadyForShipping}&OrderLocationID={OrderLocationID} | GET |
| SaleApi | SaleAttachmentIdDelete | DELETE /sale/attachment?ID={ID} | DELETE |
| SaleApi | SaleAttachmentPost | POST /sale/attachment | POST |
| SaleApi | SaleAttachmentSaleidGet | GET /sale/attachment?SaleID={SaleID} | GET |
| SaleApi | SaleCreditnotePost | POST /sale/creditnote | POST |
| SaleApi | SaleCreditnoteSaleidCombineadditionalchargesIncludeproductinfoIncludepaymentinfoGet | GET /sale/creditnote?SaleID={SaleID}&CombineAdditionalCharges={CombineAdditionalCharges}&IncludeProductInfo={IncludeProductInfo}&IncludePaymentInfo={IncludePaymentInfo} | GET |
| SaleApi | SaleCreditnoteTaskidVoidDelete | DELETE /sale/creditnote?TaskID={TaskID}&Void={Void} | DELETE |
| SaleApi | SaleFulfilmentPackPost | POST /sale/fulfilment/pack | POST |
| SaleApi | SaleFulfilmentPackPut | PUT /sale/fulfilment/pack | PUT |
| SaleApi | SaleFulfilmentPackTaskidIncludeproductinfoGet | GET /sale/fulfilment/pack?TaskID={TaskID}&IncludeProductInfo={IncludeProductInfo} | GET |
| SaleApi | SaleFulfilmentPickPost | POST /sale/fulfilment/pick | POST |
| SaleApi | SaleFulfilmentPickPut | PUT /sale/fulfilment/pick | PUT |
| SaleApi | SaleFulfilmentPickTaskidIncludeproductinfoGet | GET /sale/fulfilment/pick?TaskID={TaskID}&IncludeProductInfo={IncludeProductInfo} | GET |
| SaleApi | SaleFulfilmentPost | POST /sale/fulfilment | POST |
| SaleApi | SaleFulfilmentSaleidIncludeproductinfoGet | GET /sale/fulfilment?SaleID={SaleID}&IncludeProductInfo={IncludeProductInfo} | GET |
| SaleApi | SaleFulfilmentShipPost | POST /sale/fulfilment/ship | POST |
| SaleApi | SaleFulfilmentShipPut | PUT /sale/fulfilment/ship | PUT |
| SaleApi | SaleFulfilmentShipTaskidGet | GET /sale/fulfilment/ship?TaskID={TaskID} | GET |
| SaleApi | SaleFulfilmentTaskidVoidDelete | DELETE /sale/fulfilment?TaskID={TaskID}&Void={Void} | DELETE |
| SaleApi | SaleIdCombineadditionalchargesHideinventorymovementsIncludetransactionsCountryformatGet | GET /sale?ID={ID}&CombineAdditionalCharges={CombineAdditionalCharges}&HideInventoryMovements={HideInventoryMovements}&IncludeTransactions={IncludeTransactions}&CountryFormat={CountryFormat} | GET |
| SaleApi | SaleIdVoidDelete | DELETE /sale?ID={ID}&Void={Void} | Delete |
| SaleApi | SaleInvoicePost | POST /sale/invoice | POST |
| SaleApi | SaleInvoicePut | PUT /sale/invoice | PUT |
| SaleApi | SaleInvoiceSaleidCombineadditionalchargesIncludeproductinfoGet | GET /sale/invoice?SaleID={SaleID}&CombineAdditionalCharges={CombineAdditionalCharges}&IncludeProductInfo={IncludeProductInfo} | GET |
| SaleApi | SaleInvoiceTaskidVoidDelete | DELETE /sale/invoice?TaskID={TaskID}&Void={Void} | DELETE |
| SaleApi | SaleManualjournalPost | POST /sale/manualJournal | POST |
| SaleApi | SaleManualjournalSaleidGet | GET /sale/manualJournal?SaleID={SaleID} | GET |
| SaleApi | SaleOrderPost | POST /sale/order | POST |
| SaleApi | SaleOrderSaleidCombineadditionalchargesIncludeproductinfoGet | GET /sale/order?SaleID={SaleID}&CombineAdditionalCharges={CombineAdditionalCharges}&IncludeProductInfo={IncludeProductInfo} | GET |
| SaleApi | SalePaymentIdDelete | DELETE /sale/payment?ID={ID} | DELETE |
| SaleApi | SalePaymentPost | POST /sale/payment | POST |
| SaleApi | SalePaymentPut | PUT /sale/payment | PUT |
| SaleApi | SalePaymentSaleidGet | GET /sale/payment?SaleID={SaleID} | GET |
| SaleApi | SalePost | POST /sale | POST |
| SaleApi | SalePut | PUT /sale | PUT |
| SaleApi | SaleQuotePost | POST /sale/quote | POST |
| SaleApi | SaleQuoteSaleidCombineadditionalchargesIncludeproductinfoGet | GET /sale/quote?SaleID={SaleID}&CombineAdditionalCharges={CombineAdditionalCharges}&IncludeProductInfo={IncludeProductInfo} | GET |
| StockApi | StockadjustmentIdVoidDelete | DELETE /stockadjustment?ID={ID}&Void={Void} | DELETE |
| StockApi | StockadjustmentPost | POST /stockadjustment | POST |
| StockApi | StockadjustmentPut | PUT /stockadjustment | PUT |
| StockApi | StockadjustmentTaskidGet | GET /stockadjustment?TaskID={TaskID} | GET |
| StockApi | StockadjustmentlistPgLmtStsGet | GET /stockadjustmentList?Page={Page}&Limit={Limit}&Status={Status} | GET |
| StockApi | StocktakeIdVoidDelete | DELETE /stocktake?ID={ID}&Void={Void} | DELETE |
| StockApi | StocktakePost | POST /stocktake | POST |
| StockApi | StocktakePut | PUT /stocktake | PUT |
| StockApi | StocktakeTaskidGet | GET /stocktake?TaskID={TaskID} | GET |
| StockApi | StocktakelistPgLmtStsGet | GET /stockTakeList?Page={Page}&Limit={Limit}&Status={Status} | GET |
| StockApi | StocktransferIdVoidDelete | DELETE /stockTransfer?ID={ID}&Void={Void} | DELETE |
| StockApi | StocktransferOrderPost | POST /stockTransfer/order | POST |
| StockApi | StocktransferOrderTaskidGet | GET /stockTransfer/order?TaskID={TaskID} | GET |
| StockApi | StocktransferPost | POST /stockTransfer | POST |
| StockApi | StocktransferPut | PUT /stockTransfer | PUT |
| StockApi | StocktransferTaskidGet | GET /stockTransfer?TaskID={TaskID} | GET |
| StockApi | StocktransferlistPgLmtStsSrchGet | GET /stockTransferList?Page={Page}&Limit={Limit}&Status={Status}&Search={Search} | GET |
| SupplierApi | PgLmtIdNameModifiedsinceEtc1 | GET /supplier?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&ModifiedSince={ModifiedSince}&IncludeDeprecated={IncludeDeprecated} | GET |
| SupplierApi | SupplierDepositsPgLmtSupplieridEtc | GET /ref/supplier/deposits?Page={Page}&Limit={Limit}&SupplierID={SupplierID}&ShowUsedDeposits={ShowUsedDeposits} | GET |
| SupplierApi | SupplierPost | POST /supplier | POST |
| SupplierApi | SupplierPut | PUT /supplier | PUT |
| TaxApi | RefTaxPost | POST /ref/tax | POST |
| TaxApi | RefTaxPut | PUT /ref/tax | PUT |
| TaxApi | TaxPgLmtIdNameEtc | GET /ref/tax?Page={Page}&Limit={Limit}&ID={ID}&Name={Name}&IsActive={IsActive}&IsTaxForSale={IsTaxForSale}&IsTaxForPurchase={IsTaxForPurchase}&Account={Account} | GET |
| TemplatesApi | RefTemplatesPgLmtTypeNameGet | GET /ref/templates?Page={Page}&Limit={Limit}&Type={Type}&Name={Name} | GET |
| TransactionsApi | TransactionsPgLmtFromdateTodateAccountGet | GET /transactions?Page={Page}&Limit={Limit}&FromDate={FromDate}&ToDate={ToDate}&Account={Account} | GET |
| UnitOfMeasureApi | RefUnitIdDelete | DELETE /ref/unit?ID={ID} | DELETE |
| UnitOfMeasureApi | RefUnitPgLmtNameGet | GET /ref/unit?Page={Page}&Limit={Limit}&Name={Name} | GET |
| UnitOfMeasureApi | RefUnitPost | POST /ref/unit | POST |
| UnitOfMeasureApi | RefUnitPut | PUT /ref/unit | PUT |
| WebhooksApi | WebhooksGet | GET /webhooks | GET |
| WebhooksApi | WebhooksIdDelete | DELETE /webhooks?ID={ID} | Delete |
| WebhooksApi | WebhooksPost | POST /webhooks | POST |
| WebhooksApi | WebhooksPut | PUT /webhooks | PUT |
Endpoints do not require authorization.