← Back to all MCPs

Unleashed MCP

An Unleashed MCP connector for stock, products, sales orders and purchasing. Explore the coverage and join the access waitlist.

Inventory and orders

What is Unleashed MCP?

MCP XYZ is building an independent Unleashed MCP connector so an AI assistant can work with authorised inventory and order records through the Model Context Protocol. The connector covers documented Unleashed API operations; new access is by invitation from the waitlist, and live business workflows still need validation.

Use the catalogue to check the operations and fields your work needs. If an existing connector is missing a useful action, tell us about it when joining the waitlist. Your software’s permissions and API limits still apply.

Unleashed workflows to explore

Check stock and warehouse records

Explore documented product, stock-on-hand and warehouse operations for questions about inventory across your business.

Inspect documented operations →

Find sales orders and line items

Inspect sales-order and customer operations, including the products, quantities and prices retained in their documented fields.

Inspect documented operations →

Work with purchasing and supplier records

Review the purchase-order, receipt and supplier coverage before planning an authorised purchasing workflow.

Inspect documented operations →
Example request to try after setup and validation

“Show stock on hand by warehouse for this product.”

Getting access to Unleashed MCP

New access starts with the Unleashed waitlist. Tell us which assistant you use and the work you want to do. We’ll contact you about relevant access updates; joining does not create an account or guarantee an invitation date.

Once invited, sign in to MCP XYZ, choose your workspace and add the API ID and key for your authorised Unleashed account. Run the connection check, then add its MCP URL to your assistant. Saved credentials alone do not verify a connection.

Unleashed API documentation ↗

Start with read-only access while you explore. Jiffi can handle setup with you. Live business workflows still need validation against an authorised account.

In Claude Desktop or web, open Settings → Connectors → Add custom connector, enter your connection’s MCP URL, then connect and choose access in MCP XYZ.

Unleashed MCP questions

What is the Unleashed MCP from MCP XYZ?
It is an independent connector being built by Jiffi to expose documented Unleashed API operations through the Model Context Protocol. It is intended to let an authorised AI assistant request inventory, customer, supplier and order information from your Unleashed account.
Can I use Unleashed MCP with Claude or ChatGPT?
MCP XYZ connection and tool-discovery flows have been tested with Claude Desktop and web, Codex and Claude Code. Those checks did not verify live Unleashed business requests. ChatGPT acceptance has not yet been verified. Tell us which assistant you use when joining the waitlist.
What Unleashed access will I need?
After an access invitation, setup requires an authorised Unleashed account with API access, its API ID and API key, and an MCP XYZ workspace. Your account permissions and the provider’s API limits still apply. Never put API keys into the waitlist form.
Can this connector update orders or inventory?
The documented catalogue includes reads and writes. A documented write does not establish a tested business workflow. Changes require the relevant permissions and validation in an authorised scope; ambiguous mutating requests are not automatically retried.
How do I get access, and what does it cost?
Join the Unleashed waitlist and describe the job you want to do. We will contact you about access; joining does not create an account or guarantee a launch date. MCP access is included for clients under contract with Jiffi. Standalone access and any applicable terms are discussed before activation.

Read the AI client guide → How access and permissions work →

Documented coverage

Operations and fields

145 documented operation variants. Open a contract to inspect its parameters, fields, sources and unresolved behaviour. No provider request is made here.

145 operations match. Showing 61–80.

Documented contract, live behaviour unverified

Complete a Sales Order

unleashed_complete_sales_orders

POST/SalesOrders/{orderGuid}/Complete

Read the provider documentation ↗

Provider notes and connector behaviour

  • Do not automatically replay after an ambiguous transport failure. The documentation does not establish an idempotency-key contract for this operation.
  • Omitted DeliveryContact preserves its previous value. Empty/null DeliveryContact.Guid clears it. Omitted/null DeliveryInstruction preserves its previous value. UseDefaultDeliveryAddress is write-only.

Unresolved behaviour

  • No authenticated sandbox or production request has verified this operation.
  • The documentation lists this action but does not provide a dedicated request-body schema. Confirm empty-body versus entity-body behaviour in a sandbox.

Path parameters

ParameterRequiredProvider description
orderGuidYesProvider identifier from the corresponding resource; preserve the documented identifier type.

Retained Sales Orders field and filter tables

These source tables cover the resource’s documented methods. Read each table’s heading for its request or response context.

Available Fields for GET Sales Orders

GET Sales Orders

PropertyTypeLengthNotes
BCSubTotalNullable DecimalBase Currency SubTotal
BCTaxTotalNullable DecimalBase Currency TaxTotal
BCTotalNullable DecimalBase Currency Total
CommentsString2048
CompletedDateNullable DateTimeUTC timezone only
CreatedByString50
CreatedOnDateTime
CurrencyCurrency
CustomerCustomer
CustomerRefString500
CustomOrderStatusString15Must be a valid custom order status and OrderStatus must be PARKED. The available values can be listed with GET /SalesOrderStatuses
DeliveryCityString500
DeliveryContactDeliveryContact
DeliveryCountryString500
DeliveryInstructionString500
DeliveryMethodString50
DeliveryNameString500
DeliveryPostCodeString50
DeliveryRegionString500
DeliveryStreetAddressString500
DeliveryStreetAddress2String500
DeliverySuburbString500
DiscountRateDecimal
ExchangeRateNullable Decimal
GuidGuid
LastModifiedByString50
LastModifiedOnNullable DateTime
OrderDateNullable DateTime
OrderNumberString20
OrderStatusString20
PaymentDueDateNullable DateTimeUTC timezone only
ReceivedDateNullable DateTimeUTC timezone only
RequiredDateNullable DateTime
CompletedDateNullable DateTimeUTC timezone only
SalesOrderGroupString50
SalesAccountString50
SalesOrderLinesSalesOrderLine collection
SalespersonSalesperson
SourceIdString500
SubTotalDecimal
TaxTax
TaxRateNullable Decimal
TaxTotalDecimal
TotalDecimal
TotalVolumeNullable Decimal
TotalWeightNullable Decimal
WarehouseWarehouse
XeroTaxCodeString50
Available Fields for Currency

GET Sales Orders

PropertyTypeLength
CurrencyCodeString3
DescriptionString200
DefaultBuyRateDecimal
DefaultSellRateDecimal
GuidGuid
LastModifiedOnDateTime
Available Fields for Customer

GET Sales Orders

PropertyTypeLength
CurrencyIdInteger
CustomerCodeString500
CustomerNameString500
GuidGuid
LastModifiedOnDateTime
Available Fields for Delivery Contact

GET Sales Orders

PropertyTypeLength
EmailAddressString500
FirstNameString500
GuidGuid
LastNameString500
MobilePhoneString500
OfficePhoneString500
PhoneNumberString500
UseDefaultDeliveryAddressBoolean
Available Fields for Salesperson

GET Sales Orders

PropertyTypeLength
EmailString500
FullNameString500
GuidGuid
ObsoleteBoolean
LastModifiedOnDateTime
Available Fields for Tax

GET Sales Orders

PropertyTypeLength
CanApplyToExpensesBoolean
CanApplyToRevenueBoolean
DescriptionString50
GuidGuid
LastModifiedOnDateTime
ObsoleteBoolean
TaxCodeString25
TaxRateDecimal
Available Fields for Warehouse

GET Sales Orders

PropertyTypeLength
AddressLine1String500
AddressLine2String500
CityString500
ContactNameString50
CountryString500
DDINumberString25
FaxNumberString25
GuidGuid
IsDefaultBoolean
LastModifiedOnDateTime
MobileNumberString25
ObsoleteBoolean
PostCodeString500
PhoneNumberString25
RegionString500
StreetNoString500
SuburbString500
WarehouseCodeString15
WarehouseNameString100
Available Fields for Sales Order Lines

GET Sales Orders

PropertyTypeLengthNotes
AssemblyAssembly
BCLineTaxDecimal
BCLineTotalDecimal
BCUnitPriceDecimal
CommentsString1024
CostOfGoodsAccountString50
DiscountRateDecimal
DueDateDateTimeThis field is deprecated and will be removed in a future version of the API.
GuidGuid
LastModifiedOnNullable DateTime
LineNumberInteger
LineTypeString
LineTaxDecimal
LineTaxCodeString50
LineTotalDecimal
OrderQuantityDecimal
ProductProduct
TaxRateNullable Decimal
UnitCostNullable Decimal
UnitPriceDecimal
VolumeNullable Decimal
WeightNullable Decimal
XeroSalesAccountString500
XeroTaxCodeString50
Available Fields for Assembly

GET Sales Orders

PropertyTypeLength
GuidGuid
AssemblyNumberString15
AssemblyStatusString15
Available Fields for Product

GET Sales Orders

PropertyTypeLength
GuidGuid
ProductCodeString100
ProductDescriptionString500
Available Fields for POST/PUT Sales Orders

POST / PUT Sales Orders

PropertyTypeLengthPOSTPUTNotes
CommentsString2048
CreatedByStringN/A
CurrencyCurrencyN/AMust match Customer’s currency if specified
CustomerCustomerRequiredN/A
CustomOrderStatusString15Must be a valid custom order status. The available values can be listed with GET /SalesOrderStatuses
CustomerRefString500
DeliveryCityString500
DeliveryCountryString500Either CountryCode or CountryName can be provided. 2 character country codes are validated against the ISO 3166 list
DeliveryContactDeliveryContactOnly Guid is used to identify the contact; the name, email and phone fields are ignored on POST/PUT. The contact must already exist and belong to the order's customer, otherwise the request is rejected with a 400. Contacts are created and maintained through POST/PUT /Customers/{customerGuid}/Contacts . An omitted DeliveryContact leaves the existing delivery contact unchanged; supplying a DeliveryContact with an empty or null Guid clears it. Set UseDefaultDeliveryAddress to true to take the order's delivery address from the contact's default address, in which case the delivery address fields in the request are ignored, except DeliveryInstruction , which is used when supplied. UseDefaultDeliveryAddress is write-only and is not returned on GET
DeliveryInstructionString500Null or missing property will not override existing information
DeliveryMethodString50
DeliveryNameString500
DeliveryPostCodeString50
DeliveryRegionString500
DeliveryStreetAddressString500
DeliveryStreetAddress2String500
DeliverySuburbString500
DiscountRateDecimal
ExchangeRateDecimalRequiredRequired
GuidGuidOptionalN/AAutomatically generates a Guid if not provided for POST. Can only be set when adding a record.
OrderDateDateTimeN/AMust be greater than 2000-01-01
OrderNumberString17N/AMust be unique when submitted via POST. Automatically generated if not provided for POST. Shorter than GET by 3 characters as those are reserved to support the suffix for split shipments and invoices.
OrderStatusString20RequiredRequired
ReceivedDateDateTimeN/A
RequiredDateDateTimeMust be greater than 2000-01-01
SalesOrderGroupString50
SalesOrderLinesSalesOrderLine collectionRequiredAt least one must be specified.
SalespersonSalesperson
SourceIdString500
SubTotalDecimal (2dp)RequiredN/ASubTotal = Sum of SalesOrderLine Totals
TaxTaxRequiredRequired
TaxRateDecimalRequiredN/A
TaxTotalDecimal (2dp)RequiredN/ATaxTotal = Sum of SalesOrderLine Taxes
TotalDecimal (2dp)RequiredN/ATotal = TaxTotal + SubTotal
WarehouseWarehouseRequired
Available Fields for Currency

POST / PUT Sales Orders

PropertyTypeLengthPOST
CurrencyCodeString3Optional
GuidGuidOptional
Available Fields for Customer

POST / PUT Sales Orders

PropertyTypeLengthPOST
GuidGuidOptional
CustomerCodeString500Optional
Available Fields for Salesperson

POST / PUT Sales Orders

PropertyTypeLengthPOST
EmailString256
FullNameString256
GuidGuidRequired
Available Fields for Tax

POST / PUT Sales Orders

PropertyTypeLengthPOST
TaxCodeString25Optional
TaxRateDecimalOptional
Available Fields for Warehouse

POST / PUT Sales Orders

PropertyTypeLengthPOST
GuidGuidOptional
WarehouseCodeString15Optional
Available Fields for POST/PUT Sales Order Lines

POST / PUT Sales Order Lines

PropertyTypeLengthPOSTPUTNotes
BatchNumbersBatchNumberRequired if serialBatch=true .Ignored on charges
CommentsString1024Ignored on charges
DiscountRateDecimalIgnored on charges
DiscountedUnitPriceDecimalUnavailableIf DiscountRate is also specified, DiscountedUnitPrice must equal (1 - DiscountRate) * UnitPrice
GuidGuidRequired
LineTypeStringAccepts Charge or Null only.
OrderQuantityDecimalRequiredRequiredIgnored on charges
ProductProductRequiredN/A
SerialNumbersSerialNumberRequired if serialBatch=true .Ignored on charges
TaxRateDecimalN/AOnly for charges
UnitPriceDecimalFor Charge - this will be rounded to 2 decimal places
Available Fields for Batch Number

POST / PUT Sales Order Lines

PropertyTypeLengthPOST
BatchNumber (XML) / Number (JSON)String50Required
QuantityDecimalRequired
ExpiryDateNullable DateTime
Available Fields for Product

POST / PUT Sales Order Lines

PropertyTypeLengthPOST
GuidGuidOptional
ProductCodeString100Optional
Available Fields for Serial Number

POST / PUT Sales Order Lines

PropertyTypeLengthPOST
SerialNumber (XML) / Identifier (JSON)String50Required
Available Filters for GET Sales Orders

GET Sales Orders

FilterDescription
completedAfterReturns sales orders completed after the specified date.
completedBeforeReturns sales orders completed before the specified date.
customerCodeReturns orders that start with the specific customer code.
customerIdOnly returns orders for a specified Customer GUID. The CustomerId can be specified as a list of comma-separated GUIDs.
customOrderStatusReturns orders with the specified custom status. Multiple selection can be specified as comma separated. If specified, this filter will override the orderStatus filter.
endDateReturns orders with order date before the specified date.
modifiedSinceReturns orders created or edited after a specified date, must be UTC format.
orderNumberReturns a single order with the specified order number. If set, it overrides all other filters.
orderStatusReturns orders with the specified status. Multiple selection can be specified as comma separated. For example: orderStatus=Completed,Backordered . If no orderStatus filter is specified, then we exclude "Deleted" by default.
pageSizeSpecifies the page size for pagination, default is 200 orders. Note: Requesting large numbers of orders can be susceptible to poor network performance. Please reduce the page size if you experience delayed requests.
serialBatchFalse by default. If set to true then the attributes SerialNumbers and BatchNumbers are displayed.
sourceIdReturns orders with the specified sourceId. If set, it overrides all other filters.
startDateReturns orders with order date after the specified date.
warehouseCodeReturns sales orders with the specified warehouse code.
Available Filters for POST/PUT Sales Orders

POST / PUT Sales Orders

FilterDescription
saveAddressFalse by default. If saveAddress=true and there is a delivery name, it will add/update the customer address. If there is no delivery name, the customer address will not be updated.
sendAccountingJournalOnlyWhen creating a sales order, if you want to pass only a journal and not the invoice into Xero / QuickBooks Online, you can set the parameter to true .
serialBatchIf set to true then the attributes SerialNumbers and BatchNumbers are auto-assigned.
taxInclusiveOrder includes sales tax on each of the order lines. Note that Unleashed will re-calculate the order exclusive of tax before saving it.
Available Filters for POST/PUT Sales Orders

POST / PUT Sales Order Lines

FilterDescription
serialBatchFor the POST /SalesOrders/{orderGuid}/Lines method, if set to true, the SerialNumbers and BatchNumbers must be included in the body of the Line.
Inspect the complete operation contract

The exact retained JSON includes schemas, nested fields, notes, source evidence and unresolved questions. It is a documented contract, not a live response.

{
  "id": "complete_sales_orders",
  "name": "unleashed_complete_sales_orders",
  "resourceId": "SalesOrders",
  "description": "Complete a Sales Order",
  "method": "POST",
  "path": "/SalesOrders/{orderGuid}/Complete",
  "documentationUrl": "https://apidocs.unleashedsoftware.com/SalesOrders",
  "readOnly": false,
  "destructive": true,
  "idempotent": false,
  "pathParameters": [
    {
      "name": "orderGuid",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1
      },
      "description": "Provider identifier from the corresponding resource; preserve the documented identifier type."
    }
  ],
  "queryParameters": [],
  "requestBodySchema": null,
  "responseSchema": null,
  "pagination": null,
  "notes": [
    "Do not automatically replay after an ambiguous transport failure. The documentation does not establish an idempotency-key contract for this operation.",
    "Omitted DeliveryContact preserves its previous value. Empty/null DeliveryContact.Guid clears it. Omitted/null DeliveryInstruction preserves its previous value. UseDefaultDeliveryAddress is write-only."
  ],
  "provenance": [
    {
      "sourceUrl": "https://apidocs.unleashedsoftware.com/SalesOrders",
      "sourceSha256": "63d4cda63a0fc28af35ccaca8cb3c7966a79ad68a7fc1709864b662da46d32f8",
      "section": "The full range of URIs and HTTP Verbs supported are",
      "evidence": "POST /SalesOrders/{orderGuid}/Complete",
      "operationDescriptions": [
        "Complete a Sales Order"
      ]
    }
  ],
  "confidence": "documented-route",
  "unresolved": [
    "No authenticated sandbox or production request has verified this operation.",
    "The documentation lists this action but does not provide a dedicated request-body schema. Confirm empty-body versus entity-body behaviour in a sandbox."
  ],
  "requestFieldTable": null,
  "responseFieldTable": null
}
Inspect the complete resource record
{
  "id": "SalesOrders",
  "name": "Sales Orders",
  "group": "Editable resources",
  "documentationUrl": "https://apidocs.unleashedsoftware.com/SalesOrders",
  "snapshot": "snapshots/SalesOrders.html",
  "sourceSha256": "63d4cda63a0fc28af35ccaca8cb3c7966a79ad68a7fc1709864b662da46d32f8",
  "fetchedAt": "2026-10-23T14:00:33.310008+00:00",
  "operationIds": [
    "list_sales_orders",
    "get_sales_orders",
    "create_sales_orders",
    "create_sales_orders_with_guid",
    "create_sales_orders_lines",
    "complete_sales_orders",
    "update_sales_orders",
    "update_sales_orders_lines",
    "delete_sales_orders",
    "delete_sales_orders_lines"
  ],
  "fieldTables": [
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for GET Sales Orders",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "Notes"
        ],
        [
          "BCSubTotal",
          "Nullable Decimal",
          "",
          "Base Currency SubTotal"
        ],
        [
          "BCTaxTotal",
          "Nullable Decimal",
          "",
          "Base Currency TaxTotal"
        ],
        [
          "BCTotal",
          "Nullable Decimal",
          "",
          "Base Currency Total"
        ],
        [
          "Comments",
          "String",
          "2048",
          ""
        ],
        [
          "CompletedDate",
          "Nullable DateTime",
          "",
          "UTC timezone only"
        ],
        [
          "CreatedBy",
          "String",
          "50",
          ""
        ],
        [
          "CreatedOn",
          "DateTime",
          "",
          ""
        ],
        [
          "Currency",
          "Currency",
          "",
          ""
        ],
        [
          "Customer",
          "Customer",
          "",
          ""
        ],
        [
          "CustomerRef",
          "String",
          "500",
          ""
        ],
        [
          "CustomOrderStatus",
          "String",
          "15",
          "Must be a valid custom order status and OrderStatus must be PARKED. The available values can be listed with GET /SalesOrderStatuses"
        ],
        [
          "DeliveryCity",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryContact",
          "DeliveryContact",
          "",
          ""
        ],
        [
          "DeliveryCountry",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryInstruction",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryMethod",
          "String",
          "50",
          ""
        ],
        [
          "DeliveryName",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryPostCode",
          "String",
          "50",
          ""
        ],
        [
          "DeliveryRegion",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryStreetAddress",
          "String",
          "500",
          ""
        ],
        [
          "DeliveryStreetAddress2",
          "String",
          "500",
          ""
        ],
        [
          "DeliverySuburb",
          "String",
          "500",
          ""
        ],
        [
          "DiscountRate",
          "Decimal",
          "",
          ""
        ],
        [
          "ExchangeRate",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "Guid",
          "Guid",
          "",
          ""
        ],
        [
          "LastModifiedBy",
          "String",
          "50",
          ""
        ],
        [
          "LastModifiedOn",
          "Nullable DateTime",
          "",
          ""
        ],
        [
          "OrderDate",
          "Nullable DateTime",
          "",
          ""
        ],
        [
          "OrderNumber",
          "String",
          "20",
          ""
        ],
        [
          "OrderStatus",
          "String",
          "20",
          ""
        ],
        [
          "PaymentDueDate",
          "Nullable DateTime",
          "",
          "UTC timezone only"
        ],
        [
          "ReceivedDate",
          "Nullable DateTime",
          "",
          "UTC timezone only"
        ],
        [
          "RequiredDate",
          "Nullable DateTime",
          "",
          ""
        ],
        [
          "CompletedDate",
          "Nullable DateTime",
          "",
          "UTC timezone only"
        ],
        [
          "SalesOrderGroup",
          "String",
          "50",
          ""
        ],
        [
          "SalesAccount",
          "String",
          "50",
          ""
        ],
        [
          "SalesOrderLines",
          "SalesOrderLine collection",
          "",
          ""
        ],
        [
          "Salesperson",
          "Salesperson",
          "",
          ""
        ],
        [
          "SourceId",
          "String",
          "500",
          ""
        ],
        [
          "SubTotal",
          "Decimal",
          "",
          ""
        ],
        [
          "Tax",
          "Tax",
          "",
          ""
        ],
        [
          "TaxRate",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "TaxTotal",
          "Decimal",
          "",
          ""
        ],
        [
          "Total",
          "Decimal",
          "",
          ""
        ],
        [
          "TotalVolume",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "TotalWeight",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "Warehouse",
          "Warehouse",
          "",
          ""
        ],
        [
          "XeroTaxCode",
          "String",
          "50",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Currency",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "CurrencyCode",
          "String",
          "3"
        ],
        [
          "Description",
          "String",
          "200"
        ],
        [
          "DefaultBuyRate",
          "Decimal",
          ""
        ],
        [
          "DefaultSellRate",
          "Decimal",
          ""
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "LastModifiedOn",
          "DateTime",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Customer",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "CurrencyId",
          "Integer",
          ""
        ],
        [
          "CustomerCode",
          "String",
          "500"
        ],
        [
          "CustomerName",
          "String",
          "500"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "LastModifiedOn",
          "DateTime",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Delivery Contact",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "EmailAddress",
          "String",
          "500"
        ],
        [
          "FirstName",
          "String",
          "500"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "LastName",
          "String",
          "500"
        ],
        [
          "MobilePhone",
          "String",
          "500"
        ],
        [
          "OfficePhone",
          "String",
          "500"
        ],
        [
          "PhoneNumber",
          "String",
          "500"
        ],
        [
          "UseDefaultDeliveryAddress",
          "Boolean",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Salesperson",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "Email",
          "String",
          "500"
        ],
        [
          "FullName",
          "String",
          "500"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "Obsolete",
          "Boolean",
          ""
        ],
        [
          "LastModifiedOn",
          "DateTime",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Tax",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "CanApplyToExpenses",
          "Boolean",
          ""
        ],
        [
          "CanApplyToRevenue",
          "Boolean",
          ""
        ],
        [
          "Description",
          "String",
          "50"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "LastModifiedOn",
          "DateTime",
          ""
        ],
        [
          "Obsolete",
          "Boolean",
          ""
        ],
        [
          "TaxCode",
          "String",
          "25"
        ],
        [
          "TaxRate",
          "Decimal",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Warehouse",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "AddressLine1",
          "String",
          "500"
        ],
        [
          "AddressLine2",
          "String",
          "500"
        ],
        [
          "City",
          "String",
          "500"
        ],
        [
          "ContactName",
          "String",
          "50"
        ],
        [
          "Country",
          "String",
          "500"
        ],
        [
          "DDINumber",
          "String",
          "25"
        ],
        [
          "FaxNumber",
          "String",
          "25"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "IsDefault",
          "Boolean",
          ""
        ],
        [
          "LastModifiedOn",
          "DateTime",
          ""
        ],
        [
          "MobileNumber",
          "String",
          "25"
        ],
        [
          "Obsolete",
          "Boolean",
          ""
        ],
        [
          "PostCode",
          "String",
          "500"
        ],
        [
          "PhoneNumber",
          "String",
          "25"
        ],
        [
          "Region",
          "String",
          "500"
        ],
        [
          "StreetNo",
          "String",
          "500"
        ],
        [
          "Suburb",
          "String",
          "500"
        ],
        [
          "WarehouseCode",
          "String",
          "15"
        ],
        [
          "WarehouseName",
          "String",
          "100"
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Sales Order Lines",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "Notes"
        ],
        [
          "Assembly",
          "Assembly",
          "",
          ""
        ],
        [
          "BCLineTax",
          "Decimal",
          "",
          ""
        ],
        [
          "BCLineTotal",
          "Decimal",
          "",
          ""
        ],
        [
          "BCUnitPrice",
          "Decimal",
          "",
          ""
        ],
        [
          "Comments",
          "String",
          "1024",
          ""
        ],
        [
          "CostOfGoodsAccount",
          "String",
          "50",
          ""
        ],
        [
          "DiscountRate",
          "Decimal",
          "",
          ""
        ],
        [
          "DueDate",
          "DateTime",
          "",
          "This field is deprecated and will be removed in a future version of the API."
        ],
        [
          "Guid",
          "Guid",
          "",
          ""
        ],
        [
          "LastModifiedOn",
          "Nullable DateTime",
          "",
          ""
        ],
        [
          "LineNumber",
          "Integer",
          "",
          ""
        ],
        [
          "LineType",
          "String",
          "",
          ""
        ],
        [
          "LineTax",
          "Decimal",
          "",
          ""
        ],
        [
          "LineTaxCode",
          "String",
          "50",
          ""
        ],
        [
          "LineTotal",
          "Decimal",
          "",
          ""
        ],
        [
          "OrderQuantity",
          "Decimal",
          "",
          ""
        ],
        [
          "Product",
          "Product",
          "",
          ""
        ],
        [
          "TaxRate",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "UnitCost",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "UnitPrice",
          "Decimal",
          "",
          ""
        ],
        [
          "Volume",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "Weight",
          "Nullable Decimal",
          "",
          ""
        ],
        [
          "XeroSalesAccount",
          "String",
          "500",
          ""
        ],
        [
          "XeroTaxCode",
          "String",
          "50",
          ""
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Assembly",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "AssemblyNumber",
          "String",
          "15"
        ],
        [
          "AssemblyStatus",
          "String",
          "15"
        ]
      ]
    },
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Fields for Product",
      "rows": [
        [
          "Property",
          "Type",
          "Length"
        ],
        [
          "Guid",
          "Guid",
          ""
        ],
        [
          "ProductCode",
          "String",
          "100"
        ],
        [
          "ProductDescription",
          "String",
          "500"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for POST/PUT Sales Orders",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST",
          "PUT",
          "Notes"
        ],
        [
          "Comments",
          "String",
          "2048",
          "",
          "",
          ""
        ],
        [
          "CreatedBy",
          "String",
          "",
          "",
          "N/A",
          ""
        ],
        [
          "Currency",
          "Currency",
          "",
          "",
          "N/A",
          "Must match Customer’s currency if specified"
        ],
        [
          "Customer",
          "Customer",
          "",
          "Required",
          "N/A",
          ""
        ],
        [
          "CustomOrderStatus",
          "String",
          "15",
          "",
          "",
          "Must be a valid custom order status. The available values can be listed with GET /SalesOrderStatuses"
        ],
        [
          "CustomerRef",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliveryCity",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliveryCountry",
          "String",
          "500",
          "",
          "",
          "Either CountryCode or CountryName can be provided. 2 character country codes are validated against the ISO 3166 list"
        ],
        [
          "DeliveryContact",
          "DeliveryContact",
          "",
          "",
          "",
          "Only Guid is used to identify the contact; the name, email and phone fields are ignored on POST/PUT. The contact must already exist and belong to the order's customer, otherwise the request is rejected with a 400. Contacts are created and maintained through POST/PUT /Customers/{customerGuid}/Contacts . An omitted DeliveryContact leaves the existing delivery contact unchanged; supplying a DeliveryContact with an empty or null Guid clears it. Set UseDefaultDeliveryAddress to true to take the order's delivery address from the contact's default address, in which case the delivery address fields in the request are ignored, except DeliveryInstruction , which is used when supplied. UseDefaultDeliveryAddress is write-only and is not returned on GET"
        ],
        [
          "DeliveryInstruction",
          "String",
          "500",
          "",
          "",
          "Null or missing property will not override existing information"
        ],
        [
          "DeliveryMethod",
          "String",
          "50",
          "",
          "",
          ""
        ],
        [
          "DeliveryName",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliveryPostCode",
          "String",
          "50",
          "",
          "",
          ""
        ],
        [
          "DeliveryRegion",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliveryStreetAddress",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliveryStreetAddress2",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DeliverySuburb",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "DiscountRate",
          "Decimal",
          "",
          "",
          "",
          ""
        ],
        [
          "ExchangeRate",
          "Decimal",
          "",
          "Required",
          "Required",
          ""
        ],
        [
          "Guid",
          "Guid",
          "",
          "Optional",
          "N/A",
          "Automatically generates a Guid if not provided for POST. Can only be set when adding a record."
        ],
        [
          "OrderDate",
          "DateTime",
          "",
          "",
          "N/A",
          "Must be greater than 2000-01-01"
        ],
        [
          "OrderNumber",
          "String",
          "17",
          "",
          "N/A",
          "Must be unique when submitted via POST. Automatically generated if not provided for POST. Shorter than GET by 3 characters as those are reserved to support the suffix for split shipments and invoices."
        ],
        [
          "OrderStatus",
          "String",
          "20",
          "Required",
          "Required",
          ""
        ],
        [
          "ReceivedDate",
          "DateTime",
          "",
          "",
          "N/A",
          ""
        ],
        [
          "RequiredDate",
          "DateTime",
          "",
          "",
          "",
          "Must be greater than 2000-01-01"
        ],
        [
          "SalesOrderGroup",
          "String",
          "50",
          "",
          "",
          ""
        ],
        [
          "SalesOrderLines",
          "SalesOrderLine collection",
          "",
          "Required",
          "",
          "At least one must be specified."
        ],
        [
          "Salesperson",
          "Salesperson",
          "",
          "",
          "",
          ""
        ],
        [
          "SourceId",
          "String",
          "500",
          "",
          "",
          ""
        ],
        [
          "SubTotal",
          "Decimal (2dp)",
          "",
          "Required",
          "N/A",
          "SubTotal = Sum of SalesOrderLine Totals"
        ],
        [
          "Tax",
          "Tax",
          "",
          "Required",
          "Required",
          ""
        ],
        [
          "TaxRate",
          "Decimal",
          "",
          "Required",
          "N/A",
          ""
        ],
        [
          "TaxTotal",
          "Decimal (2dp)",
          "",
          "Required",
          "N/A",
          "TaxTotal = Sum of SalesOrderLine Taxes"
        ],
        [
          "Total",
          "Decimal (2dp)",
          "",
          "Required",
          "N/A",
          "Total = TaxTotal + SubTotal"
        ],
        [
          "Warehouse",
          "Warehouse",
          "",
          "",
          "Required",
          ""
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for Currency",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "CurrencyCode",
          "String",
          "3",
          "Optional"
        ],
        [
          "Guid",
          "Guid",
          "",
          "Optional"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for Customer",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "Guid",
          "Guid",
          "",
          "Optional"
        ],
        [
          "CustomerCode",
          "String",
          "500",
          "Optional"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for Salesperson",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "Email",
          "String",
          "256",
          ""
        ],
        [
          "FullName",
          "String",
          "256",
          ""
        ],
        [
          "Guid",
          "Guid",
          "",
          "Required"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for Tax",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "TaxCode",
          "String",
          "25",
          "Optional"
        ],
        [
          "TaxRate",
          "Decimal",
          "",
          "Optional"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Fields for Warehouse",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "Guid",
          "Guid",
          "",
          "Optional"
        ],
        [
          "WarehouseCode",
          "String",
          "15",
          "Optional"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Order Lines",
      "anchor": "post--put-sales-order-lines",
      "summary": "Available Fields for POST/PUT Sales Order Lines",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST",
          "PUT",
          "Notes"
        ],
        [
          "BatchNumbers",
          "BatchNumber",
          "",
          "Required if serialBatch=true .",
          "",
          "Ignored on charges"
        ],
        [
          "Comments",
          "String",
          "1024",
          "",
          "",
          "Ignored on charges"
        ],
        [
          "DiscountRate",
          "Decimal",
          "",
          "",
          "",
          "Ignored on charges"
        ],
        [
          "DiscountedUnitPrice",
          "Decimal",
          "",
          "Unavailable",
          "",
          "If DiscountRate is also specified, DiscountedUnitPrice must equal (1 - DiscountRate) * UnitPrice"
        ],
        [
          "Guid",
          "Guid",
          "",
          "",
          "Required",
          ""
        ],
        [
          "LineType",
          "String",
          "",
          "",
          "",
          "Accepts Charge or Null only."
        ],
        [
          "OrderQuantity",
          "Decimal",
          "",
          "Required",
          "Required",
          "Ignored on charges"
        ],
        [
          "Product",
          "Product",
          "",
          "Required",
          "N/A",
          ""
        ],
        [
          "SerialNumbers",
          "SerialNumber",
          "",
          "Required if serialBatch=true .",
          "",
          "Ignored on charges"
        ],
        [
          "TaxRate",
          "Decimal",
          "",
          "",
          "N/A",
          "Only for charges"
        ],
        [
          "UnitPrice",
          "Decimal",
          "",
          "",
          "",
          "For Charge - this will be rounded to 2 decimal places"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Order Lines",
      "anchor": "post--put-sales-order-lines",
      "summary": "Available Fields for Batch Number",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "BatchNumber (XML) / Number (JSON)",
          "String",
          "50",
          "Required"
        ],
        [
          "Quantity",
          "Decimal",
          "",
          "Required"
        ],
        [
          "ExpiryDate",
          "Nullable DateTime",
          "",
          ""
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Order Lines",
      "anchor": "post--put-sales-order-lines",
      "summary": "Available Fields for Product",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "Guid",
          "Guid",
          "",
          "Optional"
        ],
        [
          "ProductCode",
          "String",
          "100",
          "Optional"
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Order Lines",
      "anchor": "post--put-sales-order-lines",
      "summary": "Available Fields for Serial Number",
      "rows": [
        [
          "Property",
          "Type",
          "Length",
          "POST"
        ],
        [
          "SerialNumber (XML) / Identifier (JSON)",
          "String",
          "50",
          "Required"
        ]
      ]
    }
  ],
  "filterTables": [
    {
      "heading": "GET Sales Orders",
      "anchor": "get-sales-orders",
      "summary": "Available Filters for GET Sales Orders",
      "rows": [
        [
          "Filter",
          "Description"
        ],
        [
          "completedAfter",
          "Returns sales orders completed after the specified date."
        ],
        [
          "completedBefore",
          "Returns sales orders completed before the specified date."
        ],
        [
          "customerCode",
          "Returns orders that start with the specific customer code."
        ],
        [
          "customerId",
          "Only returns orders for a specified Customer GUID. The CustomerId can be specified as a list of comma-separated GUIDs."
        ],
        [
          "customOrderStatus",
          "Returns orders with the specified custom status. Multiple selection can be specified as comma separated. If specified, this filter will override the orderStatus filter."
        ],
        [
          "endDate",
          "Returns orders with order date before the specified date."
        ],
        [
          "modifiedSince",
          "Returns orders created or edited after a specified date, must be UTC format."
        ],
        [
          "orderNumber",
          "Returns a single order with the specified order number. If set, it overrides all other filters."
        ],
        [
          "orderStatus",
          "Returns orders with the specified status. Multiple selection can be specified as comma separated. For example: orderStatus=Completed,Backordered . If no orderStatus filter is specified, then we exclude \"Deleted\" by default."
        ],
        [
          "pageSize",
          "Specifies the page size for pagination, default is 200 orders. Note: Requesting large numbers of orders can be susceptible to poor network performance. Please reduce the page size if you experience delayed requests."
        ],
        [
          "serialBatch",
          "False by default. If set to true then the attributes SerialNumbers and BatchNumbers are displayed."
        ],
        [
          "sourceId",
          "Returns orders with the specified sourceId. If set, it overrides all other filters."
        ],
        [
          "startDate",
          "Returns orders with order date after the specified date."
        ],
        [
          "warehouseCode",
          "Returns sales orders with the specified warehouse code."
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Orders",
      "anchor": "post--put-sales-orders",
      "summary": "Available Filters for POST/PUT Sales Orders",
      "rows": [
        [
          "Filter",
          "Description"
        ],
        [
          "saveAddress",
          "False by default. If saveAddress=true and there is a delivery name, it will add/update the customer address. If there is no delivery name, the customer address will not be updated."
        ],
        [
          "sendAccountingJournalOnly",
          "When creating a sales order, if you want to pass only a journal and not the invoice into Xero / QuickBooks Online, you can set the parameter to true ."
        ],
        [
          "serialBatch",
          "If set to true then the attributes SerialNumbers and BatchNumbers are auto-assigned."
        ],
        [
          "taxInclusive",
          "Order includes sales tax on each of the order lines. Note that Unleashed will re-calculate the order exclusive of tax before saving it."
        ]
      ]
    },
    {
      "heading": "POST / PUT Sales Order Lines",
      "anchor": "post--put-sales-order-lines",
      "summary": "Available Filters for POST/PUT Sales Orders",
      "rows": [
        [
          "Filter",
          "Description"
        ],
        [
          "serialBatch",
          "For the POST /SalesOrders/{orderGuid}/Lines method, if set to true, the SerialNumbers and BatchNumbers must be included in the body of the Line."
        ]
      ]
    }
  ],
  "documentationNotes": [
    "The SalesOrders resource allows sales orders to be listed, viewed, and created. An individual sales order’s details can be viewed by appending its identifier (a GUID formatted as XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ) to the URI.",
    "Tip: To efficiently retrieve a count of the orders that match a filter, specify a pageSize of 0: /SalesOrders?orderStatus=Parked,Placed&pageSize=0 . The default ordering is by LastModifiedOn descending.",
    "Note: On POST/PUT only Guid and UseDefaultDeliveryAddress are used. Guid references an existing contact of the order's customer, and UseDefaultDeliveryAddress ( false when not supplied) replaces the order's delivery address with the contact's default address, ignoring any delivery address fields in the request except DeliveryInstruction , which is used when supplied. UseDefaultDeliveryAddress is write-only and is not returned on GET. The remaining fields are read-only and are ignored on write.",
    "Note: If one of the editable fields for PUT is blank, the previous value will be overwritten with the blank value",
    "Note: At a minimum, a valid Guid or CurrencyCode is required.",
    "Note: At a minimum, a valid Guid or CustomerCode is required.",
    "Note: At a minimum, a valid TaxCode or TaxRate is required.",
    "Note: At a minimum, a valid Guid or WarehouseCode is required.",
    "Note: The discounted unit price needs to be at least the product's minimum sell price.",
    "Note: If not defined OR the batch is not in the selected warehouse, post will succeed and batch numbers will not be allocated.",
    "Note: At a minimum, a valid Guid or ProductCode is required.",
    "Note: If not defined OR the serials are not in the selected warehouse, post will succeed and serial numbers will not be allocated."
  ]
}

What has been verified

Documented coverage
145 operation variants retained from official provider documentation, with 43 resource records and their field and filter tables. These counts describe documentation, not proven live workflows.
Agent connection
Actual Claude Desktop and web connection, model-selected platform utility calls, renewal after natural token expiry and revoked-access rejection passed. Codex and Claude Code authentication and discovery were also checked. These tests made no provider business requests.
Live business workflows
Awaiting an authorised Unleashed account. Provider reads, writes and business workflows are not yet verified.
More software, the same workspace

Explore Procore MCP

Inspect the Procore catalogue and the approval and account requirements while live acceptance is still pending.

Explore Procore →