Overview
The AgilityPublic and Agility APIs are Application Programming Interfaces that can be accessed over the internet and executed on a remote system hosting the requested services. These APIs allow a client application to make service requests for the operations (methods) that are exposed. These operations are limited to the operations DMSi elects to expose and various levels of security allow the network, database, and/or system administrators to restrict access to the API functionality.
The goals of the AgilityPublic and Agility APIs:
- Provide a mechanism to expose business logic and data on the intranet and/or internet via web services.
- Provide a mechanism to leverage existing business logic.
- Provide a mechanism to keep the business logic on the server side, but allow it to be shared across different clients to include internal DMSi applications and external applications created by DMSi customers or contracted with private third party entities on our customer's behalf.
This document is intended as a high level overview of the DMSi APIs and the methods available in the REST APIs and their services.
URL Information
- When working with an Agility customer, the URL for their API, which is tied to their database, is available from the customer.
Testing Tool
- All variable (header) information referenced in the documentation for specific methods refers to options within the Blazemeter testing tool.
- Blazemeter allows you to create API tests for any of the available REST methods in this document and can be accessed at blazemeter.com
- There are many other tools available for testing REST methods. DMSi does not mandate the use of Blazemeter, but does employ it as our tool of choice.
General Information
Field Data Types
Character
Date
- yyyy-mm-dd
- When date is not required, "" indicates no date
Decimal (0.00 or 0.0000)
- The value of 0 is the standard default value to be used to pass data type validation.
- Please be aware 0 is a valid value for some fields during processing. One example is the
Pricefield when creating or updating price records. Because of that, please be sure to understand the context and business rules associated with each method, especially those which create or update records.
Integer (0)
- The value of 0 is the standard default value to be used to pass data type validation.
- Please be aware 0 is a valid value for some fields during processing. One example is the Price field when creating or updating price records. Because of that, please be sure to understand the context and business rules associated with each method, especially those which create or update records.
Logical
- The value of "true" or "false" is valid
Data-Chunking
- Available in select methods, data chunking allows the user to limit the number of records returned with a single call to a method. Below, the purpose of each of the fields related to data chunking is outlined. Please note that not all of the below fields are available in all methods that offer chunking.
RecordFetchLimit
- set this input to the number of records to be returned in a run.
- If the field is empty, the method returns the number of records as noted in System Config > Default chunk size.
- The user is able to enter whatever value they wish in this field. However, the maximum number of records returned at any one time is based on System Config > Max chunk size.
ChunkStartPointer
- used in conjunction with output parameter
MoreResultsAvailableandNextChunkStartPointer. This input allows the user to indicate the record number to start at for the next chunk of data. The value for this input is found in theNextChunkStartPointeroutput field from the previous run of the method.
MoreResultsAvailable
- This output indicates whether there are records that meet the criteria but were not in the output results set returned. If this value is returned as true, more records can be retrieved by using the
ChunkStartPointerinput or changing theRecordFetchLimitas allowable.
NextChunkStartPointer
- This output indicates the record number at which the next chunk of data starts. This output value in this field becomes the input value for
ChunkStartPointerif the user wants to continue to pull records for this criteria.
Parent/Child Relationships
- Select methods have parent/child relationships for either inputs or outputs. The key to matching the parent and the child (and grandchild, if existing) is a combination of key parent fields found in the child/grandchild tables, which serves as the connector between the records, unless otherwise specifically noted for that method. In addition, the child/grandchild table includes a sequencing value to show the order of the records in that table as related to the parent. While the full name of the sequencing field varies, it always includes Sequence or Seq at the end, unless otherwise noted.
- For example, in
GetShipmentsDisplay, the parent table includes theOrderIDandShipmentNum. Those fields are also found in the child table. In addition, the Sequence field in the child table shows the order of the items on that shipment.
Input Parameters
Casing must be taken into consideration with input parameters.
- Example: If the input parameter is
ShiptoSequenceand you sendShipToSequencein the request, this is processed with a null value and will not return the expected results.
Special Characters
Special character values such as < or > must be entered with the ESC characters to pass XML standards. For example, to enter a route of <all>, enter the value as <all>
Please consult outside documentation for acceptable translations of special characters.
ReturnCode and MessageText Notes
- The API methods return one of 3 values for ReturnCode.
- 0 = success
- 1 = warning
- 2 = error
- If
ReturnCode= 0,MessageTextmay be blank. When not blank, it contains information associated with the success. - If
ReturnCode= 1 or 2, an accompanyingMessageTextis returned to assist in diagnosing the issue. - When an error is encountered, the FIRST failure is returned as
MessageText. There may be multiple errors in the request that need to be resolved before the call would be successful. - If a method encounters an error, the overall method call fails. We do not partially process any request, unless other noted for the method.
- Depending on the method being called and the logic being run, a
ReturnCode= 0 may mean not complete success. It simply means the overall process ran to completion with no fatal errors. This mainly applies to methods which update data, but could apply to others. - Method calls which do not contains the appropriate data for the specific data types associated with fields fail to make it to Agility as those rules are enforced within the web server. For example, if you attempt to send in a character value for a Decimal field, the request fails. Please consult the dataset or method definition to understand the expected data types for each input field.
- The
ReturnCodeandMessageTextshould be carefully inspected to ensure any exceptions are properly handled.
AgilityPublic API Technical Information
The AgilityPublic API is deployed using REST supporting .NET and Progress clients. This API utilizes RPC with JSON. It uses a state-free session model architecturally, but functionally requires that the client logs in to get a context ID and Branch before business requests are made.
The parameter signatures for the methods that can be requested from the web service are simple data types, with the exception of data structured in records. Groups of records are passed as a complex type that can be translated from/to a dataset.
The login request returns the client’s initial Branch ID as well as the context ID when login has been successful. Branch in Agility means a defined portion of the business that Agility serves. For most Agility systems, branch refers to physical locations, like the Omaha branch and the Milwaukee branch. Some Agility systems are set up such that branches represent something other than location, like functional departments. While some Agility systems have many branches and others have as few as one, there is always at least one branch in Agility, and all Agility processes are performed from the perspective of a particular branch. Therefore, to ensure the user is valid, the context ID and branch ID must be sent in the header for each request.
Note that if a particular context ID is not used to run a program for a certain amount of time, that context ID times out. When the time out occurs, the next request of the server from that client using that context id is rejected. The default time out setting is 4 hours, but the system manager of the Agility system serving the requests can change the value, up to a maximum of 24 hours.
The User ID and Password that are required by the login request are maintained and supplied by the system manager of the Agility system serving the requests. This is not a hard-coded User ID and Password that are specific to a particular usage of Agility Web Services. In other words there is no DMSi-mandated User ID designated for a specific product that interfaces with Agility. Each DMSi customer is allowed to set their own level of security for all User IDs, including the User IDs they create to allow Agility access for 3rd party products.
The AgilityPublic API supports versioning as DMSi routinely makes enhancements and changes to the web services. Changes to web services are detailed in the release notes and, depending on the change, within help documentation with each Agility version.
AgilityPublic/AccountsPayable Service
This AgilityPublic service contains methods related to creating and updating accounts payable information.
InvoiceCreate
Sample Request
{
"request": {
"dsInvoiceRequest": {
"dtInvoiceHeaderRequest": [
{
"InvoiceID": "01251901",
"InvoiceDate": "2019-01-25",
"PostingPeriod": 1,
"PostingYear": 2019,
"SupplierID": "WEH",
"SupplierRemitToSequence": 1,
"EnforceSupplierMatch": true,
"PaymentMethod": "Check",
"PaymentTermsCode": "",
"DueDate": null,
"BatchID": "1",
"Requires1099": false,
"Payment1099TypeCode": "",
"Taxable": false,
"TaxAmount": null,
"TaxCode": "",
"DiscountDate": null,
"DiscountAmount": 0,
"VoucherStatus": "Ready for Payment",
"FreightID": "",
"CashGLAccount": "",
"DiscountGLAccount": "",
"APGLAccount": "",
"PaymentRemark": "",
"HandlingCode": "FEDEX",
"HandlingCodeAddlInfo": "FAST",
"SuppressCurrencyMatch": false
}
],
"dtInvoiceOrdersRequest": [
{
"TranOrAPReconID": "8003",
"Amount": 0,
"DiscountableAmount": 0,
"TaxAmount": 0
}
],
"dtExpenseAccountsRequest": [
{
"GLExpAccount": "0100120004",
"Amount": 0,
"ProjectNumber": null,
"Remark": null
}
]
}
}
}
Sample Response
{
"response": {
"VoucherNumber": 2170,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates an A/P invoice
Header
ContextIdBranchContent-Type= application/json
Required Inputs
InvoiceIDInvoiceDatePostingPeriodPostingYearSupplierIDSupplierRemitToSequence;dtAPExpenseAccountsand/ordtAPInvoiceOrders(when applicable)
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextVoucherNumber
Notes
- You must include at least one A/P Invoice Orders detail or A/P Expense Accounts detail with the A/P Invoice Header
- When a field contains a value of null, the system creates the A/P Invoice based on the default specified in Agility
- Multiple transactions and/or expense G/L accounts can be associated with a single A/P Invoice, and the net total creates either an A/P Invoice or an A/P Credit memo
- The
SuppressCurrencyMatchfield is available in v543 - The
dtInvoiceHeaderRequestTaxAmountfield is available in v549 - When
TaxAmountis provided in both thedtInvoiceHeaderRequestand thedtInvoiceOrdersRequest, only thedtInvoiceHeaderRequestTaxAmountvalue is used - With v549, non-taxable vouchers with a tax amount can be created when the
dtInvoiceHeaderRequestsection includes a value forTaxAmount
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
AgilityPublic/AccountsReceivable Service
This AgilityPublic service contains methods related to creating and updating accounts receivable information.
BalancesList
Sample Request
{
"request": {
"CustomerID": "12345"
}
}
Sample Response
{
"response": {
"BalanceResponse": {
"dsARBalanceResponse": {
"dtARBalanceHeaderResponse": [
{
"CustomerID": "12345",
"BranchID": "WESTONBRANCH",
"ProcessDate": "2019-01-17",
"CustomerName": "DAA Hardware and Supply",
"AccountBalance": -679793.05,
"FutureBalance": 0,
"CurrentBalance": -841956.04,
"PastDueBalance1": 0,
"PastDueBalance2": -500,
"PastDueBalance3": 0,
"PastDueBalance4": 0,
"FinanceChargeTotal": 0,
"PaymentOnAcctTotal": -829596.37,
"DepositOnAcctTotal": -12359.67,
"OnHoldTotal": 0,
"TermsDiscountTotal": 0,
"LastPaymentDate": "2018-09-18",
"LastPaymentAmount": 354.05,
"PastDueBalance1Label": "2-30 Days",
"PastDueBalance2Label": "31-60 Days",
"PastDueBalance3Label": "61-90 Days",
"PastDueBalance4Label": "Over 90 Days",
"dtARBalanceDetailResponse": [
{
"CustomerID": "12345",
"BranchID": "WESTONBRANCH",
"ProcessDate": "2019-01-17",
"InvoiceNumber": "CA-000000222",
"InvoiceNumberSequence": 0,
"TransactionID": 0,
"ShipmentNumber": 0,
"InvoiceType": "Payment on Account",
"ShipToSequence": 1,
"BillToSequence": 1,
"CustomerPO": "",
"InvoiceOnHold": false,
"ShipDate": null,
"InvoiceDate": "2018-02-21",
"InvoiceDueDate": "2018-02-21",
"TermsCode": "",
"TermsDescription": "",
"TermsDiscountDate": null,
"TermsDiscountAmount": 0,
"InvoiceSubtotal": -500,
"InvoiceChargesAmount": 0,
"InvoiceTaxAmount": 0,
"InvoiceTotal": -500,
"InvoicePaymentAdjustAmount": 0,
"InvoiceBalance": -500,
"TransactionReference": "",
"TransactionJob": "",
"PaymentId": "02212018002741",
"CMOrigInvoiceNumber": "",
"ShipToName": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "",
"ShipToState": "",
"ShipToZip": "",
"PastDueBalanceBucket": ""
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the current AR aging information and related invoices
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- Overall account balance and related invoice information
Notes
- This method returns sold-to level information only, regardless of the levels for printing statements defined on the customer record
- If you have data allocations to some but not all of the ship-tos for a customer, the method returns only A/R balance information for the ship-tos you are authorized to access
- This method may return information for branches the user does not have access to, depending on the setting the View A/R Detail for All Branches action allocation
- The Type and Cycle Code settings on the customer record are ignored when retrieving information using this method
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList
Version Deployed
v539
CustomerOpenActivity
Sample Request
{
"request": {
"CustomerID": "12345",
"ShiptoSequence": 1
}
}
Sample Response
{
"response": {
"OrdersResponse": {
"dsOrdersResponse": {
"dtOrderResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 262569,
"CustomerID": "123161",
"ShipToSequence": 2,
"OrderedBy": "",
"OrderDate": "2016-10-24",
"ExpectedDate": "2016-10-25",
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse Order WH",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "testshipvia",
"FreightTerms": "",
"PayTermsCode": "LAL",
"OrderSubtotal": 80.01,
"OrderChargesAmount": 0,
"Taxable": false,
"TaxCode": "",
"OrderTaxAmount": 0,
"OrderTotal": 80.01,
"DiscountAmount": 0.8,
"AfterDeductFreightAmt": 0,
"ShipToName": "DAA HARDWARE SHIP-TO 2",
"ShipToAddress1": "SHIP TO 2 SGL ACCT BT 1",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "override",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68130",
"ShipToPhone": "(402)-555-1111",
"BillToName": "DAA HARDWARE BILL-TO 1",
"BillToAddress1": "123 A STREET",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "LA VISTA",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68128",
"BillToPhone": "( )- - ",
"SalesAgentID1": "0901",
"SalesAgentName1": "",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2016-10-24",
"UpdateTime": "14:00:48",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": false,
"CostTotal": 0,
"CostType": "Item default",
"TotalWeight": 0,
"TotalLoad": 0,
"dtOrderDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 262569,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "SO",
"ItemCode": "QuickBOM",
"ItemSize": "Extraordinary & Fancy",
"ItemDescription": "3-0 X 6-8",
"TotalOrderedQuantity": 1,
"QuantityUOM": "EA",
"GrossPrice": 80.01,
"NetPrice": 80.01,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 80.01,
"TotalBackorderedQuantity": 1,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "001",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": 0,
"ExtWeight": 0,
"ExtLoad": 0,
"ExpectedDate": "2016-10-25"
}
]
}
]
}
},
"QuotesResponse": {
"dsQuotesResponse": {
"dtQuoteResponse": [
{
"BranchID": "WESTONBRANCH",
"QuoteID": 289539,
"HeaderGUID": "100963d-ec89-4814-dd00b59682",
"QuoteType": "",
"CustomerID": "123161",
"ShipToSequence": 2,
"QuotedBy": "llattier",
"QuotedFor": "Joe Smith",
"QuoteDate": "2018-11-20",
"ActivationDate": "2018-11-20",
"ClosedDate": "2019-03-20",
"QuoteProcessStatus": "Open",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse Order WH",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"ShipVia": "",
"FreightTerms": "",
"PayTermsCode": "LAL",
"OrderSubtotal": 46,
"OrderChargesAmount": 0,
"Taxable": false,
"TaxCode": "NE5.5",
"OrderTaxAmount": 0,
"OrderTotal": 46,
"DiscountAmount": 0.46,
"AfterDeductFreightAmt": 0,
"ShipToName": "DAA Hardware & <> / : ' , Supp",
"ShipToAddress1": "ADDRESS LINE 1",
"ShipToAddress2": "ADDRESS LINE 2",
"ShipToAddress3": "",
"ShipToCity": "La Vista",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68128",
"ShipToPhone": "(402)-555-1111",
"BillToName": "DAA HARDWARE BILL-TO 1",
"BillToAddress1": "123 A STREET",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "LA VISTA",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68128",
"BillToPhone": "( )- - ",
"SalesAgentID1": "0901",
"SalesAgentName1": "",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"dtQuoteDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"QuoteID": 289539,
"Sequence": 1,
"DisplaySequence": 1,
"ItemCode": "LL-NAILS",
"ItemSize": "",
"ItemDescription": "",
"DetailProcessStatus": "Open",
"TotalOrderedQuantity": 10,
"QuantityUOM": "EA",
"GrossPrice": 2.5,
"NetPrice": 2.5,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 25,
"WOPhrase": ""
}
]
}
]
}
},
"CreditMemosResponse": {
"dsCreditMemosResponse": {
"dtCreditMemoResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 302150,
"CustomerID": "123161",
"ShipToSequence": 2,
"OrderedBy": "",
"OrderDate": "2019-02-21",
"ExpectedDate": null,
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse Order WH",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "",
"FreightTerms": "",
"PayTermsCode": "LAL",
"OrderSubtotal": -25,
"OrderChargesAmount": 0,
"Taxable": false,
"TaxCode": "NE5.5",
"OrderTaxAmount": 0,
"OrderTotal": -25,
"DiscountAmount": -0.25,
"AfterDeductFreightAmt": 0,
"ShipToName": "DAA Hardware & <> / : ' , Supp",
"ShipToAddress1": "ADDRESS LINE 1",
"ShipToAddress2": "ADDRESS LINE 2",
"ShipToAddress3": "",
"ShipToCity": "La Vista",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68128",
"ShipToPhone": "(402)-555-1111",
"BillToName": "DAA HARDWARE BILL-TO 1",
"BillToAddress1": "123 A STREET",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "LA VISTA",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68128",
"BillToPhone": "( )- - ",
"SalesAgentID1": "0901",
"SalesAgentName1": "",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2019-02-21",
"UpdateTime": "07:25:53",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": false,
"CostTotal": -0.03,
"CostType": "Item default",
"TotalWeight": 70,
"TotalLoad": 0,
"StatusType": "RMA",
"dtCreditMemoDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 302150,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "CM",
"ItemCode": "LL-NAILS",
"ItemSize": "",
"ItemDescription": "",
"TotalOrderedQuantity": -10,
"QuantityUOM": "EA",
"GrossPrice": 2.5,
"NetPrice": 2.5,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": -25,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": -0.0252,
"ExtWeight": 70,
"ExtLoad": 0
}
]
}
]
}
},
"BalanceResponse": {
"dsCustBalanceResponse": {
"dtBalanceHeaderResponse": [
{
"CustomerID": "123161",
"BranchID": "WESTONBRANCH",
"ProcessDate": "2019-03-14",
"CustomerName": "DAA Hardware and Supply",
"AccountBalance": -679787.2,
"FutureBalance": 0,
"CurrentBalance": -841956.04,
"PastDueBalance1": -4.15,
"PastDueBalance2": 10,
"PastDueBalance3": -975.08,
"PastDueBalance4": 163138.07,
"FinanceChargeTotal": 0,
"PaymentOnAcctTotal": -829596.37,
"DepositOnAcctTotal": -12359.67,
"OnHoldTotal": 0,
"TermsDiscountTotal": 0,
"LastPaymentDate": "2018-09-18",
"LastPaymentAmount": 354.05,
"PastDueBalance1Label": "2-30 Days",
"PastDueBalance2Label": "31-60 Days",
"PastDueBalance3Label": "61-90 Days",
"PastDueBalance4Label": "Over 90 Days",
"dtBalanceDetailResponse": [
{
"CustomerID": "123161",
"BranchID": "WESTONBRANCH",
"ProcessDate": "2019-03-14",
"InvoiceNumber": "CA-000000222",
"InvoiceNumberSequence": 0,
"TransactionID": 0,
"ShipmentNumber": 0,
"InvoiceType": "Payment on Account",
"ShipToSequence": 1,
"BillToSequence": 1,
"CustomerPO": "",
"InvoiceOnHold": false,
"ShipDate": null,
"InvoiceDate": "2018-02-21",
"InvoiceDueDate": "2018-02-21",
"TermsCode": "",
"TermsDescription": "",
"TermsDiscountDate": null,
"TermsDiscountAmount": 0,
"InvoiceSubtotal": -500,
"InvoiceChargesAmount": 0,
"InvoiceTaxAmount": 0,
"InvoiceTotal": -500,
"InvoicePaymentAdjustAmount": 0,
"InvoiceBalance": -500,
"TransactionReference": "",
"TransactionJob": "",
"PaymentId": "02212018002741",
"CMOrigInvoiceNumber": "",
"ShipToName": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "",
"ShipToState": "",
"ShipToZip": "",
"PastDueBalanceBucket": ""
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of open orders, open quotes, open credit memos, and the AR balances for a specific customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
Optional Inputs
ShiptoSequence
Response
- ReturnCode
MessageText- overall account balance and related invoice information
Notes
- This method is conditioned to return only open sales orders, credit memos, and quotes. Invoiced and cancelled transactions are excluded.
- This method can be run with or without a
ShiptoSequence. When run with aShiptoSequence, AR balance information is returned at the sold-to level only
Relationships
ContextIdcomes from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShiptoSequencecome from CustomerShiptoList
Version Deployed
v539
InvoicesList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "12345",
"ShiptoSequence": 1,
"IncludeOnlyOpenInvoices": false,
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"InvoiceResponse": {
"dsInvoiceResponse": {
"dtInvoiceOrderResponse": [
{
"BranchID": "WESTON",
"InvoiceNumber": "00000350-001",
"InvoiceNumberSequence": 0,
"TransactionID": 350,
"TransactionType": "SO",
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"CustomerID": "12345",
"ShipToSequence": 1,
"OrderedBy": "",
"OrderDate": "2019-01-25",
"ShipDate": "2019-01-25",
"InvoiceDate": "2019-01-25",
"InvoiceDueDate": "2019-02-24",
"InvoiceStatus": "Open",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "",
"FreightTerms": "",
"PayTermsCode": "2%10NET30",
"OrderSubtotal": 124.9,
"OrderChargesAmount": 30,
"Taxable": true,
"TaxCode": "City of Chicago",
"OrderTaxAmount": 9.99,
"OrderTotal": 164.89,
"InvoicePaymentAdjustAmount": 0,
"OrderBalance": 164.89,
"DiscountAmount": 2.5,
"DiscountDate": "2019-02-04",
"AfterDeductFreightAmt": 0,
"ShipToName": "DS SUPPLY",
"ShipToAddress1": "6574 Industrial Road",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Chicago",
"ShipToState": "IL",
"ShipToCountry": "USA",
"ShipToZip": "60176- ",
"ShipToPhone": "(312)-555-7845",
"BillToName": "DAVE SMITH",
"BillToAddress1": "123 Industrial Road",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "Chicago",
"BillToState": "IL",
"BillToCountry": "USA",
"BillToZip": "60176- ",
"BillToPhone": "(312)-555-7845",
"SalesAgentID1": "1001",
"SalesAgentName1": "John Doe",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"dtInvoiceDetailResponse": [
{
"BranchID": "WESTON",
"InvoiceNumber": "00000350-001",
"InvoiceNumberSequence": 0,
"TransactionID": 350,
"TransactionType": "SO",
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"Sequence": 1,
"DisplaySequence": 1,
"ItemCode": "xHammer",
"ItemSize": "",
"ItemDescription": "hammer",
"TotalOrderedQuantity": 10,
"ShippedQuantity": 10,
"QuantityUOM": "EA01",
"Price": 12.49,
"PriceUOM": "EA01",
"DiscountDescription": "",
"ExtendedPrice": 124.9
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of invoices, including invoice details, for a specific customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceIncludeOnlyOpenInvoicesInvoiceDateRangeStartInvoiceDateRangeEndChunkStartPointerRecordFetchLimit
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- list of invoices
- including details
Notes
- To request invoices for all ship-tos, enter a value of 0 in
ShiptoSequence - This method allows a date range for criteria. Please see the Special notes for input values related to data topic for more information
- This method allows a user to request a specific number of records. Please see the Chunking topic for more information
SearchByandSearchValue, while displayed as inputs, are not operational for this method and are reserved for future use
Relationships
ContextIdcomes from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShiptoSequencecome from CustomerShiptosList - Parent/Child relationship exists between
dtInvoiceOrderanddtInvoiceDetailthroughInvoiceNumber. Please see Parent/Child relationship topic for more information
Version Deployed
v539
AgilityPublic/Customer Service
This AgilityPublic service contains methods related to creating and updating customer information. The following applies to all methods within the AgilityPublic Customer Service:
- When using null in the request, the value is set as follows:
- Character – ""
- Date – ""
- Integer – 0
- Decimal – 0.00
- Logical – Invalid format
- When using "" in the request, the value is set as follows:
- Character – ""
- Date – ""
- Integer – Invalid format
- Decimal – Invalid format
- Logical – Invalid format
CustomerBank
Sample Request
{
"request": {
"CustomerID": "",
"AccountNumber": "",
"RoutingNumber": "",
"BankJSON": {
"dsCustomerBank": {
"dtCustomerBank": [
{
"BankName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates sold-to customer bank information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDAccountNumberRoutingNumberBankJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to customer must exist
- Any fields not include in the
BankJSONassume the default values of the new or existing customer bank information record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerBilltoBank
Sample Request
{
"request": {
"CustomerID": "",
"BilltoSequence": 0,
"AccountNumber": "",
"RoutingNumber": "",
"BankJSON": {
"dsCustomerBilltoBank": {
"dtCustomerBilltoBank": [
{
"BankName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates bill-to customer bank information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDBilltoSequenceAccountNumberRoutingNumberBankJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and bill-to customers must exist
- Any fields not include in the
BankJSONassume the default values of the new or existing customer bill-to bank information record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerBilltoContact
Sample Request
{
"request": {
"CustomerID": "",
"BilltoSequence": 0,
"ContactName": "",
"ContactType": "",
"ContactJSON": {
"dsCustomerBilltoContact": {
"dtCustomerBilltoContact": [
{
"Primary": false,
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"Phone1": "",
"Phone2": "",
"OtherPhone": "",
"MobilePhone": "",
"Fax": "",
"EmailAddress": "",
"NotifyShipmentEnRoute": false,
"NotifyShipmentDelivered": false,
"NotifyShipmentRefused": false,
"ContactTitle": "",
"Salutation": "",
"OtherData": "",
"Remarks": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates bill-to customer contact
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDBilltoSequenceContactNameContactType,ContactJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and bill-to customers must exist
- Any fields not included in the
ContactJSONassume the default values of the new or existing customer bill-to contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerBilltoCreate
Sample Request
{
"request": {
"CustomerID": "",
"BilltoJSON": {
"dsCustomerBillto": {
"dtCustomerBillto": [
{
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"Email": "",
"UseBilltoInvNumFormat": false,
"UseBranchPrefix": false,
"UseHyphenBeforeShipmentID": false,
"NumCharactersForTranID": 0,
"NumCharactersForShipmentID": 0,
"CrossRefRequired": "",
"CrossRefRequiredSpecialOrders": "",
"DefaultStandardPriceLevel": 0,
"DiscountGraceDays": 0,
"ApplyCCSurchargeFee": "",
"CCSurchargeDiscountPercent": 0.0,
"IncludeInAutoCash": false,
"FinanceCharge": false,
"EDIMailbox": "",
"EDIOrgIDDigits": "",
"EDIAlternateCashAccount": "",
"EDIAlternateCashGLComponent": 0,
"EDIPaymentRules": 0,
"AutoApplyARRemitLockboxPayments": false,
"AcceptDupInvARRemit": false,
"AcceptDupInvLockboxPayments": false,
"CreateAdjInvForVariancePayDetail": false,
"SalesAgentForAdjInv": "",
"BranchForAdjInv": "",
"RemittoDivision": "",
"CustomInvoiceProcessing": "",
"AppliesToShiptoInvoices": false,
"PrintInvoiceCopyForBillto": false,
"BilltoInvoicePhone": "",
"BilltoInvoiceFax": "",
"PrintInvoiceCopyForShipto": false,
"ShiptoInvoicePhone": "",
"ShiptoInvoiceFax": "",
"UseBilltoStatementSettings": false,
"StatementType": "",
"CycleCode": "",
"StatementPrintSummaryOnly": false,
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"ReferenceNum": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"MinimumFinanceCharge": 0.0,
"FinanceChargeThreshold": 0.0,
"IncludeFinanceChargeInvoices": false,
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.0,
"CreditLimitAmt": 0.0,
"OverdueAmt": 0.0,
"OverduePercentage": 0.0,
"OverdueDays": 0,
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.0,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"BilltoSequence": 2,
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a bill-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDBilltoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResultsBilltoSequence
Notes
- The sold-to customer must exist before creating a bill-to customer
- Any fields not included in the
BilltoJSONassume the default values of a new customer bill-to - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Email field v550
CustomerBilltoLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"BilltoSequence": 0,
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustomerBilltoLaserControls": {
"dtCustomerBilltoLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates bill-to customer laser controls
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDBilltoSequenceFormTypePrinterSequenceLaserControlJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and bill-to customers must exist
- Any fields not included in the
LaserControlJSONassume the default values of the new or existing customer bill-to laser control record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerBilltoUpdate
Sample Request
{
"request": {
"CustomerID": "123456",
"BilltoSequence": 1,
"BilltoJSON": {
"dsCustomerBillto": {
"dtCustomerBillto": [
{
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"Email": "",
"UseBilltoInvNumFormat": false,
"UseBranchPrefix": false,
"UseHyphenBeforeShipmentID": false,
"NumCharactersForTranID": 0,
"NumCharactersForShipmentID": 0,
"CrossRefRequired": "",
"CrossRefRequiredSpecialOrders": "",
"DefaultStandardPriceLevel": 0,
"DiscountGraceDays": 0,
"ApplyCCSurchargeFee": "",
"CCSurchargeDiscountPercent": 0.0,
"IncludeInAutoCash": false,
"FinanceCharge": false,
"EDIMailbox": "",
"EDIOrgIDDigits": "",
"EDIAlternateCashAccount": "",
"EDIAlternateCashGLComponent": 0,
"EDIPaymentRules": 0,
"AutoApplyARRemitLockboxPayments": false,
"AcceptDupInvARRemit": false,
"AcceptDupInvLockboxPayments": false,
"CreateAdjInvForVariancePayDetail": false,
"SalesAgentForAdjInv": "",
"BranchForAdjInv": "",
"RemittoDivision": "",
"CustomInvoiceProcessing": "",
"AppliesToShiptoInvoices": false,
"PrintInvoiceCopyForBillto": false,
"BilltoInvoicePhone": "",
"BilltoInvoiceFax": "",
"PrintInvoiceCopyForShipto": false,
"ShiptoInvoicePhone": "",
"ShiptoInvoiceFax": "",
"UseBilltoStatementSettings": false,
"StatementType": "",
"CycleCode": "",
"StatementPrintSummaryOnly": false,
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"ReferenceNum": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"MinimumFinanceCharge": 0.0,
"FinanceChargeThreshold": 0.0,
"IncludeFinanceChargeInvoices": false,
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.0,
"CreditLimitAmt": 0.0,
"OverdueAmt": 0.0,
"OverduePercentage": 0.0,
"OverdueDays": 0,
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.0,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates a bill-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDBilltoSequenceBilltoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The bill-to customer must exist
- Any fields not included in the
BilltoJSONassume the default values of the existing customer bill-to record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Email field v550
CustomerBranchShiptoCreate
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 1,
"BranchShiptoJSON": {
"dsCustomerBranchShipto": {
"dtCustomerBranchShipto": [
{
"UseBranchLaserControls": false,
"EnableDefaultFlags": false,
"Active": false,
"Prospect": false,
"ShipComplete": false,
"WMSShipComplete": false,
"AcceptsBO": false,
"Nonsalable": false,
"PricedPickDelv": false,
"OverridePickDelvSortOrder": false,
"ApplyPromoPricesDisc": false,
"DisplayPiecePrice": false,
"RepriceOrderAtShipment": false,
"RequireOrderAcknowledgment": false,
"TrackLinkedReceiptsOrderAck": false,
"AcceptsNightDeliveries": false,
"DisplayPaymentsOnSOSave": false,
"FullPaymentRequired": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"DefaultShipmentStatus": "",
"MinOrderHoldAmount": 0,
"MinOrderHoldForceShipComplete": false,
"EnableDefaultCodes": false,
"FreightTerms": "",
"ShipVia": "",
"SaleType": "",
"ECommerceSaleType": "",
"Zone": "",
"Priority": 0,
"EnableTaxes": false,
"Taxable": false,
"Taxcode": "",
"EnableSalesAgents": false,
"SalesAgent1": "",
"SalesAgent1PctOfOrder": 0.0,
"SalesAgent2": "",
"SalesAgent2PctOfOrder": 0.0,
"SalesAgent3": "",
"SalesAgent3PctOfOrder": 0.0,
"EnablePaymentTerms": false,
"PaymentTermsCode": "",
"CMPaymentTermsCode": "",
"EnableFieldRequirements": false,
"OrderedByRequired": false,
"AuthToChargeRequired": false,
"ShipViaRequired": false,
"ShipViaRequiredOrderTypes": "",
"UpdSalesAgentOpenSO": false,
"UpdSalesAgentOpenQuote": false,
"UpdSalesAgentOpenCM": false,
"UpdSalesAgentOpenPOSSO": false,
"UpdSalesAgentOpenPOSQuote": false,
"UpdSalesAgentOpenPOSCM": false,
"UpdSalesAgentOpenTranNotOverride": false,
"UpdPayTermOpenSO": false,
"UpdPayTermOpenQuote": false,
"UpdPayTermOpenCM": false,
"UpdPayTermOpenTranNotOverride": false,
"UpdMinOrderHoldAmtOpenSO": false,
"SetNonSalableWithOpen": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a branch ship-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBranchShiptoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and ship-to customer must exist before creating a branch ship-to customer
- Any fields not included in the
BranchShiptoJSONassume the default values of a new customer branch ship-to record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue PriceGroupsActionhas one valid value during a record create. The ‘Add’ action assigns values fromPriceGroupsto the newly created branch ship-to
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Nonsalable field v548; Updated with SalesAgent#PctOfOrder fields v550
CustomerBranchShiptoList
Sample Request
{
"request": {
"CustomerID": "12345",
"ShiptoSequence": 1
}
}
Sample Response
{
"response": {
"CustBranchShiptoResults": {
"dsCustBranchShiptoResponse": {
"dtCustBranchShiptoResponse": [
{
"UseBranchLaserControls": false,
"EnableDefaultFlags": false,
"Active": false,
"ShipComplete": false,
"WMSShipComplete": false,
"AcceptsBO": false,
"Nonsalable": false,
"PricedPickDelv": false,
"OverridePickDelvSortOrder": false,
"ApplyPromoPricesDisc": false,
"DisplayPiecePrice": false,
"RepriceOrderAtShipment": false,
"RequiresOrderAck": false,
"TrackLinkedReceiptsOnOrderAck": false,
"AcceptsNightDeliveries": false,
"DisplayPmtsOnSaveAutoPOS": false,
"FullPaymentRequired": false,
"FullPaymentRequiredRule": "Invoices and CM's",
"AllowOverpaymentAtInvoicing": false,
"ApplyOverpaymentType": "Cash on Account",
"ShipmentStatus": "Staged",
"MinOrderHoldAmount": 0,
"ForceShipComplete": false,
"EnableDefaultCodes": true,
"FreightTerms": "",
"ShipVia": "",
"SaleType": "WH",
"ECommerceSaleType": "WH",
"Zone": "",
"Priority": 0,
"EnableTaxes": false,
"Taxable": false,
"Taxcode": "",
"EnableSalesAgents": true,
"SalesAgentOne": "1001",
"SalesAgentTwo": "",
"SalesAgentThree": "",
"EnablePaymentTerms": true,
"PaymentTermsCode": "NET15TH",
"CMPaymentTermsCode": "",
"EnableFieldRequirements": false,
"OrderedByRequired": false,
"AuthToChargeRequired": false,
"ShipViaRequired": false,
"ShipViaAppliesTo": "SO",
"Prospect": false,
"SalesAgent1PctOfOrder": 0.0,
"SalesAgent2PctOfOrder": 0.0,
"SalesAgent3PctOfOrder": 0.0
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Gets customer branch ship-to information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextCustBranchShiptoResults
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
CustomerBranchShiptoLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustBranchShiptoLaserControls": {
"dtCustBranchShiptoLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates branch ship-to customer laser controls
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceFormTypePrinterSequenceLaserControlJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and ship-to customers must exist
- Any fields not included in the
LaserControlJSONassume the default values of the new or existing customer branch ship-to laser control record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerBranchShiptoUpdate
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 1,
"BranchShiptoJSON": {
"dsCustomerBranchShipto": {
"dtCustomerBranchShipto": [
{
"UseBranchLaserControls": false,
"EnableDefaultFlags": false,
"Active": false,
"Prospect": false,
"ShipComplete": false,
"WMSShipComplete": false,
"AcceptsBO": false,
"Nonsalable": false,
"PricedPickDelv": false,
"OverridePickDelvSortOrder": false,
"ApplyPromoPricesDisc": false,
"DisplayPiecePrice": false,
"RepriceOrderAtShipment": false,
"RequireOrderAcknowledgment": false,
"TrackLinkedReceiptsOrderAck": false,
"AcceptsNightDeliveries": false,
"DisplayPaymentsOnSOSave": false,
"FullPaymentRequired": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"DefaultShipmentStatus": "",
"MinOrderHoldAmount": 0,
"MinOrderHoldForceShipComplete": false,
"EnableDefaultCodes": false,
"FreightTerms": "",
"ShipVia": "",
"SaleType": "",
"ECommerceSaleType": "",
"Zone": "",
"Priority": 0,
"EnableTaxes": false,
"Taxable": false,
"Taxcode": "",
"EnableSalesAgents": false,
"SalesAgent1": "",
"SalesAgent1PctOfOrder": 0.0,
"SalesAgent2": "",
"SalesAgent2PctOfOrder": 0.0,
"SalesAgent3": "",
"SalesAgent3PctOfOrder": 0.0,
"EnablePaymentTerms": false,
"PaymentTermsCode": "",
"CMPaymentTermsCode": "",
"EnableFieldRequirements": false,
"OrderedByRequired": false,
"AuthToChargeRequired": false,
"ShipViaRequired": false,
"ShipViaRequiredOrderTypes": "",
"UpdSalesAgentOpenSO": false,
"UpdSalesAgentOpenQuote": false,
"UpdSalesAgentOpenCM": false,
"UpdSalesAgentOpenPOSSO": false,
"UpdSalesAgentOpenPOSQuote": false,
"UpdSalesAgentOpenPOSCM": false,
"UpdSalesAgentOpenTranNotOverride": false,
"UpdPayTermOpenSO": false,
"UpdPayTermOpenQuote": false,
"UpdPayTermOpenCM": false,
"UpdPayTermOpenTranNotOverride": false,
"UpdMinOrderHoldAmtOpenSO": false,
"SetNonSalableWithOpen": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates a branch ship-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBranchShiptoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The branch ship-to record must exist
- Any fields not included in the
BranchShiptoJSONassume the default values of the existing customer branch ship-to record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue PriceGroupsActionhas four valid values:- Add – Adds values from
PriceGroupsto the end of the existing price groups in rank order - Replace – Replaces all current price groups with the values from
PriceGroups. If there are no values inPriceGroups, a warning is given and the price groups are not updated. - Delete – Deletes price groups specified in
PriceGroups - Delete all – Deletes all current price groups.
- Add – Adds values from
- This method includes actions that are performed after the record is updated.
- When an action updates transaction(s), the field(s) being updated on the transaction must match the original value on the customer record to perform the update.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Nonsalable field v548; Updated with SalesAgent#PctOfOrder fields v550
CustomerContact
Sample Request
{
"request": {
"CustomerID": "",
"ContactName": "",
"ContactType": "",
"ContactJSON": {
"dsCustomerContact": {
"dtCustomerContact": [
{
"Primary": false,
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"Phone1": "",
"Phone2": "",
"OtherPhone": "",
"MobilePhone": "",
"Fax": "",
"EmailAddress": "",
"NotifyShipmentEnRoute": false,
"NotifyShipmentDelivered": false,
"NotifyShipmentRefused": false,
"ContactTitle": "",
"Salutation": "",
"OtherData": "",
"Remarks": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates a sold-to customer contact
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDContactNameContactTypeContactJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to customer must exist
- Any fields not included in the
ContactJSONassume the default values of the new or existing customer contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerCreate
Sample Request
{
"request": {
"CustomerID": "",
"CustomerJSON": {
"dsCustomer": {
"dtCustomer": [
{
"Name": "",
"DivisionID": "",
"GroupID": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"Email": "",
"Website": "",
"DefaultCurrency": "",
"PrintCurrency": "",
"FormPrefix": "",
"FirstInvoiceDate": "2018-05-23",
"StartDate": "2018-05-23",
"FirstOrderDate": "2018-05-23",
"LastInvoiceDate": "2018-05-23",
"Active": false,
"FinanceCharge": false,
"Nonsaleable": false,
"Prospect": false,
"CopyPriceGroupsFromShiptoSeq": 0,
"CreditCardStorageOption": "",
"CheckSoldtoCredit": false,
"CheckBilltoCredit": false,
"CheckShiptoCredit": false,
"PrintSoldtoStatement": false,
"PrintBilltoStatement": false,
"PrintShiptoStatement": false,
"StatementType": "",
"CycleCode": "",
"StatementPrintSummaryOnly": false,
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"TargetCustomer": false,
"RequireInvoice": false,
"RequireOrderAcknowledgment": false,
"ReferenceNum": "",
"ParentCustomerID": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"CertificateAppliesTo": "",
"AllowCashPayments": false,
"AllowCheckPayments": false,
"AllowCreditCardPayments": false,
"DisplayPriceOnCCDevice": "",
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.0,
"CreditLimitAmt": 0.0,
"OverdueAmt": 0.0,
"OverduePercentage": 0.0,
"OverdueDays": 0,
"DUNNNumber": "",
"CreditManager": "",
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.0,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"LastReviewDate": "2018-05-23",
"LastApplicationDate": "2018-05-23",
"TradeClass": "",
"Class": "",
"ConsigneeCode": "",
"IndustryCode": "",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"UpdShiptoActiveWhenSetActive": false,
"UpdShiptoProspectWhenSetProspect": false,
"SetShipToBillToAddresses": "",
"UpdAddressOnNonOverriddenTrans": "",
"UpdAddressOnOverriddenTrans": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a sold-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDCustomerJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Creating a customer also creates default ship-to and bill-to records with a sequence of 1.
- There are required fields on the ship-to and bill-to records that need to be updated before this customer can be used to create any transaction. Sales agent 1 and Payment terms must be updated on the ship-to record. Sales Agent for adj invoice must be updated on the bill-to record.
- Any fields not included in the
CustomerJSONassume the default values of a new customer - DMSi strongly recommends reviewing
dsAuditResultsregardless of the ReturnCode value
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Email field v550
CustomerLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustomerLaserControls": {
"dtCustomerLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates sold-to laser controls
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDFormTypePrinterSequenceLaserControlJSON
Optional Inputs
- N/A
Response
ReturnCodeMessageTextdsAuditResults
Notes
- The sold-to customer must exist
- Any fields not included in the
LaserControlJSONassume the default values of the new or existing customer laser control record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerShiptoBank
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"AccountNumber": "",
"RoutingNumber": "",
"BankJSON": {
"dsCustomerShiptoBank": {
"dtCustomerShiptoBank": [
{
"BankName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates ship-to customer bank information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceAccountNumberRoutingNumberBankJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and ship-to customers must exist
- Any fields not include in the
BankJSONassume the default values of the new or existing customer ship-to bank information record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerShiptoContact
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"ContactName": "",
"ContactType": "",
"ContactJSON": {
"dsCustomerShiptoContact": {
"dtCustomerShiptoContact": [
{
"Primary": false,
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"Phone1": "",
"Phone2": "",
"OtherPhone": "",
"MobilePhone": "",
"PrimaryMobileContact": false,
"Fax": "",
"EmailAddress": "",
"NotifyShipmentEnRoute": false,
"NotifyShipmentDelivered": false,
"NotifyShipmentRefused": false,
"ContactTitle": "",
"Salutation": "",
"OtherData": "",
"Remarks": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates ship-to customer contacts
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceContactNameContactTypeContactJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and ship-to customers must exist
- Any fields not included in the
ContactJSONassume the default values of the new or existing customer ship-to contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerShiptoCreate
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoJSON": {
"dsCustomerShipto": {
"dtCustomerShipto": [
{
"ActiveInAllBranches": false,
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"EmergencyPhone": "",
"Email": "",
"County": "",
"BilltoSequence": 0,
"AllowAsTemplate": false,
"UserDefinedKeywords": "",
"Active": false,
"Prospect": false,
"ShipComplete": false,
"ShipCompleteWMS": false,
"AcceptsBackorders": false,
"Nonsaleable": false,
"FinanceCharge": false,
"OverridePickDelvSortOrder": false,
"ApplyPromoPriceDiscount": false,
"DisplayPiecePrice": false,
"RepriceOrderAtShipment": false,
"DefaultShipmentOnHoldInvoicing": false,
"RequireOrderAcknowledgment": false,
"TrackLinkedReceiptsOrderAck": false,
"AcceptsNightDeliveries": false,
"DisplayPaymentsOnSOSave": false,
"FullPaymentRequired": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"ApplyCCSurchargeFee": "",
"CCSurchargeDiscountPercent": 0.0,
"DefaultShipmentStatus": "",
"OrderEntryBranchOption": "",
"BranchOptionDefaultBranch": "",
"BranchOptionPromptDefaultBranch": false,
"MinOrderHoldAmount": 0.0,
"MinOrderHoldForceShipComplete": false,
"ApplyWMSPickThreshold": false,
"WMSUnderPickThresholdPercent": 0.0,
"CallForAppointment": false,
"StartLoadHours": "",
"EndLoadHours": "",
"AllowAddonChargeCost": "",
"EDIOrgID": "",
"EDISOCreatedInBranch": "",
"EDISpecialOrdersCreatedInBranch": "",
"EDIItemActivityCreatedInBranch": "",
"LienRequired": false,
"LienDaysFromFirstShipment": 0,
"LienDaysFromLastShipment": 0,
"LienDaysFromLastInvoice": 0,
"LienShipmentAmtGreaterThan": 0.0,
"LienStatus": "",
"LienDateOption": "",
"LienDaysToFile": 0,
"LienMinAmountToFile": 0.0,
"FreightTerms": "",
"ShipVia": "",
"SaleType": "",
"ECommerceSaleType": "",
"Zone": "",
"Priority": 0,
"Taxable": false,
"TaxCode": "",
"SetTaxCategoryOrderEntryOnly": false,
"TaxCategory": "",
"SalesAgent1": "",
"SalesAgent1PctOfOrder": 0.0,
"SalesAgent2": "",
"SalesAgent2PctOfOrder": 0.0,
"SalesAgent3": "",
"SalesAgent3PctOfOrder": 0.0,
"PaymentTermsCode": "",
"CMPaymentTermsCode": "",
"ApplyPayTermsFromPayMethod": false,
"OrderedByRequired": false,
"AuthToChargeRequired": false,
"ShipViaRequired": false,
"ShipViaRequiredOrderTypes": "",
"PORequired": false,
"PORequiredOrderTypes": "",
"POCheckDuplicatesBy": "",
"POCheckDuplicatesNumMonths": 0,
"PORule": "",
"POBlanketValue": "",
"POValidationCode": "",
"JobNumberRequired": false,
"JobNumberRequiredOrderTypes": "",
"JobNumberRule": "",
"JobNumberBlanketValue": "",
"JobValidationCode": "",
"ReferenceRequired": false,
"ReferenceRequiredOrderTypes": "",
"ReferenceValidationCode": "",
"PickDelvPricedTicket": false,
"PickPrintDetailPrices": false,
"PickPrintPriceAsNet": false,
"PickPrintExtendedPrice": false,
"PickPrintDimExtendedPrice": false,
"DelvPrintDetailPrices": false,
"DelvPrintPriceAsNet": false,
"DelvPrintExtendedPrice": false,
"DelvPrintDimExtendedPrice": false,
"AdditionalCODBasis": "",
"CODAmount": 0.0,
"CODNotToExceedBasis": "",
"CODNotToExceedFixedAmount": 0.0,
"PrintBOMLabels": false,
"BOMLabelFormat": "",
"PrintStockLabels": false,
"StockLabelFormat": "",
"PrintNonStockLabels": false,
"NonstockLabelFormat": "",
"QuotePrintPriceAsNet": false,
"QuotePrintPriceOnly": false,
"QuotePrintExtendedPrice": false,
"QuotePrintDimExtendedPrice": false,
"OrderAckFormTitle": "",
"OrdAckPrintDetailPrices": false,
"OrdAckPrintPriceAsNet": false,
"OrdAckPrintExtendedPrice": false,
"OrdAckPrintDimExtendedPrice": false,
"OrdAckPrintTotals": false,
"OrdAckDispGroupOptions": false,
"OrdAckGroupDefault": "",
"ASNPrintDefault": "",
"ASNAutoSendWithWMS": false,
"InvPrintDetailPrices": false,
"InvPrintPriceAsNet": false,
"InvPrintExtendedPrice": false,
"InvPrintDimExtendedPrice": false,
"InvPrintPayTerm": false,
"InvPrintADFAmount": false,
"InvDispGroupOptions": false,
"InvGroupDefault": "",
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"MinimumFinanceCharge": 0.0,
"FinanceChargeThreshold": 0.0,
"IncludeFinanceChargeInvoices": false,
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.0,
"CreditLimitAmt": 0.0,
"OverdueAmt": 0.0,
"OverduePercentage": 0.0,
"OverdueDays": 0,
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.0,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"UpdAddressOnNonOverriddenTrans": "",
"UpdAddressOnOverriddenTrans": false,
"UpdSalesAgentOpenSO": false,
"UpdSalesAgentOpenQuote": false,
"UpdSalesAgentOpenCM": false,
"UpdSalesAgentOpenPOSSO": false,
"UpdSalesAgentOpenPOSQuote": false,
"UpdSalesAgentOpenPOSCM": false,
"UpdSalesAgentOpenTranNotOverride": false,
"UpdPayTermOpenSO": false,
"UpdPayTermOpenQuote": false,
"UpdPayTermOpenCM": false,
"UpdPayTermOpenTranNotOverride": false,
"UpdMinOrderHoldAmtOpenSO": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ShiptoSequence": 2,
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a ship-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResultsShiptoSequence
Notes
- The sold-to customer must exist before creating a ship-to customer
- Any fields not included in the
ShiptoJSONassume the default values of a new customer ship-to - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue PriceGroupsActionhas one valid value during a record create. The ‘Add’ action assigns values fromPriceGroupsto the newly created ship-to.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with EDISpecialOrdersCreatedInBranch, Email, and SalesAgent#PctOfOrder fields v550; Updated with PORule, POBlanketValue, JobNumberRule, and JobNumberBlanketValue fields v551
CustomerShiptoLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustomerShiptoLaserControls": {
"dtCustomerShiptoLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates ship-to customer laser controls
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceFormTypePrinterSequenceLaserControlJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to and ship-to customers must exist
- Any fields not included in the
LaserControlJSONassume the default values of the new or existing customer ship-to laser control record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
CustomerShiptoRoutesList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "12345",
"ShiptoSequence": "",
"StartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"CustomerShiptoRoutesResponse": {
"dsCustomerShiptoRoutesResponse": {
"dtCustomerShiptoRoutesResponse": [
{
"CustomerID": "12345",
"ShiptoSequence": 1,
"ShiptoName": "DS SUPPLY",
"RouteID": "MON",
"RouteDescription": "MONDAY DELIVERY",
"StopID": 1
},
{
"CustomerID": "12345",
"ShiptoSequence": 1,
"ShiptoName": "DS SUPPLY",
"RouteID": "WED",
"RouteDescription": "WED DELIVERY",
"StopID": 3
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 2,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of routes associated with customer ship-to records
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
CustomerIDShiptoSequenceChunkStartPointerRecordFetchLimit
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- list of routes for customer ship-tos
Notes
This method allows a user to request a specific number of records. Please see the Chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShiptoSequencecome from CustomerShiptoList
Version Deployed
v539
CustomerShiptoUpdate
Sample Request
{"request": {
"CustomerID": "",
"ShiptoSequence": 1,
"ShiptoJSON": {
"dsCustomerShipto":{
"dtCustomerShipto":[{
"ActiveInAllBranches": false,
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"EmergencyPhone": "",
"Email": "",
"County": "",
"BilltoSequence": 0,
"AllowAsTemplate": false,
"UserDefinedKeywords": "",
"Active": false,
"Prospect": false,
"ShipComplete": false,
"ShipCompleteWMS": false,
"AcceptsBackorders": false,
"Nonsaleable": false,
"FinanceCharge": false,
"OverridePickDelvSortOrder": false,
"ApplyPromoPriceDiscount": false,
"DisplayPiecePrice": false,
"RepriceOrderAtShipment": false,
"DefaultShipmentOnHoldInvoicing": false,
"RequireOrderAcknowledgment": false,
"TrackLinkedReceiptsOrderAck": false,
"AcceptsNightDeliveries": false,
"DisplayPaymentsOnSOSave": false,
"FullPaymentRequired": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"ApplyCCSurchargeFee": "",
"CCSurchargeDiscountPercent": 0.00,
"DefaultShipmentStatus": "",
"OrderEntryBranchOption": "",
"BranchOptionDefaultBranch": "",
"BranchOptionPromptDefaultBranch": false,
"MinOrderHoldAmount": 0.00,
"MinOrderHoldForceShipComplete": false,
"ApplyWMSPickThreshold": false,
"WMSUnderPickThresholdPercent": 0.00,
"CallForAppointment": false,
"StartLoadHours": "",
"EndLoadHours": "",
"AllowAddonChargeCost": "",
"EDIOrgID": "",
"EDISOCreatedInBranch": "",
"EDIItemActivityCreatedInBranch": "",
"EDISpecialOrdersCreatedInBranch": "",
"LienRequired": false,
"LienDaysFromFirstShipment": 0,
"LienDaysFromLastShipment": 0,
"LienDaysFromLastInvoice": 0,
"LienShipmentAmtGreaterThan": 0.00,
"LienStatus": "",
"LienDateOption": "",
"LienDaysToFile": 0,
"LienMinAmountToFile": 0.00,
"FreightTerms": "",
"ShipVia": "",
"SaleType": "",
"ECommerceSaleType": "",
"Zone": "",
"Priority": 0,
"Taxable": false,
"TaxCode": "",
"SetTaxCategoryOrderEntryOnly": false,
"TaxCategory": "",
"SalesAgent1": "",
"SalesAgent1PctOfOrder": 0.00,
"SalesAgent2": "",
"SalesAgent2PctOfOrder": 0.00,
"SalesAgent3": "",
"SalesAgent3PctOfOrder": 0.00,
"PaymentTermsCode": "",
"CMPaymentTermsCode": "",
"ApplyPayTermsFromPayMethod": false,
"OrderedByRequired": false,
"AuthToChargeRequired": false,
"ShipViaRequired": false,
"ShipViaRequiredOrderTypes": "",
"PORequired": false,
"PORequiredOrderTypes": "",
"POCheckDuplicatesBy": "",
"POCheckDuplicatesNumMonths": 0,
“PORule”: “”,
“POBlanketValue”: “”,
"POValidationCode": "",
"JobNumberRequired": false,
"JobNumberRequiredOrderTypes": "",
“JobNumberRule”: “”,
“JobNumberBlanketValue”: “”,
"JobValidationCode": "",
"ReferenceRequired": false,
"ReferenceRequiredOrderTypes": "",
"ReferenceValidationCode": "",
"PickDelvPricedTicket": false,
"PickPrintDetailPrices": false,
"PickPrintPriceAsNet": false,
"PickPrintExtendedPrice": false,
"PickPrintDimExtendedPrice": false,
"DelvPrintDetailPrices": false,
"DelvPrintPriceAsNet": false,
"DelvPrintExtendedPrice": false,
"DelvPrintDimExtendedPrice": false,
"AdditionalCODBasis": "",
"CODAmount": 0.00,
"CODNotToExceedBasis": "",
"CODNotToExceedFixedAmount": 0.00,
"PrintBOMLabels": false,
"BOMLabelFormat": "",
"PrintStockLabels": false,
"StockLabelFormat": "",
"PrintNonStockLabels": false,
"NonstockLabelFormat": "",
"QuotePrintPriceAsNet": false,
"QuotePrintPriceOnly": false,
"QuotePrintExtendedPrice": false,
"QuotePrintDimExtendedPrice": false,
"OrderAckFormTitle": "",
"OrdAckPrintDetailPrices": false,
"OrdAckPrintPriceAsNet": false,
"OrdAckPrintExtendedPrice": false,
"OrdAckPrintDimExtendedPrice": false,
"OrdAckPrintTotals": false,
"OrdAckDispGroupOptions": false,
"OrdAckGroupDefault": "",
"ASNPrintDefault": "",
"ASNAutoSendWithWMS": false,
"InvPrintDetailPrices": false,
"InvPrintPriceAsNet": false,
"InvPrintExtendedPrice": false,
"InvPrintDimExtendedPrice": false,
"InvPrintPayTerm": false,
"InvPrintADFAmount": false,
"InvDispGroupOptions": false,
"InvGroupDefault": "",
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"MinimumFinanceCharge": 0.00,
"FinanceChargeThreshold": 0.00,
"IncludeFinanceChargeInvoices": false,
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.00,
"CreditLimitAmt": 0.00,
"OverdueAmt": 0.00,
"OverduePercentage": 0.00,
"OverdueDays": 0,
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.00,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"UpdAddressOnNonOverriddenTrans": "",
"UpdAddressOnOverriddenTrans": false,
"UpdSalesAgentOpenSO": false,
"UpdSalesAgentOpenQuote": false,
"UpdSalesAgentOpenCM": false,
"UpdSalesAgentOpenPOSSO": false,
"UpdSalesAgentOpenPOSQuote": false,
"UpdSalesAgentOpenPOSCM": false,
"UpdSalesAgentOpenTranNotOverride": false,
"UpdPayTermOpenSO": false,
"UpdPayTermOpenQuote": false,
"UpdPayTermOpenCM": false,
"UpdPayTermOpenTranNotOverride": false,
"UpdMinOrderHoldAmtOpenSO": false,
"SetNonSalableWithOpen": false
}]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates a ship-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceShiptoJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The ship-to customer must exist
- Any fields not included in the
ShiptoJSONassume the default values of the existing customer ship-to record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue PriceGroupsActionhas four valid values:- Add – Adds values from
PriceGroupsto the end of the existing price groups in rank order - Replace – Replaces all current price groups with the values from
PriceGroups. If there are no values inPriceGroups, a warning is given and the price groups are not updated. - Delete – Deletes price groups specified in
PriceGroups - Delete all – Deletes all current price groups.
- Add – Adds values from
- This method includes actions that are performed after the record is updated.
When an action updates transaction(s), the field(s) being updated on the transaction must match the original value on the customer record to perform the update.
UpdAddressOnNonOverriddenTrans– Update address for non-overridden transaction. Valid values: Open and invoiced, Open only, Do not update.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Nonsalable field v548; Updated with Email, EDISpecialOrdersCreatedInBranch, and SalesAgent#PctOfOrderfields v550; Updated with PORule, POBlanketValue, JobNumberRule, and JobNumberBlanketValue fields v551
CustomerShiptoList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "12345",
"ShiptoSequence": 1,
"FetchOnlyChangedSince": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"CustomerShipToResponse": {
"dsCustomerShipToResponse": {
"dtCustomerShipToResponse": [
{
"CustomerID": "12345",
"CustomerName": "DS SUPPLY",
"ShiptoName": "DS SUPPLY",
"ShiptoSequence": 1,
"Address1": "123 Any Street",
"Address2": "",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "68122",
"Country": "USA",
"Phone": "(402)-555-9585",
"Fax": "( )- - ",
"PriceLevel": 1,
"Active": true,
"NonSaleable": false,
"SalesAgent1": "1001",
"SalesAgent2": "",
"PayTermsCode": "NET20",
"LastChanged": "2019-01-22T11:45:24.000",
"Taxable": false,
"Misc1Label": "MISC 1",
"Misc1Value": "",
"Misc2Label": "MISC 2",
"Misc2Value": "",
"Misc3Label": "MISC 3",
"Misc3Value": "",
"Misc4Label": "MISC 4",
"Misc4Value": "",
"Misc5Label": "MISC 5",
"Misc5Value": "",
"Misc6Label": "MISC 6",
"Misc6Value": "",
"Misc7Label": "MISC 7",
"Misc7Value": "",
"Misc8Label": "MISC 8",
"Misc8Value": "",
"Misc9Label": "MISC 9",
"Misc9Value": "",
"Misc10Label": "MISC 10",
"Misc10Value": "",
"Misc11Label": "MISC 11",
"Misc11Value": "",
"Misc12Label": "MISC 12",
"Misc12Value": "",
"OrderEntryBranchOption": "Current",
"OrderEntryBranchPrompt": true,
"DefaultBranch": "",
"SaleType": "Transfer",
"ECommerceSaleType": "",
"Prospect": false,
"Email": "test@test.com",
"SalesAgent1PctOfOrder": 0.0,
"SalesAgent2PctOfOrder": 0.0,
"SalesAgent3PctOfOrder": 0.0,
"ShipVia": "Flatbed"
}
]
}
},
"MoreResultsAvailable": "false",
"TotalRowsFetched": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of customer ship-tos available to the user and available in the current branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
SearchBySearchValueCustomerIDShiptoSequenceFetchOnlyChangedSinceRecordFetchLimit
Response
- ReturnCode
MessageTextMoreResultsAvailableTotalRowsFetched- list of customer ship-to records
Notes
- This method allows a user to request customer ship-tos that have changed since a particular date and time. Please see the Changed Since topic for more information
- This method allows the user to search for specific customer ship-tos with limited criteria. Please see the Searchby topic for more information
- This method allows a user to request a specific number of records. Please see the Chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid
SearchByvalues:- Ship-to Name
- Ship-to Address 1
- Ship-to Address 2
- Ship-to City
- Ship-to State
- Ship-to ZIP
- Ship-to Phone
- Keyword
- Valid values for
CustomerIDcome from CustomersList - Valid values for
ShiptoSequencecome from CustomerShiptoList
Version Deployed
v539
CustomerUpdate
Sample Request
{
"request": {
"CustomerID": "",
"CustomerJSON": {
"dsCustomer": {
"dtCustomer": [
{
"Name": "",
"DivisionID": "",
"GroupID": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"Email": "",
"Website": "",
"DefaultCurrency": "",
"PrintCurrency": "",
"FormPrefix": "",
"FirstInvoiceDate": "2018-05-23",
"StartDate": "2018-05-23",
"FirstOrderDate": "2018-05-23",
"LastInvoiceDate": "2018-05-23",
"Active": false,
"FinanceCharge": false,
"Nonsaleable": false,
"Prospect": false,
"CopyPriceGroupsFromShiptoSeq": 0,
"CreditCardStorageOption": "",
"CheckSoldtoCredit": false,
"CheckBilltoCredit": false,
"CheckShiptoCredit": false,
"PrintSoldtoStatement": false,
"PrintBilltoStatement": false,
"PrintShiptoStatement": false,
"StatementType": "",
"CycleCode": "",
"StatementPrintSummaryOnly": false,
"StatementPrintDiscDate": false,
"StatementPrintDiscAmt": false,
"StatementPrintDueDate": false,
"StatementPrintInvoices": false,
"TargetCustomer": false,
"RequireInvoice": false,
"RequireOrderAcknowledgment": false,
"ReferenceNum": "",
"ParentCustomerID": "",
"FederalTaxNum": "",
"StateTaxNum": "",
"MunicipalTaxNum": "",
"CertificateAppliesTo": "",
"AllowCashPayments": false,
"AllowCheckPayments": false,
"AllowCreditCardPayments": false,
"DisplayPriceOnCCDevice": "",
"CheckCredit": "",
"DontCheckCreditThru": "2018-05-23",
"CreditBypassAmt": 0.0,
"CreditLimitAmt": 0.0,
"OverdueAmt": 0.0,
"OverduePercentage": 0.0,
"OverdueDays": 0,
"DUNNNumber": "",
"CreditManager": "",
"CreditLimitExpDate": "2018-05-23",
"CreditScore": 0.0,
"CreditRating": "",
"CreditReviewDate": "2018-05-23",
"BureauNum1Rating": "",
"BureauNum1EffectiveDate": "2018-05-23",
"BureauNum2Rating": "",
"BureauNum2EffectiveDate": "2018-05-23",
"LastReviewDate": "2018-05-23",
"LastApplicationDate": "2018-05-23",
"TradeClass": "",
"Class": "",
"ConsigneeCode": "",
"IndustryCode": "",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"UpdShiptoActiveWhenSetActive": false,
"UpdShiptoProspectWhenSetProspect": false,
"SetShipToBillToAddresses": "",
"UpdAddressOnNonOverriddenTrans": "",
"UpdAddressOnOverriddenTrans": false,
"SetAllShiptosNonSalable": false,
"SetNonSalableWithOpen": false
}
]
}
}
}
}
Sample Response
{
"response": {
"dsAuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates a sold-to customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDCustomerJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The sold-to customer must exist
- Any fields not included in the
CustomerJSONassume the default values of the existing customer record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - This method includes actions that are performed after the record is updated. When an action updates transaction(s), the field(s) being updated on the transaction must match the original value on the customer record to perform the update.
SetShipToBillToAddresses: Update account info on single customer ship-to and bill-to records when customer account info changes. Valid values: Do not update, Update all, Update customer bill-to account info, and Update customer ship-to account infoUpdAddressOnNonOverriddenTrans: Update address for non-overridden transactions. Valid values: Open and invoiced, Open onlyUpdAddressOnOverriddenTrans: Update address for overridden transactions
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Nonsalable fields v548; Updated with Email field v550
CustomersList
Sample Request
{
"request": {
"SearchBy": "Customer ID",
"SearchValue": "12345",
"FetchOnlyChangedSince": null,
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"CustomerResponse": {
"dsCustomerResponse": {
"dtCustomerResponse": [
{
"CustomerID": "12345",
"CustomerName": "DS SUPPLY",
"Address1": "123 Any Street",
"Address2": "",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "68122",
"Country": "USA",
"Phone": "(402)-555-9585",
"Fax": " ",
"Active": true,
"LastChanged": "2019-01-22T11:45:24.000",
"CreditLimit": 0,
"CreditLimitExpDate": null,
"HighBalanceYTD": 3000,
"HighBalanceDate": "2019-01-22",
"HighBalanceLYR": 0,
"HighBalanceLYRDate": null,
"LastPaymentDate": null,
"OpenSOAmt": 12.49,
"ReleasedSOAmt": 12.49,
"DepositAmt": 0,
"OpenAR": 3000,
"DisputedAR": 0,
"Prospect": false,
"Email": "test@test.com"
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of customers available to the user
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
SearchBySearchValueFetchOnlyChangedSinceChunkStartPointerRecordFetchLimit
Response
- ReturnCode
MessageTextCustBranchShiptoResults
Notes
- This method allows a user to request customers that have changed since a particular date and time. Please see the Changed Since topic for more information
- This method allows the user to search for specific customers with limited criteria. Please see the SearchBy topic for more information
- This method allows a user to request a specific number of records. Please see the Chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid
SearchByoptions:- Customer Name
- Customer ID
- Customer Address 1
- Customer Address 2
- Customer City
- Customer State
- Customer ZIP
- Customer Phone
Version Deployed
v539
DefaultCustomerShipto
Sample Request
{
"request": {
"LoginID": "asmith"
}
}
Sample Response
{
"response": {
"CustomerID": "12345",
"ShiptoSequence": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the default customer and ship-to assigned to the user in Agility
Header
ContextIdBranchContent-Type= application/json
Required Inputs
LoginID
Optional Inputs
- N/A
Response
CustomerIDCustomerShiptoSequence- ReturnCode
MessageText
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
AgilityPublic/DataFiles Service
This AgilityPublic service contains methods releated to data and data files.
SaleTypesList
Sample Request
"n/a"
Sample Response
{
"response": {
"SaleTypesListResponse": {
"dsSaleTypesListResponse": {
"dtSaleTypesListResponse": [
{
"SaleType": "WH",
"Description": "Warehouse",
"AffectInventory": true,
"Transfer": false,
"AllowInPartnerView": false,
"ShipVia": "Truck",
"Route": "",
"FreightTerms": ""
},
{
"SaleType": "WC",
"Description": "Will Call",
"AffectInventory": true,
"Transfer": false,
"AllowInPartnerView": false,
"ShipVia": "",
"Route": "",
"FreightTerms": ""
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of sale types
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- list of sale types
Notes
- The
AllowInPartnerViewsetting is shared between PartnerView and the API and indicates whether or not the sale type is a valid input to methods that create orders or quotes. Only those withAllowInPartnerView= true are valid for those methods. Any valid sale type can be used in other methods - Only sale types having the Affects Inventory flag set are returned with this method
- Only sale types marked as Active are returned with this method
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v542
AgilityPublic/Dispatch Service
This AgilityPublic service contains methods related to dispatch.
DispatchCancel
Sample Request
{
"request": {
"DispatchID": "12267"
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Cancels dispatch header on an existing, open dispatch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
- Dispatch details and dispatch transactions are not removed when the dispatch is cancelled
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchCostPacketsDelete
Sample Request
{
"request": {
"DispatchID": 12648,
"DispatchCostPacketsJSON": {
"dsDispatchCostPacket": {
"dtDispatchCostPacket": [
{
"CostType": "Broker Fees",
"SupplierID": "HTL"
},
{
"CostType": "Ocean Frt"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes dispatch cost packet information on an existing dispatch with PO transactions
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDCostType
Optional Inputs
SupplierID
Response
- ReturnCode
Message Text
Notes
- For a supplier-specific cross reference to be sent in the
CostTypefield, the related supplier must be specified in theSupplierIDfield.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchCostPacketsGet
Sample Request
{
"request": {
"DispatchID": 12648
}
}
Sample Response
{
"response": {
"CostPacketResponse": {
"dsCostPacketsResponse": {
"dtCostPacketsResponse": [
{
"AllocateBy": "Load",
"FixedAmount": 1300,
"CostType": "Ocean Frt",
"CreatedBy": "MSWAPI",
"CreatedDate": "2019-03-05",
"CreatedTime": "12:14:04",
"SupplierID": "900",
"AssignAPReconBasedOnPO": false,
"Currency": "YEN",
"UpdateBy": "MSWAPI",
"UpdateDate": "2019-03-05",
"UpdateTime": "12:14:04"
},
{
"AllocateBy": "Ext cost",
"FixedAmount": 650,
"CostType": "Broker Fees",
"CreatedBy": "MSWAPI",
"CreatedDate": "2019-03-05",
"CreatedTime": "10:31:11",
"SupplierID": "HTL",
"AssignAPReconBasedOnPO": false,
"Currency": "USD",
"UpdateBy": "MSWAPI",
"UpdateDate": "2019-03-05",
"UpdateTime": "12:14:05"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns dispatch cost packet information on an existing dispatch with PO transactions
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- dispatch cost packet information
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchCostPacketsUpdate
Sample Request
{
"request": {
"DispatchID": 12648,
"DispatchCostPacketsJSON": {
"dsDispatchCostPacket": {
"dtDispatchCostPacket": [
{
"AllocateBy": "Ext cost",
"AssignAPReconBasedOnPO": "false",
"CostType": "Broker Fees",
"Currency": "USD",
"FixedAmount": 650.0,
"SupplierID": "HTL"
},
{
"AllocateBy": "Load",
"AssignAPReconBasedOnPO": "false",
"CostType": "Ocean Frt",
"Currency": "YEN",
"FixedAmount": 1300.0,
"SupplierID": "900"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates dispatch cost packet information on an existing dispatch with PO transactions
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDCostType
Optional Inputs
AllocateByAssignAPReconBasedOnPOCurrencyFixedAmountSupplierID
Response
- ReturnCode
MessageText
Notes
- Valid values for
AssignAPReconBasedOnPOare true and false. IfAssignAPReconBasedOnPOis set to false, AP Recon is assigned based on the Dispatch ID. IfAssignAPReconBasedOnPOis set to true, AP Recon is assigned based on the Purchase Order ID. IfAssignAPReconBasedOnPOis not sent in the request, this defaults to a value of false. - Any fields not included in the
DispatchCostPacketsUpdateJSONassume the default values on a creating a new cost type. - Any fields not included in the
DispatchCostPacketsUpdateJSONassume the existing values on updating an existing cost type. - For a supplier-specific cross reference to be sent in the
CostTypefield, the related supplier must be specified in theSupplierIDfield.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchDetailsCreate
Sample Request
{
"request": {
"DispatchID": "12576",
"OrderType": "SO",
"OrderID": 302148,
"SubID": 0,
"DispatchDetailJSON": {
"dsDispatchDetail": {
"dtDispatchDetail": [
{
"OrderDetailSequence": "1",
"Quantity": 2,
"ContainerID": "GTM-TRWNQCM",
"PalletID": "150120251",
"DispatchAllQuantity": false
},
{
"OrderDetailSequence": "2",
"ContainerID": "GTM-TRWNQSO",
"PalletID": "150120252",
"DispatchAllQuantity": true
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Create dispatch details and related dispatch tran on an existing dispatch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDOrderIDOrderTypeSubIDOrderDetailSequence;QuantityorDispatchAllQuantity
Optional Inputs
ContainerIDPalletIDQuantityDispatchAllQuantity
Response
- ReturnCode
MessageText
Notes
- Valid values for
DispatchAllQuantityare true and false. IfDispatchAllQuantityis set to false,Quantityis required. IfDispatchAllQuantityis set to true, all quantity for theOrderDetailSequenceis dispatched unlessQuantityis specified.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchDetailsDelete
Sample Request
{
"request": {
"DispatchID": 12576,
"OrderType": "SO",
"OrderID": 302191,
"SubID": 0,
"DispatchDetailJSON": {
"dsDispatchDetail": {
"dtDispatchDetail": [
{ "OrderDetailSequence": 1 },
{
"OrderDetailSequence": 2,
"ContainerID": "GTM-TJPNWLFYM",
"PalletID": "5518019"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes dispatch details on an existing dispatch transaction
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDOrderIDOrderTypeSubIDOrderDetailSequence
Optional Inputs
ContainerIDPalletID
Response
- ReturnCode
- MessageText
Notes
- If
ContainerIDand/orPalletIDexist on the order detail sequence that is being deleted, you must include the relatedContainerIDand/orPalletIDin the request to delete. Branchmust be the branch of the detail transaction
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchGet
Sample Request
{
"request": {
"DispatchID": "12279"
}
}
Sample Response
{
"response": {
"DispatchResponse": {
"dsDispatchResponse": {
"dtDispatchHeader": [
{
"AdditionalCost": 20,
"CalcFirstPickupDate": false,
"CalcLastDeliveryDate": false,
"Canceled": false,
"Contact": "Jeff Pilot",
"CarrierFax": "(402)-564-3321",
"CarrierPhone": "(402)-564-3321",
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-02-12",
"CreatedTime": "10:10:43",
"Currency": "USD",
"DispatchedBy": "mwellensiek",
"DispatcherFax": "(402)-957-9990",
"DispatcherPhone": "(402)-957-9999",
"DispatchID": 12279,
"DispatchStatus": "Open",
"Driver": "apotter",
"ExportSendStatus": "",
"ExportStatus": "",
"FinalDeliveryDate": "2019-02-13",
"FinalDeliveryTime": "08:00",
"FirstPickUpDate": "2019-02-12",
"FirstPickUpTime": "08:00",
"FreightAllocateBy": "Weight",
"FreightChargeorCost": "",
"FreightChargeorCostType": "",
"FreightCostApplied": false,
"CleanDry": false,
"Tarp": true,
"MinimumFreightperStop": 0,
"MinimumFreightTotal": 0,
"PerRateLabel": "Mile",
"PerRateMultiplier": 575,
"Printed": false,
"EstimatedRate": 0.25,
"EstimatedRateType": "Per",
"SentToWMS": false,
"StagingLoc": "",
"TotalDistance": 0,
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-12",
"UpdateTime": "10:14:30",
"WeightLimit": 1000,
"CarrierID": "AMT001",
"ShipFromSequence": 1,
"LoadPriority": "",
"LoadTimeframe": "",
"LoadType": "",
"PackingSlip": "2138189",
"RailRoute": "",
"Reference": "190212023",
"Released": false,
"SCACCode": "3505",
"STCCCode": "4590234",
"TransportNumber": "212190023",
"TransportType": "Rail Car",
"dtDispatchTran": [
{
"DispatchID": 12279,
"ASNPrinted": false,
"BillofLading": "WEST00157425-000",
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-02-12",
"CreatedTime": "10:11:03",
"DeliveryID": "WEST00157425",
"DestCallAppt": true,
"DestinationContact": "Sherry Woods",
"DestLoadUnloadHours": "16:00",
"DestinationFax": " ",
"DestinationKey": "00002859",
"DestinationPhone": "(333)-333-3333",
"DestinationSeq": 1,
"DestStartLoadHours": "12:00",
"DestinationType": "Customer",
"Distance": 100,
"OriginCallAppt": true,
"OriginContact": "Justin Driever",
"OriginEndLoadHours": "12:00",
"OriginFax": "(402)-351-2682",
"OriginKey": " 1030",
"OriginPhone": "(402)-351-2300",
"OriginSeq": 1,
"OriginLoadUnloadHours": "08:00",
"OriginType": "Supplier",
"PickUpID": "1012021219",
"ProNumber": "WESTONBRANCH022019",
"Reference": "190212023",
"ShipmentDeliveryDate": "2019-02-13",
"ShipmentDeliveryTime": "16:00",
"SubID": 0,
"StopSequence": 1,
"OrderID": 157425,
"OrderBranch": "WESTON",
"OrderType": "PO",
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-12",
"UpdateTime": "11:14:12",
"dtDispatchDetail": [
{
"ASNSequence": 0,
"ContainerID": "3215112729",
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-02-12",
"CreatedTime": "10:13:47",
"PalletID": "8560",
"Qty": 100,
"SubID": 0,
"OrderID": 157425,
"OrderDetailSequence": 1,
"OrderType": "PO",
"UOM": "EA",
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-12",
"UpdateTime": "11:14:12",
"WMSSequence": 0
}
]
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of dispatch fields related to a specific dispatch ID
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- list of dispatch fields
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchHeaderCreate
Sample Request
{
"request": {
"CarrierID": "AMT001",
"ShipFromSequence": 1,
"DispatchHeaderJSON": {
"dsDispatchHeader": {
"dtDispatchHeader": [
{
"AdditionalCost": 15,
"CarrierFax": "(402)-555-6620",
"CarrierPhone": "(402)-555-6629",
"CleanDry": "Yes",
"Contact": "Jeff Pilot",
"DispatchedBy": "mwellensiek1",
"DispatcherFax": "(402)-555-3479",
"DispatcherPhone": "(402)-555-3470",
"Driver": "apotter",
"EstimatedRate": 0.5,
"EstimatedRateType": "Per",
"FirstPickUpDate": "2019-02-19",
"FirstPickUpTime": "08:00",
"FinalDeliveryDate": "2019-02-22",
"FinalDeliveryTime": "16:45",
"PackingSlip": "9918546819972039",
"PerRateLabel": "Mile",
"PerRateMultiplier": 650,
"Reference": "Hillcrest Apts",
"Released": "No",
"SCACCode": "CENF",
"STCCCode": "0112915",
"Tarp": "No",
"TotalDistance": 1000,
"TransportNumber": "21520190001",
"TransportType": "Rail Car",
"WeightLimit": 10000
}
]
}
}
}
}
Sample Response
{
"response": {
"DispatchID": 162508,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates dispatch header fields
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CarrierIDShipFromSequence
Optional Inputs
- N/A
Response
DispatchID- ReturnCode
MessageText
Notes
- Any fields not included in the
DispatchHeaderCreateJSONassume the default values. - If
EstimatedRateis sent in withoutEstimatedRateType,EstimatedRateTypevalue defaults as “Total”
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchHeaderUpdate
Sample Request
{ "request": {
"DispatchID": {{DispatchID}},
"DispatchHeaderJSON": {
"dsDispatchHeader":{
"dtDispatchHeader":[{
"AdditionalCost": 15,
"CarrierFax": "(402)-555-6620",
"CarrierID": "AMT001",
"CarrierPhone": "(402)-555-6629",
"CleanDry": "Yes",
"Contact": "Jeff Pilot",
"DispatchedBy": "mwellensiek",
"DispatcherFax": "(402)-555-7272",
"DispatcherPhone": "(402)-555-7279",
"Driver": "apotter",
"EstimatedRate": 0.50,
"EstimatedRateType": "Per",
"FirstPickUpDate": "2019-02-19",
"FirstPickUpTime": "08:00",
"FinalDeliveryDate": "2019-02-22",
"FinalDeliveryTime": "16:45",
"PackingSlip": "9918546819972039",
"PerRateLabel": "Mile",
"PerRateMultiplier": 650,
"Reference": "Hillcrest Apts",
"Released": "Yes",
"SCACCode": "CENF",
"ShipFromSequence": 1,
"STCCCode": "0112915",
"Tarp": "No",
"TotalDistance": 500,
"TransportNumber": "21520190001",
"TransportType": "Rail Car",
"WeightLimit": 60000
}]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates dispatch header fields
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
- Any fields not included in the
DispatchHeaderUpdateJSONassume the default values of the existing dispatch ID
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchSendASNToWMS
Sample Request
{
"request": {
"DispatchID": 3846
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Sends ASN to the WMS for a dispatch with PO transactions that affect inventory
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
- The purchase orders on the ASN must be set to affect inventory.
- The items must be set to send to WMS.
- The dispatch must be in a branch that uses WMS.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchTranDelete
Sample Request
{
"request": {
"DispatchID": "12548",
"OrderType": "SO",
"OrderID": 1768,
"SubID": 1
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes a transaction from an existing, open dispatch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDOrderTypeOrderIDSubID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
- The branch variable for this method is the branch of the dispatch transaction, not the dispatch itself. For example: the dispatch is in Branch A, and it includes a dispatch tran in Branch B. To delete the tran, the branch variable must be specified as Branch B
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
DispatchTranUpdate
Sample Request
{
"request": {
"DispatchID": 12608,
"OrderType": "PO",
"OrderID": 158805,
"SubID": 0,
"DispatchTranJSON": {
"dsDispatchTran": {
"dtDispatchTran": [
{
"BillofLading": "2020",
"DeliveryID": "WEST00158805",
"DestinationCallAppt": "true",
"DestinationEndLoadHours": "16:00",
"DestinationID": "VMWC-A1",
"DestinationSeq": 1,
"DestinationStartLoadHours": "08:00",
"DispatchAllQuantity": "true",
"Distance": 65,
"DispatchAllQuantity": "true",
"OriginCallAppt": "true",
"OriginEndLoadHours": "12:00",
"OriginID": "LMC",
"OriginSeq": 1,
"OriginStartLoadHours": "07:00",
"PickUpID": "022820190063",
"ProNumber": "GTM001843",
"Reference": "Hillcrest Apartments",
"ShipmentDeliveryDate": "2019-03-15",
"ShipmentDeliveryTime": "12:00",
"StopSequence": 1
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates dispatch transaction information on an existing dispatch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
DispatchIDOrderIDOrderTypeSubID
Optional Inputs
BillofLadingDeliveryIDDestinationCallAppt,DestinationEndLoadHoursDestinationIDDestinationSeqDestinationStartLoadHoursDistanceDispatchAllQuantityOriginCallApptOriginEndLoadHoursOriginIDOriginSeqOriginStartLoadHoursPickUpIDProNumberReferenceShipmentDeliveryDateShipmentDeliveryTimeStopSequence
Response
- ReturnCode
MessageText
Notes
- Valid values for
DispatchAllQuantityare true and false. IfDispatchAllQuantityis set to false, dispatch details are not created. IfDispatchAllQuantityis set to true, dispatch details are created for remaining quantity not yet dispatched on all related order sequences. - If the dispatch includes dispatch cost packets, only transactions with an
OrderTypeof PO can be added to the dispatch.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
AgilityPublic/Inventory Service
This AgilityPublic service contains methods related to Inventory.
ItemCreateFromTemplate
Sample Request
{
"request": {
"Item": "1702676",
"CopyFromItem": "917-RL",
"ItemCreateFromTemplateJSON": {
"dsItemCreateFromTemplate": {
"dtItemCreateFromTemplate": [
{
"ItemGroupMajor": "00",
"ItemGroupMinor": "PINE",
"PriceCodeMajor": "00",
"PriceCodeMinor": "PINE",
"StockingUOM": "BF",
"CostingUOM": "BF",
"StockingToCostingConvFactor": 1,
"Size": "2x4",
"ItemDescription": "2x4 Pine Stud",
"ExtDescription": "2x4 KD Pine Stud",
"PieceReference": "PC",
"StockingToPieceCalculation": "Qty/(TxWxL/12)",
"StandardThickness": 0,
"Thickness": 2,
"ThicknessUOM": "Inches",
"StandardWidth": 0,
"Width": 4,
"WidthUOM": "Inches",
"LengthUOM": "Feet",
"AlternateUOM1": "MBF",
"AlternateUOM1ConvFactor": 1000,
"AlternateUOM2": "CAR",
"AlternateUOM2ConvFactor": 20000,
"AlternateUOM3": "TRCK",
"AlternateUOM3ConvFactor": 1500,
"StockItem": 1,
"Active": 1,
"TemplateForNonStocks": "No",
"NonSaleable": "No",
"Discontinued": "No",
"AllowInPartnerview": "Yes",
"AllowInAgilityConfigurator": "No",
"AllowInMobileApps": "Yes",
"AllowInECommerceAndAPI": "Yes",
"UserDefinedKeywords": "Pine Stud",
"ShippingBOLCode": "ABC",
"ShippingMSDS": "123",
"TaxCategory": "NT",
"ItemSupplierCode": "WIN01",
"ItemSupplierShipFromSequence": 1,
"ItemSupplierPartNumber": "789712",
"ItemSupplierWeight": 8.5,
"ItemSupplierWeightUom": "EA",
"ItemSupplierLoad": 7,
"ItemSupplierLoadUom": "EA"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Warning",
"AuditText": "Invalid AlternateUOM3"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a single item and associated item_branch record(s)
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CopyFromItem
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The initial branch returned with the Login method indicates which branch that context is originally positioned in
- Once changed, the branch associated with the context is changed and all subsequent calls using that context are positioned in the new branch
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - Any fields not included in the
ItemCreateFromTemplateJSONassume the default values of the copy from item and item_branch record(s)- Exception: The 'Discontinued' field is unset when it is not included in the file
- The item type assigned to an item cannot be changed using the API. It is copied from the template item.
- The
CopyFromIteminput is required - The
StockingToCostingConvFactoris required when either theStockingUOMorCostingUOMis specified and the assigned Stocking and Costing UOMs are not the same - New UOM conversions are auto created in Agility when the
StockingToCostingConvFactor,AlternateUOM1ConvFactor,AlternateUOM2ConvFactor, orAlternateUOM3ConvFactorinputs are not already defined - When the
AlternateUOM1,AlternateUOM2, orAlternateUOM3inputs are assigned to theCopyFromItemwith a single conversion factor, the conversion factor is updated per the associated input value. - When the
AlternateUOM1,AlternateUOM2, orAlternateUOM3inputs are assigned to theCopyFromItemwith multiple conversion factors, theAlternateUOMand conversion factor inputs are added to the item as new UOM conversions - When creating a new item, the system does not copy BOM, attribute, rough opening, schedule rules, image, or document records from the
CopyFromTemplateItem - Upon creation of a new item, reorder fields are cleared regardless of the
CopyFromTemplateItemvalues - Item suppliers are not copied from the template item to the new item
- The
ItemSupplierCodeis always processed as being the primary item supplier assigned to an item. - When creating dimension type items, dimension records assigned to the template item are copied to the new item.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v548
ItemCustomFieldsList
Sample Request
{
"request": {
"dsItemCustomFieldsListRequest": {
"dtItemCustomFieldsListRequest": [
{
"ItemCode": "c10",
"Thickness": 0,
"Width": 0,
"Length": 0
}
]
}
}
}
Sample Response
{
"response": {
"ItemCustomFieldsListResponse": {
"dsItemCustomFieldsListResponse": {
"dtItemCustomFieldsListResponse": [
{
"ItemCode": "c10",
"Thickness": 0,
"Width": 0,
"Length": 0,
"FieldLabel": "Buyer",
"DataType": "Text",
"CharacterData": "",
"DateData": null,
"DecimalData": 0,
"IntegerData": 0,
"LogicalData": false
},
{
"ItemCode": "LL-NAILS",
"Thickness": 0,
"Width": 0,
"Length": 0,
"FieldLabel": "Supplier",
"DataType": "Text",
"CharacterData": "",
"DateData": null,
"DecimalData": 0,
"IntegerData": 0,
"LogicalData": false
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the custom fields for a specified set of items/dimensions
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemCodefor each input record
Optional Inputs
ThicknessWidthLength
Response
- ReturnCode
MessageText- list of custom fields and their values for each item/dimension specified
Notes
- The
DataTypereturned indicates which related Data field should be used to find the appropriate value. For example, if theDataType= Text, the appropriate value is in theCharacterData - For data types of decimal, integer or logical, a default value of 0.0, 0 or false is returned if there is no data. This result does not necessarily mean this represents the data entered in the system, but is what users would see in the Agility application if there was no entry as well
- All custom fields available for the item requested are returned regardless of whether the custom field has a value entered
- For dimension specific item custom fields, you must include the appliable Thickness, Width, and Length
- For the main item record, set the
Thickness,Width, andLengthto 0 to return the main item record for a dimension item
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemCodeand related Thickness, Width and Length come fromItemsListorItemsInChunksList
Version Deployed
v542
ItemCustomFieldsUpdate
Sample Request
{
"request": {
"UpdateCustomFieldsJSON": {
"dsItemCustomFieldsRequest": {
"dtItemCustomFieldsRequest": [
{
"ItemCode": "c10",
"AllSharedBranches": true,
"Thickness": null,
"Width": null,
"Length": null,
"FieldLabel": "Cut",
"DataType": "Text",
"CharacterData": "Cutting",
"DateData": null,
"DecimalData": 0.0,
"IntegerData": 0,
"LogicalData": false
}
]
}
}
}
}
Sample Response
{
"response": {
"UpdateCustomFieldsResponse": {
"dsItemCustomFieldsResponse": {
"dtItemCustomFieldsResponse": [
{
"ItemCode": "812-1",
"Thickness": 0,
"Width": 0,
"Length": 0,
"FieldLabel": "Color",
"DataType": "Text",
"CharacterData": "Goldenrod",
"DateData": null,
"DecimalData": 0,
"IntegerData": 0,
"LogicalData": false,
"AllSharedBranches": true,
"Failures": "",
"Warnings": "Custom field was not updated."
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates custom field values associated for a set of items and/or dimensions
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemCode
Optional Inputs
DataTypeCharacterDataDateDataDecimalDataIntegerDataLogicalDataThicknessWidthLength
Response
- ReturnCode
MessageText- dataset of results under specific conditions
Notes
- The data type associated with the custom field in Agility dictates which of the
<x>Data fields should contain the data to be saved to the record. Please see Relationship notes below - Values provided in irrelevant fields are ignored
- To update custom fields for a dimension,
Thickness,WidthandLengthfields based on item type are necessary inputs - To update the main record for a dimension item, set the
Thickness,Width, andLengthto zero - If there are failures or warnings due to business logic, the method will have a
ReturnCode= 0, but will also returndtItemCustomFieldResults.dtItemCustomFieldResultsis returned as an output for the method IF the Failures and/or Warnings field are/is not empty. Those fields contain more information about what may not have processed as expected - To update an item across all shared branches, the item must be valid in the login branch (active and not set as a template item)
Relationships
ContextIdandBranchcome from Login- Valid values for
FieldLabelfor each come fromItemCustomFieldsList, including the current value associated
Version Deployed
v543; AllSharedBranches field added v548
ItemGroupMajorList
Sample Request
"n/a"
Sample Response
{
"response": {
"ItemGroupMajorResponse": {
"dsItemGroupMajorResponse": {
"dtItemGroupMajorResponse": [
{
"ItemGroupMajor": "00",
"Description": "MISC"
},
{ "ItemGroupMajor": "01", "Description": "BULK" }
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of item/product group majors
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- list of item/prodcut group majors
Notes
- N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v542
ItemGroupMinorList
Sample Request
{
"request": {
"ItemGroupMajor": "00"
}
}
Sample Response
{
"response": {
"ItemGroupMinorResponse": {
"dsItemGroupMinorResponse": {
"dtItemGroupMinorResponse": [
{
"ItemGroupMajor": "00",
"ItemGroupMinor": "00",
"Description": "Tape"
},
{
"ItemGroupMajor": "00",
"ItemGroupMinor": "01",
"Description": "Cleaners"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
returns a list of item/product group minors associated with a specified item/product group major
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemGroupMajor
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- list of item/product group minors for the specified major
Notes
- N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemGroupMajorcome from ItemGroupMajorList
Version Deployed
v542
ItemsInChunksList
Sample Request
{
"request": {
"dsItemsInChunksListRequest": {
"dtItemsInChunksListRequest": [
{
"SearchBy": "Item Code",
"SearchValue": "97114",
"ChunkStartPointer": 0,
"IncludeNonStock": true,
"IncludeNonSaleable": true,
"IncludePriceData": true,
"IncludeQuantityData": true,
"RecordFetchLimit": 3
}
]
}
}
}
Sample Response
{
"response": {
"ItemsInChunksListResponse": {
"dsItemsInChunksListResponse": {
"dtItemsInChunksListResponse": [
{
"ItemCode": "97114",
"ItemXref": "",
"ItemSize": "SIZE",
"ItemDescription": "DESCRIPTION",
"ExtendedDescription": "EXT DESCRIPTION",
"ItemGroupMajor": "BH",
"ItemGroupMinor": "1",
"GrossPrice": 0.35,
"NetPrice": 0.35,
"DiscountDescription": "",
"MinPackQuantity": 0,
"OnHandQuantity": 1902,
"AvailableQuantity": 80,
"UOM": "LF",
"NonSaleable": false,
"Stock": true,
"Discontinued": "No",
"ItemTypeName": "EWP",
"ImageURL": "",
"MinPackType": "Allow - Question",
"PriceUOM": "LF",
"PriceUOMGrossPrice": 0.35,
"PriceUOMNetPrice": 0.35,
"SpecialItemType": "",
"HazardousMaterial": false,
"BOLCode": "",
"MSDS": "",
"PrimarySupplierID": "Central",
"ECommerceDescription": null,
"OnOrderQuantity": 92,
"ReturnQuantity": 1870,
"BackorderedQuantity": 92,
"CommittedQuantity": 1822,
"DefaultWeight": 1,
"DefaultWeightUOM": "LF",
"DefaultLoad": 1,
"DefaultLoadUOM": "LF",
"PrimarySupplierWeight": 1,
"PrimarySupplierWeightUOM": "LF",
"PrimarySupplierLoad": 1,
"PrimarySupplierLoadUOM": "LF",
"dtItemsInChunksListDimResponse": [
{
"ItemCode": "97114",
"ItemXref": "",
"DimensionSize": "",
"Thickness": 2,
"ThicknessUOM": "Inches",
"Width": 4,
"WidthUOM": "Inches",
"Length": 2,
"LengthUOM": "Feet",
"GrossPrice": 0.35,
"NetPrice": 0.35,
"DiscountDescription": "",
"MinPackQuantity": 0,
"OnHandQuantity": 0,
"AvailableQuantity": 0,
"UOM": "LF",
"MinPackType": "Allow - Question",
"PriceUOM": "LF",
"PriceUOMGrossPrice": 0.35,
"PriceUOMNetPrice": 0.35,
"OnOrderQuantity": 0,
"ReturnQuantity": 0,
"BackorderedQuantity": 0,
"CommittedQuantity": 0
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns item related information for a group of items; optionally, results can include quantity and price information; this method is basically the same as ItemsList, but is specifically made for returning larger chunks of items
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
SearchBySearchValueChunkStartPointerIncludeNonStockIncludeNonsaleableIncludePriceDataIncludeQuantityDataRecordFetchLimit
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- list of items with details and some price information
Notes
- The method allows the user to search for and select items based on
SearchByor to request the information for all items. - Valid
SearchByoption is Item Code - This method allows a user to request a specific number of records. Please see the Data chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- For dimensional item types, the main item will be represented in
dtItemResponsewith the related dimensions represented indtItemDimensionResponse. The relationship between the tables is found with theItemCode. There can be a one to many relationship betweendtItemResponseanddtItemDimensionResponsewith the Thickness, Width, Length fields distinguishing between records indtItemDimensionResponse
Version Deployed
v542
ItemsList
Sample Request
{
"request": {
"dsItemsListRequest": {
"dtItemsListRequest": [
{
"SearchBy": "Size",
"SearchValue": "sizzzzzzzzzzzzzzzzzzze",
"ItemGroupMajor": "00",
"ItemGroupMinor": "00",
"IncludeNonStock": true,
"IncludePriceData": true,
"IncludeQuantityData": true,
"IncludeNonSaleable": true,
"RecordFetchLimit": 5
}
]
}
}
}
Sample Response
{
"response": {
"ItemsListResponse": {
"dsItemsListResponse": {
"dtItemsListResponse": [
{
"ItemCode": "c10",
"ItemXref": "",
"ItemSize": "2d",
"ItemDescription": "1 inch nails",
"ExtendedDescription": "",
"ItemGroupMajor": "MISC",
"ItemGroupMinor": "NAILS",
"GrossPrice": 0,
"NetPrice": 0,
"DiscountDescription": "",
"MinPackQty": 1,
"OnHandQty": 0,
"AvailableQty": 0,
"UOM": "PC",
"Nonsaleable": false,
"Stock": true,
"Discontinued": "No",
"ItemTypeName": "",
"ImageUrl": "",
"MinPackType": "",
"PriceUOM": "",
"PriceUOMGrossPrice": 0,
"PriceUOMNetPrice": 0,
"SpecialItemType": "",
"HazardousMaterial": true,
"BOLCode": "BOL1",
"MSDS": "",
"PrimarySupplierID": "",
"ECommerceDescription": "",
"OnOrderQty": 0,
"ReturnQty": 0,
"BackorderedQty": 0,
"CommittedQty": 0,
"DefaultWeight": 4.5,
"DefaultWeightUOM": "box",
"DefaultLoad": 1.1,
"DefaultLoadUOM": "box",
"PrimarySupplierWeight": 4.5,
"PrimarySupplierWeightUOM": "box",
"PrimarySupplierLoad": 1.1,
"PrimarySupplierLoadUOM": "box"
},
{
"ItemCode": "c10a",
"ItemXref": "",
"ItemSize": "5d",
"ItemDescription": "1.75 inch nails",
"ExtendedDescription": "",
"ItemGroupMajor": "MISC",
"ItemGroupMinor": "NAILS",
"GrossPrice": 0,
"NetPrice": 0,
"DiscountDescription": "",
"MinPackQty": 1,
"OnHandQty": 0,
"AvailableQty": 0,
"UOM": "EA",
"Nonsaleable": false,
"Stock": true,
"Discontinued": "No",
"ItemTypeName": "",
"ImageUrl": "",
"MinPackType": "",
"PriceUOM": "",
"PriceUOMGrossPrice": 0,
"PriceUOMNetPrice": 0,
"SpecialItemType": "",
"HazardousMaterial": false,
"BOLCode": "",
"MSDS": "",
"PrimarySupplierID": "",
"ECommerceDescription": "",
"OnOrderQty": 0,
"ReturnQty": 0,
"BackorderedQty": 0,
"CommittedQty": 0,
"DefaultWeight": 1.25,
"DefaultWeightUOM": "Box",
"DefaultLoad": 1.1,
"DefaultLoadUOM": "Box",
"PrimarySupplierWeight": 1.25,
"PrimarySupplierWeightUOM": "Box",
"PrimarySupplierLoad": 1.1,
"PrimarySupplierLoadUOM": "Box"
}
]
}
},
"MoreResultsAvailable": "false",
"TotalRowsFetched": 284,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns item related information for a group of items; optionally, results can include quantity and price information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
SearchBySearchValueItemGroupMajorItemGroupMinoIncludeNonStockIncludeNonsaleableIncludePriceDataIncludeQuantityDataRecordFetchLimit
Response
- ReturnCode
MessageTextMoreResultsAvailableTotalRowsFetched- list of items with details and some price information based on the default customer assigned to the user in User Profiles
Notes
- The method allows the user to search for and select items based on
ItemGroupMajor,ItemGroupMajorandItemGroupMinorcombination,SearchBy, or to request the information for all items. - Valid
SearchByoptions are Item Code, Size, Description, Ext. Description Contains, and Keyword Search - This method allows a user to request a specific number of records. Please see the Data chunking topic for more information
- The method returns item information in the Display UOM defined on the item record, with the following exceptions:
- For the main item record of dimension type items where the display UOM is set to the piece reference UOM, the system returns item information in the stocking UOM, since the piece reference is invalid for the main item record.
- For sheet good and specific length lumber items with a display UOM of UNIT, the system returns item information in the stocking UOM, since various piece counts may apply.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemGroupMajorcome from ItemGroupMajorList or ItemGroupMinorList - Valid values for
ItemGroupMinorcome from ItemGroupMinorList - For dimensional item types, the main item will be represented in
dtItemResponsewith the related dimensions represented indtItemDimensionResponse. The relationship between the tables is found with theItemCode. There can be a one to many relationship betweendtItemResponseanddtItemDimensionResponsewith theThickness,Width,Lengthfields distinguishing between the records indtItemDimensionResponse
Version Deployed
v542
ItemPriceAndAvailabilityList
Sample Request
{
"request": {
"dsItemPriceAndAvailRequest": {
"dtPriceAndAvailRequest": [
{
"CustomerID": "123456",
"ShiptoSequence": 1,
"SaleType": "WH",
"DateToCalculatePriceFor": "2019-08-15"
}
],
"dtItemToProcessRequest": [
{
"ItemCode": "419147",
"OrderQuantity": 7,
"UOM": "BF"
}
],
"dtItemDimensionToProcessReq": [
{
"ItemCode": "419147",
"Thickness": 2,
"Width": 6,
"Length": 8,
"OrderQuantity": 10,
"UOM": "PC"
}
]
}
}
}
Sample Response
{
"response": {
"ItemPriceAndAvailResponse": {
"dsItemPriceAndAvailResponse": {
"dtItemPriceAndAvailResponse": [
{
"ItemCode": "419147",
"OrderQuantity": 7,
"GrossPrice": 0,
"NetPrice": 0,
"DiscountDescription": "",
"OnHandQuantity": 17771,
"AvailableQuantity": 16991,
"UOM": "BF",
"ExtendedDescription": "",
"PriceUOM": "",
"PriceUOMGrossPrice": 0,
"PriceUOMNetPrice": 0,
"Promo": false,
"NonSaleable": false,
"Stock": true,
"MinPackType": "Allow - Question",
"MinPackQuantity": 0,
"dtItemPriceAndAvailDimResponse": [
{
"ItemCode": "419147",
"Thickness": 2,
"Width": 6,
"Length": 8,
"OrderQuantity": 10,
"GrossPrice": 0,
"NetPrice": 0,
"DiscountDescription": "",
"OnHandQuantity": 142,
"AvailableQuantity": 125,
"UOM": "PC",
"PriceUOM": "",
"PriceUOMGrossPrice": 0,
"PriceUOMNetPrice": 0,
"Promo": false,
"MinPackType": "Allow - Question",
"MinPackQuantity": 0
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns specific price information for an item or set of items based on a specific customer and sale type with related quantities
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDdtItemToProcessRequestdtItemDimensionToProcessReqinformation
Optional Inputs
ShiptoSequenceSaleTypeDateToCalculatePriceFor
Response
- ReturnCode
MessageText- list of items with details and the specific price information based on the customer and ship-to specified
Notes
- If
DateToCalculatePriceForis left blank, the current date is used
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemCodecome from ItemsList or ItemsInChunksList. Additionally, Width and Length come from ItemsList or ItemsInChunksList
Version Deployed
v542
ItemTalliesList
Sample Request
{
"request": {
"dsItemTalliesListRequest": {
"dtItemTalliesListRequest": [
{
"ItemCode": "419417",
"Location": "Yard",
"Lot": "100",
"Tag": "T0112616",
"Content": "1X6X24",
"Width": 6,
"Length": 24,
"LevelOfInformation": "Content"
}
]
}
}
}
Sample Response
{
"response": {
"ItemTalliesListResponse": {
"dsItemTalliesListResponse": {
"dtItemTalliesListResponse": [
{
"ItemCode": "419417",
"Location": "Yard",
"SubLocation": "001",
"Lot": "100",
"Tag": "T0112616",
"Content": "1X6X24",
"Thickness": 1,
"Width": 6,
"Length": 24,
"Description": "",
"Description2": "",
"SupplierName": "",
"PieceCount": 0,
"StockQuantity": 120,
"StockUOM": "BF",
"DisplayQuantity": 120,
"DisplayUOM": "BF",
"PieceQuantity": 0,
"PieceUOM": ""
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns tally information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemCodeLevelOfInformation
Optional Inputs
LocationLotTagContentWidthLength
Response
- ReturnCode
MessageText- list of items with details and the specific price information based on the customer and ship-to specified
Notes
- Valid values for
LevelOfInformationareBranch,Location,Lot,Tag, andContentand are directly related to the Quantity Carried on the item - Enter values for
Location,Lot,Tagand/orContentto refine the results to be more specific as needed
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemCodecome from ItemsList or ItemsInChunksList. Additionally, Width and Length come from ItemsList or ItemsInChunksList
Version Deployed
v542
ItemUOMsList
Sample Request
{
"request": {
"dsItemUOMsListRequest": {
"dtItemUOMsListRequest": [
{
"ItemCode": "419147"
}
]
}
}
}
Sample Response
{
"response": {
"ItemUOMsListResponse": {
"dsItemUOMsListResponse": {
"dtItemUOMsListResponse": [
{
"ItemCode": "419147",
"StockingUOM": "BF",
"UOM": "BF",
"FromStocking": 1,
"ToStocking": 1
},
{
"ItemCode": "419147",
"StockingUOM": "BF",
"UOM": "LF",
"FromStocking": 1,
"ToStocking": 1
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns UOM information for a specified set of items
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemCode
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- list of valid UOMs per item and information about the conversion factors to and from the stocking UOM
Notes
- N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemCodecome from ItemsList or ItemsInChunksList. - There can be more than one record in the
dtItemUOMResponsefor eachItemCoderequested
Version Deployed
v542
ItemUpdate
Sample Request
{
"request": {
"Item": "917-RL",
"ItemUpdateJSON": {
"dsItemUpdate": {
"dtItemUpdate": [
{
"AllSharedBranches": 1,
"ItemGroupMajor": "00",
"ItemGroupMinor": "PINE",
"PriceCodeMajor": "00",
"PriceCodeMinor": "PINE",
"StockingUOM": "BF",
"CostingUOM": "BF",
"StockingToCostingConvFactor": 1,
"Size": "2x4",
"ItemDescription": "2 x 4 Pine Stud",
"ExtDescription": "2 in. X 4 in. KD Pine Stud",
"PieceReference": "PC",
"StockingToPieceCalculation": "Qty/(TxWxL/12)",
"StandardThickness": 0,
"Thickness": 2,
"ThicknessUOM": "Inches",
"StandardWidth": 0,
"Width": 4,
"WidthUOM": "Inches",
"LengthUOM": "Feet",
"AlternateUOM1": "MBF",
"AlternateUOM1ConvFactor": 1000,
"AlternateUOM2": "CAR",
"AlternateUOM2ConvFactor": 20000,
"AlternateUOM3": "TRCK",
"AlternateUOM3ConvFactor": 1500,
"StockItem": 1,
"Active": 1,
"TemplateForNonStocks": "No",
"NonSaleable": "No",
"Discontinued": "No",
"AllowInPartnerview": "Yes",
"AllowInAgilityConfigurator": "No",
"AllowInMobileApps": "Yes",
"AllowInECommerceAndAPI": "Yes",
"UserDefinedKeywords": "Pine Stud",
"ShippingBOLCode": "ABC",
"ShippingMSDS": "123",
"TaxCategory": "NT",
"ItemSupplierCode": "WIN01",
"ItemSupplierShipFromSequence": 1,
"ItemSupplierPartNumber": "789712",
"ItemSupplierWeight": 8.5,
"ItemSupplierWeightUom": "EA",
"ItemSupplierLoad": 7,
"ItemSupplierLoadUom": "EA"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Warning",
"AuditText": "Invalid AlternateUOM2"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates a single item and associated item_branch record(s)
Header
ContextIdBranchContent-Type= application/json
Required Inputs
Item
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The initial branch returned with the Login method indicates which branch that context is originally positioned in
- Once changed, the branch associated with the context is changed and all subsequent calls using that context are positioned in the new branch
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - Any fields not included in the
ItemUpdateJSONwill not be updated - The
AllSharedBranchesmust be set for updates across all shared branches. - The item type assigned to an item cannot be changed using the API.
- When performing updates across shared branches, the update must be successfully performed in the login branch before being applied to any shared branches. An existing item code cannot be activated in a shared branch using this API.
- The
StockingToCostingConvFactoris required if changing either theStockingUOMorCostingUOMand the assigned Stocking and Costing UOMs are not the same - New UOM conversions are auto created in Agility when the
StockingToCostingConvFactor,AlternateUOM1ConvFactor,AlternateUOM2ConvFactor, orAlternateUOM3ConvFactorinputs are not already defined - When the
AlternateUOM1,AlternateUOM2, orAlternateUOM3inputs are already assigned to the item with a single conversion factor, the conversion factor is updated per the associated input value. - When the
AlternateUOM1,AlternateUOM2, orAlternateUOM3inputs are already assigned to the item with multiple conversion factors, the AlternateUOM# and conversion factor inputs are added to the item as new UOM conversions - When inactivating an item (Active value = “NO”), the
TemplateForNonStocksfield is not processed. - The
ItemSupplierCodeis always processed as being the primary item supplier assigned to an item. Any pre-existing item supplier assigned to an item is auto unset as being the primary supplier. - The
ItemSupplierCodeandItemSupplierShipFromSequenceare required to update any of the associated item supplier fields.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v548
TagInfoGet
Sample Request
{
"request": {
"Tag": "T0000002"
}
}
Sample Response
{
"response": {
"TagInfoGetResponse": {
"dsTagInfoGetResponse": {
"dtTagInfoGetResponse": [
{
"ItemCode": "SheetGood",
"ItemPtr": 103964,
"StockingUOM": "SF",
"ItemSize": "",
"ItemDescription": "Sheet good item",
"ItemExtDescription": "",
"Location": "FL01 A1-100",
"LocationPtr": 17,
"Lot": "100",
"Tag": "T0000002",
"Content": "30\"X60\"",
"Thickness": 0,
"WIDTH": 30,
"LENGTH": 60,
"PieceCount": 0,
"CommitInfo": "",
"TallyString": "40/30\"x60\"",
"OnHandQty": 500,
"HasMultipleContents": false,
"DimensionString": "30X60",
"DisplayUOM": "SF",
"DisplayUOMQuantity": 40,
"DisplayUOMConvFactor": 0.08,
"PieceReference": "SH",
"PieceQty": 40,
"PieceConvFactor": 0.08,
"InvTagType": "Sngl Unit, PC Cnt, & Length",
"QtyCarriedAtLot": true,
"QtyCarriedAtContent": true,
"QtyOnHold": 0,
"QtyToBeReturned": 0
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the information related to a specified inventory tag or tags
Header
ContextIdBranchContent-Type= application/json
Required Inputs
Tag
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsTagInfoGetResponsecontaining tag information
Notes
- N/A
Relationships
- N/A
Version Deployed
v545
TagValuesList
Sample Request
{
"request": {
"dsTagValuesListRequest": {
"dtTagValuesListRequest": [
{
"NumberOfTagSequences": 2
}
]
}
}
}
Sample Response
{
"response": {
"TagValuesListResponse": {
"dsTagValuesListResponse": {
"dtTagValuesListResponse": [
{
"Tag": "T0113334"
},
{
"Tag": "T0113335"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the next available inventory tag sequences
Header
ContextIdBranchContent-Type= application/json
Required Inputs
NumberOfTagSequences
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsTagValuesListResponsecontaining tag numbers created
Notes
- Use inventory tagging must be set in Branch Parameters for the branch you are sending in the header
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v545
TagsPrint
Sample Request
{
"request": {
"dsTagsPrintRequest": {
"dtTagsPrintRequest": [
{
"Sequence": 2,
"Tag": "Tag 1",
"PrinterID": "LABEL"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Prints inventory tags to a specified printer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
Tag
Optional Inputs
SequencePrinterID
Response
- ReturnCode
MessageText
Notes
- When printing multiple tags, you can include an optional print sequence,
Sequence, in the request - If
PrinterIDis not specified, the tag prints to the Forms Assignment default printer for Inventory Tags
Relationships
- N/A
Version Deployed
v545
AgilityPublic/Orders Service
This AgilityPublic service contains methods related to customer transactions and orders.
CreditMemoList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "Hayes",
"ShipToSequence": 2,
"OrderDateRangeStart": null,
"OrderDateRangeEnd": null,
"FetchOnlyChangedSince": null,
"IncludeOpenOrders": "true",
"IncludeInvoicedOrders": "false",
"IncludeCanceledOrders": "false",
"ChunkStartPointer": 0,
"RecordFetchLimit": 0
}
}
Sample Response
{
"response": {
"CreditMemoResponse": {
"dsCreditMemos": {
"dtCreditMemo": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 301955,
"CustomerID": "Hayes",
"ShipToSequence": 2,
"OrderedBy": "",
"OrderDate": "2019-02-08",
"ExpectedDate": null,
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse Order",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "Our Truck",
"FreightTerms": "",
"PayTermsCode": "1% 60",
"OrderSubtotal": -200,
"OrderChargesAmount": 0,
"Taxable": false,
"TaxCode": "NE_DOUGLAS_OMAHA",
"OrderTaxAmount": 0,
"OrderTotal": -200,
"DiscountAmount": -4,
"AfterDeductFreightAmt": 0,
"ShipToName": "Zippy Yandex",
"ShipToAddress1": "17002 Marcy St Stop 2",
"ShipToAddress2": "Ship To Two Address 2",
"ShipToAddress3": "Ship To Two Address 3",
"ShipToCity": "Omaha",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68118",
"ShipToPhone": "( )- - ",
"BillToName": "Hayes Distribution",
"BillToAddress1": "170002 Marcy St",
"BillToAddress2": "x",
"BillToAddress3": "",
"BillToCity": "Omaha",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68118",
"BillToPhone": "+1(132)-456-7890",
"SalesAgentID1": "testdmsi",
"SalesAgentName1": " ",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2019-02-08",
"UpdateTime": "13:58:43",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": false,
"CostTotal": -427.05,
"CostType": "Item default",
"TotalWeight": 10,
"TotalLoad": 30,
"StatusType": "RMA",
"dtCreditMemoDetail": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 301955,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "CM",
"ItemCode": "419147",
"ItemSize": "ISize",
"ItemDescription": "Devel Elkhorn",
"TotalOrderedQuantity": -10,
"QuantityUOM": "EA",
"GrossPrice": 20,
"NetPrice": 20,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": -200,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": -427.0549,
"ExtWeight": 10,
"ExtLoad": 30
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of credit memos for a specified customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ContextIdCustomerID
Value Required
- The following inputs require a value due to data type:
OrderDateRangeStartOrderDateRangeEndFetchOnlyChangedSinceIncludeOpenOrdersIncludeInvoicedOrdersIncludeCanceledOrdersChunkStartPointerRecordFetchLimit
Optional Inputs
SearchBySearchValueShipToSequence
Response
- ReturnCode
MessageText- List of sale orders, including detail lines
Notes
- This method can return the list of credit memos at a sold-to or ship-to level depending on the value in
ShipToSequence. Specify 0 as theShipToSequenceto return credit memos for the sold-to - The method allows the user to search for and select items based on
SearchByor to request the information for all items. Please see the SearchBy topic for more information - This method allows a user to request a specific number of records. Please see the Data chunking topic for more information
- Because the number of records to be returned based on the search criteria could be large, DMSi recommends using the chunking feature, especially when requesting the list at a sold-to level
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShipToSequencecome fromGetCustomerShiptos - Valid values for
SearchByare Order ID and Customer PO - This method has a Parent/Child relationship between
dtOrderanddtOrderDetailthroughOrderID. This can be a one to many relationship
Version Deployed
v539
CustomerOrderPadAdd
Sample Request
{
"request": {
"CustomerID": "Hayes",
"ShipToSequence": 1,
"dsOrderPadItemsRequest": {
"dtOrderPadItemsRequest": [
{
"Sequence": 10,
"ItemCode": "419147",
"OrderQty": 7,
"UOM": "EA",
"Price": 15,
"PriceUOM": "EA",
"PriceLevel": 1,
"SaleType": "",
"ItemMessage": "",
"OrderedBy": "Brad"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new OrderPad detail; if no OrderPad exists for the customer/ship-to, also creates the main OrderPad record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDItemCodeUOMPriceUOMfor each detailShipToSequence
Optional Inputs
- Remaining fields
dtCustomerOrderPadItems
Response
- ReturnCode
MessageText
Notes
ShipToSequencemay be required if system is set to allowOrderPadat the ship-to level only.OrderPaddetails can be created with 0OrderQty.Sequencevalue can be 0 for each line being added. Processing logic will assign the proper sequence to each line as it is created.If adding a dimension record, values for
Thickness,Width, and/orLengthare required based on item type.ShipToSequencemay be required if system is set to allowOrderPadat the ship-to level only. You can enter zero for theShipToSequenceto add records at the sold-to level.OrderPaddetails can be created with 0OrderQty.Sequencevalue can be 0 for each line being added. Processing logic will assign the proper sequence to each line as it is created.If adding a dimension record, values for
Thickness,Width, and/orLengthare required based on item type.The E-commerce sale type defined for the ship-to record is assigned to the
OrderPad. You can override this by entering a different sale type in theSaleTypefield.The price level defined for the related bill-to record is assigned. You can override with by entering a different value in the
PriceLevelfield.Inventory Selling Min Pack and Min Pak Violation settings do not apply. Quantities do not automatically adjust to the selling min pack and the broken min pack flag is not set.
You can override prices and price UOMs on detail lines. Only the UOMs associated with an item can be entered. For dimensional items with unique pricing by dimension, the overridden price is entered on the dimension and each dimension must be on a separate line. Add-on charges included in the price and discounts will not be applied to the overridden price. The price and price UOM are flagged as overridden once the
OrderPadis submitted.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList. - Valid values for
ShipToSequencecome from CustomerShiptoList. - After adding details to an
OrderPad, use the CustomerOrderPadList method with theCustomerIDandShipToSequence, as required, to see the fullOrderPad.
Version Deployed
v539
CustomerOrderPadDelete
Sample Request
{
"request": {
"CustomerID": "Hayes",
"ShipToSequence": 1,
"dsOrderPadItemsRequest": {
"dtOrderPadItemsRequest": [
{
"Sequence": 5
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes an existing OrderPad detail; if this is the only OrderPad detail remaining on this OrderPad, the main OrderPad record is also deleted
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDSequencefor each detail to delete
Optional Inputs
ShipToSequence
Response
- ReturnCode
MessageText
Notes
ShipToSequencemay be required if system is set to allowOrderPadat the ship-to level only. You can enter zero for theShipToSequenceto add records at the sold-to level.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- To get the list of valid
Sequencesavailable for deleting, use CustomerOrderPadList to see theSequencevalues used and whichItemCodeeach is tied to.Sequenceis the output that matches theSequenceinput. DMSi recommends carefully choosing theSequenceto delete by reviewing related data for eachSequencedetail as anItemCodecan exist on anOrderPadmultiple times, including individual entries for dimensions. - After deleting details from an
OrderPad, use the CustomerOrderPadList method with theCustomerIDandShipToSequence, if necessary, to see the fullOrderPad
Version Deployed
v539
CustomerOrderPadList
Sample Request
{
"request": {
"CustomerID": "Hayes",
"ShipToSequence": 1
}
}
Sample Response
{
"response": {
"dsCustomerOrderPadResponse": {
"dsCustomerOrderPadResponse": {
"dtOrderPadHeaderResponse": [
{
"CustomerCode": "Hayes",
"ShipToSequence": 1,
"PriceLevel": 2,
"SaleType": "WH",
"dtOrderPadItemResponse": [
{
"ItemCode": "419147",
"Dimension": "",
"OrderQty": 150,
"UOM": "EA",
"Price": 15,
"PriceUOM": "EA",
"AvailableQty": 487,
"ItemSize": "ISize",
"ItemDescription": "Elkhorn",
"PriceOverridden": true,
"DiscountDescription": "",
"ExtendedPrice": 2250,
"Cost": 42.7055,
"CostDesignator": "A",
"GrossMarginPercent": -184.7,
"GrossMarginAmount": -4155.82,
"PriceLevel": 1,
"SaleType": "WH",
"CreatedBy": "Brad",
"CreatedDate": "2019-02-13",
"CreatedTime": "12:39:58",
"UpdateBy": "Brad",
"UpdateDate": "2019-02-13",
"UpdateTime": "12:39:58",
"Sequence": 4,
"CustomerCode": "Hayes",
"ShipToSequence": 1,
"Thickness": 0,
"Width": 0,
"Length": 0,
"ItemMessage": "",
"OrderedBy": "Brad",
"SupplierRebate": 0,
"MinPackQty": 0,
"MinPackType": "Allow - Question"
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns an existing OrderPad for a specific customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShipToSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextOrderPadand its related details
Notes
ShipToSequencemay be required if system is set to allowOrderPadat the ship-to level only. You can enter zero for theShipToSequenceto add records at the sold-to level.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList - This method should be used to find the correct inputs for and to verify the processing of the other
CustomerOrderPad*methods available in this service
Version Deployed
v539
CustomerOrderPadUpdate
Sample Request
{
"request": {
"CustomerID": "Hayes",
"ShipToSequence": 1,
"OrderPadUpdateJSON": {
"dsCustomerOrderPadItemsRequest": {
"dtCustomerOrderPadItemsRequest": [
{
"Sequence": 4,
"ItemCode": "419147",
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 77,
"UOM": "EA",
"Price": 2,
"PriceUOM": "EA",
"SaleType": "WH",
"ItemMessage": "",
"OrderedBy": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates an existing OrderPad detail
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDSequenceItemCodefor each detail to updateShipToSequence
Optional Inputs
- Remaining fields
dtCustomerOrderPadItems(depending on what needs to be updated)
Response
- ReturnCode
MessageText
Notes
ShipToSequencemay be required if system is set to allowOrderPadat the ship-to level only- Setting the
ShipToSequencefor zero updates theOrderPadat the sold-to level
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- After updating details from an
OrderPad, use the CustomerOrderPadList method with theCustomerIDandShipToSequence, if necessary, to see the fullOrderPad - To get the list of valid Sequences available for updating, use CustomerOrderPadList to see the
Sequencevalues used and whichItemCodeeach is tied to. DMSi recommends carefully choosing theSequenceto update by reviewing related data for eachSequencedetail as anItemCodecan exist on anOrderPadmultiple times, including individual entries for dimensions
Version Deployed
v539
QuicklistList
Sample Request
{
"request": {
"CustomerID": "123161",
"ShipToSequence": 1
}
}
Sample Response
Sample response {
"response": {
"dsItemQuickListResponse": {
"dsdsItemQuickListResponse": {
"dtQuickListHeaderResponse": [{
"QuickList": "Top Items by GM %",
"dtQuickListItemResponse": [{
"QuickList": "Top Items by GM %",
"ItemCode": "100040",
"ItemSize": "Satin Paint",
"ItemDescription": "orange interior",
"RankValue": 86.1
}]
},
{
"QuickList": "Top Items by Hits",
"dtQuickListItemResponse": [{
"QuickList": "Top Items by Hits",
"ItemCode": "97114SHEET",
"ItemSize": "",
"ItemDescription": "Sheet good",
"RankValue": 9
}]
},
{
"QuickList": "Top Items by Total Sales Amt",
"dtQuickListItemResponse": [{
"QuickList": "Top Items by Total Sales Amt",
"ItemCode": "c10",
"ItemSize": "10 gauge2",
"ItemDescription": "",
"RankValue": 10818.25
}]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns existing quick lists for a specific customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShipToSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- quicklists and their related details
Notes
Quicklistscan be created at the sold-to (ShipToSequence= 0) or ship-to (ShipToSequence<> 0) level for a customer
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- There is a Parent/Child relationship in this method.
dtQuickListHeaderis tied todtQuickListItemvia theQuickListfield. There can be a one to many relationship between these outputs - Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList
Version Deployed
v539
QuicklistPriceandAvailList
Sample Request
{
"request": {
"CustomerID": "123161",
"ShipToSequence": 1
}
}
Sample Response
{
"response": {
"ItemCustomerPricingResponse": {
"dsItemCustomerPricingResponse": {
"dtItemPriceAndQtyResponse": [
{
"ItemCode": "c10",
"ItemXref": "All Cust Xref",
"ItemSize": "10 gauge2",
"DimensionSize": "",
"ItemDescription": "",
"ExtendedDescription": "c10",
"Thickness": 0,
"ThicknessUOM": "",
"Width": 0,
"WidthUOM": "",
"Length": 0,
"LengthUOM": "",
"ItemGroupMajor": "MISC",
"ItemGroupMinor": "NAILS",
"MinPackQty": 1,
"MinPackType": "Adjust - Notify",
"Nonsaleable": false,
"Stock": true,
"ItemType": "",
"ItemTypeName": "",
"ImageUrl": "",
"UOM": "PC",
"OnHandQty": 100,
"AvailableQty": 90,
"PriceUOM": "box",
"GrossPrice": 0.27,
"PriceUOMGrossPrice": 27,
"NetPrice": 0.27,
"PriceUOMNetPrice": 27,
"DiscountDescription": "",
"QuickList": "Top Items by Total Sales Amt",
"RankValue": 10818.25,
"Dimension": "",
"SpecialItemType": "",
"Promo": false,
"DefaultWeight": 4.5,
"DefaultWeightUOM": "box",
"DefaultLoad": 1.1,
"DefaultLoadUOM": "box",
"PrimarySupplierWeight": 4.5,
"PrimarySupplierWeightUOM": "box",
"PrimarySupplierLoad": 1.1,
"PrimarySupplierLoadUOM": "box"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns existing quick lists for a specific customer with price and availability information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShipToSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- quicklists and their related details
Notes
Quicklistscan be created at the sold-to (ShipToSequence= 0) or ship-to (ShipToSequence<> 0) level for a customer
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- The
QuickListfield reflects to which quick list the items returned are related - The difference between this method and QuicklistList is in the data returned. The structure is a bit difference and this method returns price and availability information for the quick list items
- Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList
Version Deployed
v539
QuoteDelete
Sample Request
{
"request": {
"QuoteID": 123456,
"DeleteReleasedQuote": true
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes an existing quote
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
Value Required
- The following inputs require a value due to data type:
QuoteDateRangeStartQuoteDateRangeEndIncludeOnlyOpenQuotesChunkStartPointerRecordFetchLimit
Optional Inputs
DeleteReleasedQuote
Response
- ReturnCode
MessageText
Notes
- If the value for
DeleteReleasedQuoteis not specified, the default is set to false. The value must be set as true to delete a quote with released line items.
Relationships
ContextIdandBranchcome from Login
Version Deployed
549
QuoteList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "123161",
"ShipToSequence": 1,
"IncludeOnlyOpenQuotes": false,
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"QuoteDisplayResponse": {
"dsQuotesResponse": {
"dtQuoteResponse": [
{
"BranchID": "WESTONBRANCH",
"QuoteID": 300530,
"HeaderGUID": "1009e9de529e-b775-b995-4914-f9d5fc29",
"QuoteType": "",
"CustomerID": "123161",
"ShipToSequence": 1,
"QuotedBy": "llattier",
"QuoteDate": "2018-12-17",
"ActivationDate": "2018-12-17",
"ClosedDate": "2019-04-16",
"QuoteProcessStatus": "Open",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse Order WH",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"ShipVia": "OUR TRUCK",
"FreightTerms": "",
"PayTermsCode": "2%flat",
"OrderSubtotal": 960,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "NE5.5",
"OrderTaxAmount": 52.8,
"OrderTotal": 1012.8,
"DiscountAmount": 19.2,
"AfterDeductFreightAmt": 0,
"ShipToName": "DAA Hardware - Ralston",
"ShipToAddress1": "4321 78th Street",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Ralston",
"ShipToState": "NE",
"ShipToCountry": "",
"ShipToZip": "68127",
"ShipToPhone": "(402)-555-3333",
"BillToName": "DAA HARDWARE BILL-TO 1",
"BillToAddress1": "123 A STREET",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "LA VISTA",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68128",
"BillToPhone": "( )- - ",
"SalesAgentID1": "",
"SalesAgentName1": "",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"dtQuoteDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"QuoteID": 300530,
"Sequence": 1,
"DisplaySequence": 1,
"ItemCode": "PHX283A",
"ItemSize": "REG",
"ItemDescription": "",
"DetailProcessStatus": "Open",
"TotalOrderedQuantity": 10,
"QuantityUOM": "EA",
"GrossPrice": 32,
"NetPrice": 32,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 320,
"WOPhrase": ""
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 262,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of quotes for a specified customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
Value Required
- The following inputs require a value due to data type:
QuoteDateRangeStartQuoteDateRangeEndIncludeOnlyOpenQuotesChunkStartPointerRecordFetchLimit
Optional Inputs
ShipToSequence
Response
- ReturnCode
MessageText- list of quotes, including detail lines
Notes
- This method can return the list of quotes at a sold-to or ship-to level depending on the value in
ShipToSequence. Specify 0 as theShipToSequenceto return quotes orders for the sold-to - This method allows a user to request a specific number of records. Please see the Chunking topic for more information
- Because the number of records to be returned based on the search criteria could be large, DMSi recommends using the chunking feature, especially when requesting the list at a sold-to level
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList - Valid values for
SearchByare Order ID and Customer PO SearchByandSearchValue, while displayed as inputs, are not operational for this method
Version Deployed
539
QuotePriceHoldApprove
Sample Request
{
"request": {
"QuoteID": 1000328293,
"QuoteDetailApproveJSON": {
"dsQuoteDetail": {
"dtQuoteDetail": [
{
"Sequence": 1,
"SendNotification": "YES",
"ReviewerID": "PRCAPP01",
"Comment": "above floor"
},
{ "Sequence": 2, "SendNotification": "NO" },
{
"Sequence": 4,
"SendNotification": "YES",
"ReviewerID": "PRCAPP01",
"Comment": "below floor"
},
{
"Sequence": 3,
"SendNotification": "YES",
"ReviewerID": "PRCAPP01",
"Comment": "Error in quoted price"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Removes quote items from price hold; approve items on price hold based of the QuoteID and detail line item Sequence
Header
ContextIdBranchContent-Type= application/json
Required Inputs
QuoteIDSequence
Optional Inputs
SendNotificationReviewerIDComment
Response
- ReturnCode
MessageText
Notes
- To get the list of valid Sequences available for updating, use
QuoteListto see theSequencevalues used and whichItemCodeeach is tied to. DMSi recommends carefully choosing theSequenceto update by reviewing related data for eachSequencedetail as anItemCodecan exist multiple times on a Quote, including individual entries for dimensions - A Price Hold Approval/Rejection Notification must be defined in Agility to send a notification
- Comment and
ReviewerIDare populated on the notification- When the
ReviewerIDvalue matches a User ID in Agility, the Reviewer User Name on the notification is populated with the User Name value from the user record - If the
ReviewerIDvalue does not match a User ID in Agility, the Reviewer User Name on the notification is blank
- When the
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
QuoteIDcome from QuoteList
Version Deployed
v539
QuotePriceHoldReject
Sample Request
{
"request": {
"QuoteID": 1000328312,
"QuoteDetailRejectJSON": {
"dsQuoteDetail": {
"dtQuoteDetail": [
{
"Sequence": 2,
"SuggestedPrice": 2.2,
"SuggestedPriceUOM": "GAL",
"SendNotification": "YES",
"ReviewerID": "PRCREJ01",
"Comment": "below floor"
},
{
"Sequence": 1,
"SuggestedPrice": 1.1,
"SuggestedPriceUOM": "EA",
"SendNotification": "YES",
"ReviewerID": "PRCREJ01",
"Comment": "below floor"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Denies removal of quote items from price hold based on the QuoteID and detail line item Sequence and sends a suggested price for approval
Header
ContextIdBranchContent-Type= application/json
Required Inputs
QuoteIDSequence
Optional Inputs
QuoteIDSequence
Response
- ReturnCode
MessageText
Notes
- To get the list of valid Sequences available for updating, use
QuoteListto see theSequencevalues used and whichItemCodeeach is tied to. DMSi recommends carefully choosing theSequenceto update by reviewing related data for eachSequencedetail as anItemCodecan exist multiple times on a Quote, including individual entries for dimensions - Include a
SuggestedPricethat would allow approval of the item - A Price Hold Approval/Rejection Notification must be defined in Agility to send a notification
CommentandReviewerIDare populated on the notification- When the
ReviewerIDvalue matches a User ID in Agility, the Reviewer User Name on the notification is populated with the User Name value from the user record - If the
ReviewerIDvalue does not match a User ID in Agility, the Reviewer User Name on the notification is blank
- When the
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
QuoteIDcome from QuoteList
Version Deployed
v550
SalesOrderCreate
Sample Request
{
"request": {
"dsOrderHeaderRequest": {
"dtOrderHeaderRequest": [
{
"CustomerID ": "RS23",
"ShipToSequence": 1,
"TransactionReference": "",
"TransactionJob ": "",
"OrderedBy": "API",
"CustomerPurchaseOrder": "",
"AcknowledgementEmailAddress": "",
"AcknowledgementEmailAddress2": "",
"AcknowledgementFaxNumber": "",
"PrePaid": false,
"ShipToName ": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity ": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "",
"ShipToPhone": "",
"TaxCode": "",
"SaleType": "WH",
"OrderMessage": "test",
"ShipVia": "",
"ShipComplete": false,
"ShipCompleteOverride": false,
"CreateShipment": false,
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": "",
"MiscDate2": "",
"APISourceID": ""
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "110H",
"OrderQty": 200,
"UOM": "EA",
"Charge": false,
"Price": 0.6,
"PriceUOM": "EA",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": ""
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 0,
"UOM": "",
"Price": 0,
"PriceUOM": "0",
"PriceOverride": false
}
]
},
"dsOrderItemComponentRequest": {
"dtOrderItemComponentRequest": []
},
"dsTaxAuthorityRequest": {
"dtTaxAuthorityRequest": []
}
}
}
Sample Response
{
"response": {
"NewOrderID": 321771,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new sales order, which can include BOM parent items with components, with specified tax rates and a specified sale type, as well as a shipment
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptToSequenceItemCode- order Qty for each detail
Value Required
PrePaidShipCompleteShipCompleteOverrideCreateShipmentChargePriceOverrideOrderCostSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostOverride
Optional Inputs
- Remaining fields in the
dtOrderHeaderRequest,dtOrderItemRequest,dtOrderItemDimensionRequest,dtOrderItemComponentRequestnot already referenced, dtTaxAuthorityRequest
Response
- ReturnCode
MessageTextNewOrderID
Notes
- This method allows parent items and related components to be added to the sales order. When added successfully, a work order is create for the configured parent item.
- At least 1 item or dimension must be sent in.
- Each detail must have an
OrderQty> 0. - If ordering by dimension, values for
Thickness,Width, and/orLengthare required based on item type. In addition, theOrderQtyandUOMmust also be specified at the dimension level. - This method can be used when integrating with a tax provider to push the correct rates and jurisdictions to Agility. The incoming tax jurisdictions are created in Agility if not already present and a new tax code, if not already present, is built and applied to the order.
- If invalid or incomplete inputs are detected in the
dtTaxAuthorityRequest, the sales order will be created, but the method will return aReturnCode= 1 and aMessageTextindicating the issue. In this case, the order is marked as taxable, but the tax code will be blank. Blank tax code must be corrected before the order can be invoiced. - If
CreateShipment= “true”, the process attempts to create a shipment for the material ordered. If a shipment could not be created, based on Agility rules, the method will return aReturnCode= 1 and aMessageTextindicating the issue. In this case, the order is still created, but no shipment is created. - This method allows you to save the price from a third-party pricing service when
PriceOverride= "true". The values from theAPIPriceSourceReffield andAPIPriceSourceTypefields save to the corresponding fields on the sales order and the price history record. The price saves to the Orig price andPricefields on the sales order item detail record. If either theAPIPriceSourceReforAPIPriceSourceTypefield are blank, the system creates two price history records. The first price history record contains the Agility price. The second price history record contains the overridden price from the incoming file. The Agility price saves to the Orig price. The overridden prices saves to the Price field on the item detail record. WhenPriceOverride= false, the system uses the price from Agility on the transaction.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList - Valid values for
ItemCodeand relatedThickness,WidthandLengthcome from ItemsList or ItemsInChunksList - The
NewOrderIDreturned from this method can be used in conjunction with theSearchByfeature in SalesOrderList to verify the new sales order was created as expected. - This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see the Parent/Child relationships topic for more information. - There is a many to one relationship between the
dtTaxAuthorityRequestand thedtOrderHeaderRequestas the method allows the input of tax rates from various taxing jurisdictions to build the resulting tax code to apply to the order.
Version Deployed
v546; APIPrice fields added v548
SalesOrderList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "123161",
"ShipToSequence": 3,
"OrderDateRangeStart": "",
"OrderDateRangeEnd": "",
"ExpectedDateRangeStart": "",
"ExpectedDateRangeEnd": "",
"FetchOnlyChangedSince": "",
"IncludeOpenOrders": true,
"IncludeInvoicedOrders": false,
"IncludeCanceledOrders": false,
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"OrdersResponse": {
"dsOrdersResponse": {
"dtOrderResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 272801,
"CustomerID": "123161",
"ShipToSequence": 3,
"OrderedBy": "",
"OrderDate": "2017-08-21",
"ExpectedDate": "2017-08-22",
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"SaleType": "wh",
"SaleTypeDescription": "Warehouse Order WH",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "",
"FreightTerms": "",
"PayTermsCode": "LAL1",
"OrderSubtotal": 23.85,
"OrderChargesAmount": 0,
"Taxable": false,
"TaxCode": "",
"OrderTaxAmount": 0,
"OrderTotal": 23.85,
"DiscountAmount": 0.24,
"AfterDeductFreightAmt": 0,
"ShipToName": "SHIP-TO 3",
"ShipToAddress1": "ADDRESS 1",
"ShipToAddress2": "",
"ShipToAddress3": "ADDRESS 3",
"ShipToCity": "LA VISTA",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68128",
"ShipToPhone": "(402)-555-1111",
"BillToName": "DAA HARDWARE BILL-TO 1",
"BillToAddress1": "123 A STREET",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "LA VISTA",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68128",
"BillToPhone": "( )- - ",
"SalesAgentID1": "0901",
"SalesAgentName1": "",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2017-08-21",
"UpdateTime": "11:39:01",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": true,
"CostTotal": 3,
"CostType": "Item default",
"TotalWeight": 0,
"TotalLoad": 0,
"dtOrderDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 272801,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "SO",
"ItemCode": "LL-PAINT",
"ItemSize": "",
"ItemDescription": "",
"TotalOrderedQuantity": 3,
"QuantityUOM": "GAL",
"GrossPrice": 7.95,
"NetPrice": 7.95,
"PriceUOM": "GAL",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 23.85,
"TotalBackorderedQuantity": 3,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "PO",
"LinkedTranID": 148517,
"LinkedTranSequence": 1,
"CustomerPOLineNumber": "001",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": 3,
"ExtWeight": 0,
"ExtLoad": 0
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 2,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of sales orders for a specified customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
Value Required
The following inputs require a value due to data type:
FetchOnlyChangedSinceIncludeOpenOrdersIncludeInvoicedOrdersIncludeCanceledOrdersChunkStartPointerRecordFetchLimit
Optional Inputs
SearchBySearchValueShipToSequenceOrderDateRangeStartOrderDateRangeEndExpectedDateRangeStartExpectedDateRangeEnd
Response
- ReturnCode
MessageText- list of sale orders, including detail lines
Notes
- This method can return the list of sales orders at a sold-to or ship-to level depending on the value in
ShipToSequence. Specify 0 as theShipToSequenceto return sales orders for the sold-to - The method allows the user to search for and select items based on
SearchByor to request the information for all items. Please see the SearchBy topic for more information - This method allows a user to request a specific number of records. Please see the Chunking topic for more information
- Because the number of records to be returned based on the search criteria could be large, DMSi recommends using the chunking feature, especially when requesting the list at a sold-to level
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList - Valid values for
SearchByare Order ID and Customer PO - This method has a Parent/Child relationship between
dtOrderanddtOrderDetailthroughOrderID. This can be a one to many relationship - While this method can be called for any known valid sales order id, the
SearchByandSearchValueinputs allow the method to return a specific sales order
Version Deployed
v539; ExpectedDateRange fields added v549
SalesOrderPayment
Sample Request
{
"request": {
"SalesOrderPaymentJSON": {
"dsPayment": {
"dtPayment": [
{
"Type": "Pending",
"PaymentAccountID": "6B0F870C-1B98-41E4-A023-339620538660",
"AllowTokenDelete": "Yes",
"dtTransaction": [
{
"TransactionID": 1000332221,
"AmountTendered": 0.0
}
]
},
{
"Type": "Payment",
"ProcessorTransactionID": "89852081",
"dtTransaction": [
{
"TransactionID": 1000332221
}
]
},
{
"Type": "TokenPayment",
"PaymentAccountID": "00b03696-0248-4a31-ab07-6e0b8c68c822",
"dtTransaction": [
{
"TransactionID": 1000332221,
"AmountTendered": 25.25
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Sends credit card authorization and/or payment information to Agility to store alongside the order upon Sales Order creation via an Agility customer’s eCommerce site
Header
ContextIdBranchContent-Type= application/json
Required Inputs
Type
PaymentAccountID(Pending and TokenPayment Type)ProcessorTransactionID(Payment Type)TransactionIDAmountTendered(Pending and TokenPayment Type)
Optional Inputs
AllowTokenDelete
Response
- ReturnCode
MessageText
Notes
- You can send all three Types at once or one at a time
- Type of Pending stores a token to be used for processing the credit card later at the time of invoicing in Agility when order details have been finalized. When creating a Pending payment type, the system saves the ‘Alternate pay terms code’ from the payment method applied to the ‘Payment terms code’ field in Sales Order Entry
- Type of Payment includes any credit card payment information that was processed at the time of order creation via the eCommerce platform so that the credit card payment details are reflected in Agility
ProcessorTransactionIDis theTransactionIDreceived from the WorldPay for the payment processed via the eCommerce platform- TokenPayment Type is processed immediately in Agility using the provided token so that the credit card payment details are sent and received via Agility
AllowTokenDeletewill not delete the token from WorldPay once a pending payment is closed and can be used on multiple Sales Orders if set to No. This option is used when it’s a saved card on the eCommerce platformAllowTokenDeletedefaults to Yes for Pending Type when not included- 0.00
AmountTenderedfor Pending Type defaults to order total amount on the sales order - Overpayments always process as a deposit on order for Payment and TokenPayment Type
Relationships
ContextIdandBranchcome from LoginTransactionIDcomes from SalesOrderList
Version Deployed
v551
SalesOrderPriceHoldApprove
Sample Request
{
"request": {
"OrderID": 1000328293,
"SalesOrderDetailApproveJSON": {
"dsSalesOrderDetail": {
"dtSalesOrderDetail": [
{
"Sequence": 1,
"SendNotification": "YES",
"ReviewerID": "PRCAPP01",
"Comment": "above floor"
},
{ "Sequence": 2, "SendNotification": "NO" }
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Removes sales order items from price hold; approve items on price hold based on the OrderID and detail line item Sequence
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDSequence
Optional Inputs
SendNotificationReviewerIDComment
Response
- ReturnCode
MessageText
Notes
- To get the list of valid Sequences available for updating, use
SalesOrderListto see theSequencevalues used and whichItemCodeeach is tied to. DMSi recommends carefully choosing theSequenceto update by reviewing related data for eachSequencedetail as anItemCodecan exist multiple times on a Sales Order, including individual entries for dimensions - A Price Hold Approval/Rejection Notification must be defined in Agility to send a notification
CommentandReviewerIDare populated on the notification • When theReviewerIDvalue matches a User ID in Agility, the Reviewer User Name on the notification is populated with the User Name value from the user record • If theReviewerIDvalue does not match a User ID in Agility, the Reviewer User Name on the notification is blank
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDcome from SalesOrderList
Version Deployed
v550
SalesOrderPriceHoldReject
Sample Request
{
"request": {
"OrderID": 1000328312,
"SalesOrderDetailRejectJSON": {
"dsSalesOrderDetail": {
"dtSalesOrderDetail": [
{
"Sequence": 2,
"SuggestedPrice": 2.2,
"SuggestedPriceUOM": "GAL",
"SendNotification": "YES",
"ReviewerID": "PRCREJ01",
"Comment": "below floor"
},
{
"Sequence": 1,
"SuggestedPrice": 1.1,
"SuggestedPriceUOM": "EA",
"SendNotification": "YES",
"ReviewerID": "PRCREJ01",
"Comment": "below floor"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Denies removal of sales order items from price hold based on the OrderID and detail line item Sequence and sends a suggested price for approval
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDSequence
Optional Inputs
SendNotificationReviewerIDCommentSuggestedPriceSuggestedPriceUOM
Response
- ReturnCode
MessageText
Notes
- To get the list of valid Sequences available for updating, use
SalesOrderListto see theSequencevalues used and whichItemCodeeach is tied to. DMSi recommends carefully choosing theSequenceto update by reviewing related data for eachSequencedetail as anItemCodecan exist multiple times on a Sales Order, including individual entries for dimensions - Include a
SuggestedPricethat would allow approval of the item - A Price Hold Approval/Rejection Notification must be defined in Agility to send a notification
- Comment and
ReviewerIDare populated on the notification • When theReviewerIDvalue matches a User ID in Agility, the Reviewer User Name on the notification is populated with the User Name value from the user record • If theReviewerIDvalue does not match a User ID in Agility, the Reviewer User Name on the notification is blank
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDcome from SalesOrderList
Version Deployed
v550
SalesOrderUpdate
Sample Request
{
"request": {
"OrderID": 447,
"OrderHeaderUpdateJSON": {
"dsOrderHeaderUpdateRequest": {
"dtOrderHeaderUpdateRequest": [
{
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"CustomerPurchaseOrder": "",
"ShipVia": "",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": null,
"MiscDate2": null
}
]
}
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "BLANK",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": ""
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 0,
"UOM": "",
"Price": 0,
"PriceUOM": "",
"PriceOverride": false
}
]
},
"dsOrderItemComponentRequest": {
"dtOrderItemComponentRequest": [
{
"OrderItemSequence": 0,
"ComponentSequence": 0,
"BomType": "",
"ItemCode": "",
"PartNumber": "",
"OrderQty": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"TallyUOM": "",
"PrintFlag": false,
"SundryCost": 0,
"SundryCostOverride": false,
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"UOM": ""
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates header information and/or adds new items to an existing sales order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ContextIDOrderID
Value Required
The following inputs require a value due to data type:
ChargePriceOverrideOrderCostPrintMsgOnFormsPrintMsgOnFormsOverrideSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostSundryCostOverride
Optional Inputs
All fields in dtOrderHeaderUpdateRequest; remaining fields in dtOrderItemRequest, dtOrderItemDimensionRequest, dtOrderItemComponentRequest not already referenced
Response
- ReturnCode
MessageText
Notes
- This method allows specific fields on the sales order header to be updated
- This method allows new items to be added to an existing sales order, including parent items with components work order is created for the configured parent item. Existing items may not be updated or deleted by this method
- Each new detail must have
OrderQty> 0 - When ordering by dimension, values for
Thickness,Width, and/orLengthare required based on item type. In addition, theOrderQtyandUOMmust also be specified at the dimension level - When ordering a parent item with components,
OrderItemSequence,ComponentSequence,ItemCode, andOrderQtyare required indtOrderItemComponentRequest - If the
ShipViavalue sent in is invalid, the entire request fails and no updates are completed
Relationships
ContextIdcomes from Login- Alternate branches come from BranchList
- Valid values for
OrderIDcome from SalesOrderList or fromNewOrderIDreturned from SalesOrderCreate - This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see the Parent/Child relationships topic for more information.
Version Deployed
v550
AgilityPublic/Pricing Service
This AgilityPublic service contains methods relating to pricing.
ItemCustomerPricingList
Sample Request
{
"request": {
"CustomerID": "123161",
"ShipToSequence": 1,
"SaleType": "WH",
"SearchBy": "",
"SearchValue": "LL-PAINT",
"ItemGroupMajor": "",
"ItemGroupMinor": "",
"IncludeNonStock": true,
"IncludeNonSaleable": true,
"RecordFetchLimit": 0
}
}
Sample Response
{
"response": {
"dsCustomerPricingResponse": {
"dsItemCustomerPricingResponse": {
"dtItemPriceAndQtyResponse": [
{
"ItemCode": "LL-PAINT",
"ItemXref": "",
"ItemSize": "SIZE",
"DimensionSize": "",
"ItemDescription": "DESCRIPTION",
"ExtendedDescription": "EXT DESC",
"Thickness": 0,
"ThicknessUOM": "",
"Width": 0,
"WidthUOM": "",
"Length": 0,
"LengthUOM": "",
"ItemGroupMajor": "PANT",
"ItemGroupMinor": "IVORY",
"MinPackQty": 0,
"MinPackType": "Allow - Question",
"Nonsaleable": false,
"Stock": true,
"ItemType": "",
"ItemTypeName": "",
"ImageUrl": "",
"UOM": "GAL",
"OnHandQty": 91560,
"AvailableQty": 90041,
"PriceUOM": "GAL",
"GrossPrice": 7.95,
"PriceUOMGrossPrice": 7.95,
"NetPrice": 7.95,
"PriceUOMNetPrice": 7.95,
"DiscountDescription": "",
"QuickList": "",
"RankValue": 0,
"Dimension": "",
"SpecialItemType": "",
"Promo": false,
"DefaultWeight": 0.0001,
"DefaultWeightUOM": "GAL",
"DefaultLoad": 0.0001,
"DefaultLoadUOM": "GAL",
"PrimarySupplierWeight": 0.0001,
"PrimarySupplierWeightUOM": "GAL",
"PrimarySupplierLoad": 0.0001,
"PrimarySupplierLoadUOM": "GAL"
}
]
}
},
"MoreResultsAvailable": "false",
"TotalRowsFetched": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns item related information as well as the most specific price for the customer and ship-to specified for a group of items
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- CustomerID
ShiptoSequenceIncludeNonStockIncludeNonsaleableRecordFetchLimit
Optional Inputs
SaleTypeSearchBySearchValueItemGroupMajorItemGroupMinor
Response
- ReturnCode
MessageTextMoreResultsAvailableTotalRowsFetched- list of items with details and the specific price information based on the customer and ship-to specified
Notes
- The method allows the user to search for and select items based on
ItemGroupMajor,ItemGroupMajorandItemGroupMinorcombination,SearchByor to request the information for all items in sets.
ValidSearchByandSearchValueforGetItemsare also valid for this method. Please see the SearchBy topic for more information - This method allows a user to request a specific number of records. Please see the Data chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Valid values for
ItemGroupMajorcome from ItemGroupMajorList or ItemGroupMinorList - Valid values for
ItemGroupMinorcome from ItemGroupMinorList. - Valid values for
SaleTypecome from SaleTypesList
Version Deployed
v543
PriceInfoList
Sample Request
{
"request": {
"CustomerID": "12345",
"ShiptoSequence": 14,
"SaleType": "WH",
"PriceTypeOption": "",
"dsItemToProcessRequest": {
"dtItemToProcessRequest": [
{
"ItemCode": "118835",
"OrderQty": 100,
"UOM": "EA"
},
{
"ItemCode": "118835RANDOM",
"OrderQty": 100,
"UOM": "BF"
}
],
"dtItemDimensionToProcessRequest": [
{
"ItemCode": "118835RANDOM",
"Thickness": 2,
"Width": 6,
"Length": 8,
"OrderQty": 10,
"UOM": "PC"
}
]
}
}
}
Sample Response
{
"response": {
"GetPricingResponse": {
"dsPriceInfoResponse": {
"dtPriceInfoResponse": [
{
"ItemCode": "118835",
"Thickness": 0,
"Width": 0,
"Length": 0,
"SaleType": "<all>",
"PriceType": "Qty Break 0 EA",
"Dimensions": "",
"PriceUOMGrossPrice": 20,
"PriceUOMNetPrice": 20,
"PriceUOM": "EA",
"DiscountQty": 0,
"DiscountDescription": "",
"DiscountUOM": "EA",
"DateRange": "Open - Open",
"Promo": false,
"BOMComponentPrice": ""
},
{
"ItemCode": "118835",
"Thickness": 0,
"Width": 0,
"Length": 0,
"SaleType": "<all>",
"PriceType": "Qty Break 100 EA",
"Dimensions": "",
"PriceUOMGrossPrice": 19,
"PriceUOMNetPrice": 19,
"PriceUOM": "EA",
"DiscountQty": 0,
"DiscountDescription": "",
"DiscountUOM": "EA",
"DateRange": "Open - Open",
"Promo": false,
"BOMComponentPrice": ""
},
{
"ItemCode": "118835",
"Thickness": 0,
"Width": 0,
"Length": 0,
"SaleType": "<all>",
"PriceType": "Qty Break 1000 EA",
"Dimensions": "",
"PriceUOMGrossPrice": 18,
"PriceUOMNetPrice": 18,
"PriceUOM": "EA",
"DiscountQty": 0,
"DiscountDescription": "",
"DiscountUOM": "EA",
"DateRange": "Open - Open",
"Promo": false,
"BOMComponentPrice": ""
},
{
"ItemCode": "118835RANDOM",
"Thickness": 2,
"Width": 6,
"Length": 8,
"SaleType": "<all>",
"PriceType": "Qty Break 0 BF",
"Dimensions": "00X00X00",
"PriceUOMGrossPrice": 123,
"PriceUOMNetPrice": 123,
"PriceUOM": "BF",
"DiscountQty": 0,
"DiscountDescription": "",
"DiscountUOM": "BF",
"DateRange": "Open - Open",
"Promo": false,
"BOMComponentPrice": ""
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns all pricing and discount records from the specified level in the hierarchy for the customer and items/dimensions specified
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequence;ItemCodefor each record in the set of items to process
Optional Inputs
PriceTypeOptionSaleTypeOrderQty;UOMin set of items to process; all fields in the set of dimensions to process
Response
- ReturnCode
MessageTextMoreResultsAvailableTotalRowsFetched- list of items with details and the specific price information based on the customer and ship-to specified
Notes
- Valid values for
PriceTypeOptionare All, All Comb, Customer Pricing Comb, Customer Pricing, Standard Pricing Comb, Standard Pricing, Most Specific Comb, Most Specific, Special Pricing Comb and Special Pricing- Options that include "Comb" in the name return the net price as the gross price less any applicable discounts and do not return the discount records as separate records
- Options that do not include "Comb" in the name return any applicable discount records as separate records and only return net price as 0 to indicate the net price was not calculated
- When requesting for a dimensional item without specifying a dimension, the pricing records for the item and all dimensions are returned. When requesting for a dimensional item and specifying the dimension, the pricing records for that specific dimension only are returned. The values in
Thickness,WidthandLengthreturned identify which dimension the request was made for - When including a
SaleType, only price records that apply to thatSaleType(or theSaleType) are returned - The
PriceInfoListmethod returns a net price for price and discount records. Item information is returned in the Display UOM defined on the item record.- For the main item record of dimension type items where the display UOM is set to the piece reference UOM, the method returns item information in the stocking UOM, since the piece reference is invalid for the main item record.
- For sheet good and specific length lumber items with a display UOM of UNIT, the method returns item information in the stocking UOM, since various piece counts may apply
Relationships
ContextIdandBranchcome from Login- Valid values for
ItemCodecome from ItemsList or ItemsInChunksList. Additionally, theThickness,WidthandLengthvalues also come from ItemsList or ItemsInChunksList for applicable item - Valid values for
CustomerIDcome from CustomersList or CustomerShiptosList - Valid values for
ShipToSequencecome from CustomerShiptosList - Valid values for
SaleTypecome from SaleTypesList
Version Deployed
v544
AgilityPublic/Purchasing Service
This AgilityPublic service contains methods related to purchasing and receiving.
PurchaseOrderCostPacketsDelete
Sample Request
{
"request": {
"PurchaseOrderID": 158553,
"PurchaseOrderCostPacketsDeleteJSON": {
"dsPurchaseOrderCostPacket": {
"dtPurchaseOrderCostPacket": [
{
"CostType": "Freight",
"SupplierID": "FEDEX"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes cost packets from a specific purchase order
Header
ContextIdBranchContext-Type= application/json
Required Inputs
PurchaseOrderIDCostType
Optional Inputs
SupplierID
Response
- ReturnCode
MessageText
Notes
- For a cross reference to be sent in the
CostTypefield, the related supplier must be specified in theSupplierIDfield. - If the
SupplierIDis invalid for theCostTypecross reference, the deletion will fail. - The system ignores the
SupplierIDif a valid, non-cross referenceCostTypeis sent in the request.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
PurchaseOrderCostPacketsGet
Sample Request
{
"request": {
"PurchaseOrderID": "158553"
}
}
Sample Response
{
"response": {
"CostPacketResponse": {
"dsCostPacketsResponse": {
"dtCostPacketsResponse": [
{
"AllocateBy": "Load",
"ApplyPerReceiving": true,
"CostBasis": "fixed",
"BasisAmount": 0,
"FixedAmount": 32.95,
"Cost": 32.95,
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-02-04",
"CreatedTime": "11:51:45",
"DispatchID": 0,
"Freight": true,
"MinOrderAmount": 0,
"Overridden": true,
"PrintOnForm": true,
"ReceiveNum": 0,
"ShipmentNum": 0,
"SOID": 0,
"SupplierID": "FEDEX",
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-04",
"UpdateTime": "11:51:45"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a cost packet information for a specific purchase order
Header
ContextIdBranchContext-Type= application/json
Required Inputs
PurchaseOrderID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- purchase order cost packet information
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
PurchaseOrderCostPacketsUpdate
Sample Request
{
"request": {
"PurchaseOrderID": "158520",
"PurchaseOrderCostPacketsUpdateJSON": {
"dsPurchaseOrderCostPacket": {
"dtPurchaseOrderCostPacket": [
{
"CostType": "Freight",
"CostBasis": "Fixed",
"BasisAmount": 0.0,
"FixedAmount": 56.18,
"SupplierID": "278200",
"AllocateBy": "Weight",
"ApplyPerReceiving": true,
"PrintOnForm": false,
"DispatchID": 0
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": “”
}
}
Purpose
Creates or updates purchase order cost packets
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderIDCostTypePurchaseOrderCostPacketsUpdateJSON
Optional Inputs
- N/A
Response
- ReturnCode
- MessageText
Notes
- Any fields not included in the
PurchaseOrderCostPacketsUpdateJSONassume the default values of the existing cost packet. - To create a new cost packet on a purchase order, in addition to the required inputs, the following fields must be included:
CostBasis,BasisAmountorFixedAmount. - When a cost packet is updated on a parent PO, the system reallocates the cost to the child purchase order(s).
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
PurchaseOrderDetailsUpdate
Sample Request
{
"request": {
"PurchaseOrderID": 158419,
"PurchaseOrderDetailsUpdateJSON": {
"dsPurchaseOrderDetail":{
"dtPurchaseOrderDetail":[{
“PurchaseOrderDetailSequence":1,
"ExpectedReceiptDate":"2019-01-30",
"ExpectedShipDate":"2019-01-31"
}]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates purchase order detail expected receipt dates and expected ship dates
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderIDPurchaseOrderDetailSequence
Optional Inputs
ExpectedReceiptDateExpectedShipDate
Response
- ReturnCode
MessageText
Notes
- When a purchase order detail Expected Ship Date or an Expected Receipt Date is updated, the purchase order header Expected Ship Date or Expected Receipt Date is recalculated
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v538
PurchaseOrderGet
Sample Request
{
"request": {
"PurchaseOrderID": "158511"
}
}
Sample Response
{
"response": {
"PurchaseOrderResponse": {
"dsPurchaseOrderResponse": {
"dtPurchaseOrderHeader": [
{
"PurchaseOrderID": 158419,
"AcknowledgeDate": null,
"IncomingPOAckPurpose": "",
"IncomingPOAckStatus": "",
"AcknowledgeTime": "",
"AllowChanges": true,
"AutoTransfer": false,
"Buyer1": "0901",
"Buyer2": "451-A",
"ConfirmedBy": "23274",
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-01-16",
"CreatedTime": "13:08:57",
"Currency": "USD",
"CustomerID": "HILLSIDELBR",
"AllowChangesUntilDate": "2019-02-10",
"AllowChangesUntilTime": "13:30",
"Dispatched": "",
"ExpectedReceiptDate": "2019-02-10",
"ExpectedShipDate": "2019-02-09",
"ExpectedReceiptTime": "09:35",
"FreightTerms": "FOB",
"OrderDate": "2019-01-16",
"OriginalSource": "PO Import",
"PaymentTermsCode": "1%10n30",
"PickUpID": "107311",
"POLabel": "Transit",
"ParentPOID": null,
"ParentPOFlag": "",
"POStatus": "Open",
"PurchaseType": "WH",
"Reference": "Hillcrest Apts",
"SendPOVia": "Normal",
"ShipFromSequence": 1,
"ShipToSequence": 1,
"ShipVia": "Pick up",
"SupplierID": "LMC",
"TrackingDate": "2019-01-19",
"TransferPO": false,
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-03",
"UpdateLead": false,
"UpdateTime": "20:42:03",
"PODescription": "New supplier inv",
"VerbalPO": "751073"
}
],
"dtPurchaseOrderDetail": [
{
"POID": 158419,
"Cost": 1.052,
"CreatedBy": "mwellensiek",
"CreatedDate": "2019-01-16",
"CreatedTime": "13:08:57",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"CostUOM": "EA",
"DisplaySequence": 1,
"ExpectedReceiptDate": "2019-02-10",
"ExpectedReceiptDateOverride": false,
"ExpectedShipDate": "2019-02-09",
"ExpectedShipDateOverride": false,
"GroupID": "",
"ItemCode": "d10",
"LandedCost": 1.052,
"OriginalItemCode": "",
"CostOverridden": false,
"DiscountOverridden": false,
"ItemDescription": "8D Bright Ring Shank",
"POStatus": "Open",
"ProposedSellPrice": 0,
"Quantity": 10,
"ProposedSellPriceUOM": "EA",
"PurchaseOrderDetailSequence": 1,
"ReceivingSet": "",
"SIZE": "2 1/2",
"TallyUOM": "",
"QuantityUOM": "EA",
"UpdateBy": "mwellensiek",
"UpdateDate": "2019-02-03",
"UpdateTime": "20:40:54",
"WOID": 0
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a specific purchase order, including header and detail information
Header
ContextIdBranchContext-Type= application/json
Required Inputs
PurchaseOrderID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- Purchase order header and detail information
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v539
PurchaseOrderHeaderUpdate
Sample Request
Sample request {
"request": {
"PurchaseOrderID":158419,
"PurchaseOrderHeaderUpdateJSON": {
"dsPurchaseOrderHeader":{
"dtPurchaseOrderHeader":[{
"ExpectedShipDate":"2019-01-30",
"ExpectedReceiptDate":"2019-01-31",
"ExpectedReceiptTime":"09:35",
"PODescription":"New supplier inv",
"Buyer1":"0901",
"Buyer2":"451-A",
"Reference":"Hillcrest Apts",
"VerbalPO":"751073",
"POLabel":"Transit",
"PickUpID":"107311",
"ShipVia":"Pick up",
"FreightTerms":"FOB",
"PaymentTermsCode":"1%10n30",
"AllowChanges":"Yes",
"AllowChangesUntilDate":"2019-01-29",
"AllowChangesUntilTime":"13:30",
"TrackingDate":"2019-01-19",
"SendPOVia":"Normal",
"UpdateLead":"No",
"ConfirmedBy":"23274"
}]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates purchase order header fields
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderID
Optional Inputs
ExpectedShipDateExpectedReceiptDateExpectedReceiptTimePODescriptionBuyer1Buyer2ReferenceVerbalPOPOLabelPickUpIDShipViaFreightTermsPaymentTermsCodeAllowChangesAllowChangesUntilDateAllowChangesUntilTimeTrackingDate,SendPOViaUpdateLeadConfirmedBy
Response
- ReturnCode
MessageText
Notes
- The related fields on the child purchase order(s) are updated when the following fields on the parent purchase order are changed:
PODescriptionVerbalPOReferenceBuyer1Buyer2ShipViaPaymentTermsCodeFreightTermsTrackingDate
- When the Expected Ship Date and Expected Receipt Dates are updated on the header, the purchase order detail sequences that do not have overridden Expected Ship Dates or Expected Receipt Dates are automatically updated.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v538
AgilityPublic/Reman Service
This AgilityPublic service contains methods related to reman work orders.
RemanHeaderCreate
Sample Request
{
"request": {
"dsInputRemanHeaderRequest": {
"dtInputRemanHeaderRequest": [
{
"BalancingUOM": "EA",
"TransactionDescription": "test",
"ExpectedDate": "2020-04-15",
"TransactionJob": "33",
"TransactionReference": "55",
"RemanType": "Prod",
"StartDate": "2020-03-25",
"SupplierID": 700,
"SupplierShipFromSequence": 11
}
]
}
}
}
Sample Response
{
"response": {
"NewOrderID": 96570,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
- All fields in
dtInputRemanHeaderRequest
Response
- ReturnCode
MessageTextNewOrderID
Notes
- This method creates only the Reman Order header record. Other methods in this service allow the creation or maintenance of the related inputs, operations and outputs
- If defined, an API Reman Created notification is generated
Relationships
ContextIdandBranchcome from Login- The
NewOrderIDreturned from this method is used as theOrderIDinput in all other Reman methods available in this service
Version Deployed
v546
RemanInputsCreate
Sample Request
{
"request": {
"OrderID": 96595,
"dsInputRemanInputRequest": {
"dtInputRemanInputRequest": [
{
"Sequence": 1,
"Key": "1",
"LinkID": "",
"ItemCode": "INPUT",
"ItemSize": "",
"ItemDescription": "",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"AffectUsage": false
}
],
"dtInputRemanInputDimReq": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 0,
"OrderQtyUOM": ""
}
],
"dtInputRemanInputComReq": [
{
"Sequence": 1,
"Location": "001-1",
"Lot": "",
"Tag": "",
"Content": "",
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 10,
"OrderQtyUOM": "GAL"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates one or more reman inputs on an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanInputRequest:Key,ItemCode,AffectUsagefor each record indtInputRemanInputRequest
Optional Inputs
- Remaining fields in
dtInputRemanInput
Response
- ReturnCode
MessageText
Notes
- Non-dimensional inputs can be created with 0
OrderQty - If the input is a dimension,
Thickness,Width,Length,OrderQty, andOrderQtyUOMare required inputs - To specify the locations to pull inventory from for the inputs, the
dtInputRemanInputComReqrequires theLocation/Lot/Tag/Contentfields depending on how the inventory is carried. Additionally, theOrderQtyandOrderQtyUOMare required - The system does not auto tag input items created per settings on the associated item record.
- Regardless of the reman type assigned to a reman work order, pass-thru items are not created when adding input items
- Auto messages are added to the reman input item based on existing rules for adding them in Agility.
- You can specify tally quantities for input items by assigning values to the
dtInputRemanInputDimReqordtInputRemanInputComReqfields. You must provide theSequencefor the associated reman input item as well as theThickness,WidthandLengthfor dimension items. - When commit records are specified for reman input items, dimension records are not processed with the exception of those created for tally calculator items.
- All dimension and commit records for a single reman input item must have the same
OrderQtyUOM.
Relationships
ContextIdandBranchcome from Login- When the input is a dimension, the main item must be represented in
dtInputRemanInputRequest. TheSequenceused indtInputRemanInputRequestmust also be used as theSequenceindtInputRemanInputDimReqto tie the item and its dimensions together - When the location for the inventory to be pulled from is supplied, the main item must be represented in
dtInputRemanInputRequest. TheSequenceused indtInputRemanInputRequestmust also be used as theSequenceindtInputRemanInputComReqto tie the item and its locations together. Additionally, if the input is a dimensions, theThickness,Width,Lengthmust be provided in thedtInputRemanInputComReqto tie the dimensions to the inventory locations - There can be a one to many relationship between
dtInputRemanInputRequestanddtInputRemanInputDimReq - There can be a one to many relationship between
dtInputRemanInputRequestanddtInputRemanInputComReq - There can be a one to many relationship between
dtInputRemanInputDimReqanddtInputRemanInputComReq RemanOrderGetcan be run to find the correctKeyvalues to use when the new inputs need to be linked to existing operations or outputs- RemanOrderGet can be run with the
OrderIDused in this method to verify the inputs were added as expected
Version Deployed
v546
RemanInputsDelete
Sample Request
{
"request": {
"OrderID": 96600,
"dsInputRemanInputRequest": {
"dtInputRemanInputRequest": [
{
"Sequence": 1,
"Key": "1",
"LinkID": "",
"ItemCode": "INPUT",
"ItemSize": "",
"ItemDescription": "",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"AffectUsage": false
}
],
"dtInputRemanInputDimReq": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 0,
"OrderQtyUOM": ""
}
],
"dtInputRemanInputComReq": [
{
"Sequence": 1,
"Location": "001-1",
"Lot": "",
"Tag": "",
"Content": "",
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 10,
"OrderQtyUOM": "GAL"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes one or more inputs from an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanInputRequest:Sequencefor each input to be deleted,AffectUsage
Optional Inputs
- Remaining fields in
dsInputRemanInputRequest
Response
- ReturnCode
MessageText
Notes
- Method deletes inputs for the Sequences specified including any related dimension or inventory locations associated. For this reason, values are not needed in
dtInputRemanInputDimReqordtInputRemanInputComReqwhen deleting
Relationships
ContextIdandBranchcome from LoginRemanOrderGetcan be run to find the correctSequencevalues to use when deleting inputs- RemanOrderGet can be run with the
OrderIDused in this method to verify the inputs were deleted as expected
Version Deployed
v546
RemanOperationsCreate
Sample Request
{
"request": {
"OrderID": 96595,
"dsInputRemanOperationRequest": {
"dtInputRemanOperationRequest": [
{
"Sequence": 1,
"Key": "1",
"CostType": "Operation",
"OperationDescription": "",
"OrderQty": 1,
"Cost": 5.25,
"PrintOnWO": false,
"SupplierID": 700,
"SupplierShipFromSequence": 11,
"ExpectedStartDate": "2020-04-03",
"ExpectedCompletionDate": "2020-04-04"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates one or more operations on an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanOperationRequest:Key,CostType,OrderQty,SupplierID,SupplierShipFromSequencefor each input,PrintOnWO
Optional Inputs
- Remaining fields in
dtInputRemanOperationRequest
Response
- ReturnCode
MessageText
Notes
CostTypeis the operation to be addedCostTypecan be added with 0OrderQty
Relationships
ContextIdcomes from LoginRemanOrderGetcan be run to find the correctKeyvalues to use when the operations need to be linked to existing inputs or outputs- RemanOrderGet can be run with the
OrderIDused in this method to verify the operations were added as expected
Version Deployed
v546
RemanOperationsDelete
Sample Request
{
"request": {
"OrderID": 96600,
"dsInputRemanOperationRequest": {
"dtInputRemanOperationRequest": [
{
"Sequence": 3,
"Key": "3",
"CostType": "Operation",
"OperationDescription": "",
"OrderQty": 1,
"Cost": 5.25,
"PrintOnWO": false,
"SupplierID": 700,
"SupplierShipFromSequence": 11,
"ExpectedStartDate": "2020-04-06",
"ExpectedCompletionDate": "2020-04-07"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes one or more operations from an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanOperationRequest:Sequencefor each operation to be deleted,PrintOnWO
Optional Inputs
- Remaining fields in
dsInputRemanOperationRequest
Response
- ReturnCode
MessageText
Notes
- N/A
Relationships
ContextIdandBranchcome from LoginRemanOrderGetcan be run to find the correctSequencevalues to use when deleting operations- RemanOrderGet can be run with the
OrderIDused in this method to verify the operations were deleted as expected
Version Deployed
v546
RemanOrderGet
Sample Request
{
"request": {
"OrderID": 96584
}
}
Sample Response
{
"response": {
"RemanHeaderResponse": {
"dsGetRemanHeaderResponse": {
"dtRemanHeaderResponse": [
{
"OrderID": 96584,
"BalancingUOM": "",
"TransactionDescription": "",
"ExpectedDate": "2020-04-02",
"TransactionJob": "123456",
"TransactionReference": "987654",
"RemanType": "Dry",
"StartDate": "2020-04-01",
"SupplierID": "020774",
"SupplierShipFromSequence": 1
}
]
}
},
"RemanInputResponse": {
"dsGetRemanInputResponse": {
"dtRemanInputResponse": [
{
"OrderID": 96584,
"Sequence": 1,
"Key": "1",
"LinkID": "",
"ItemCode": "INPUT",
"ItemSize": "INPUT SIZE",
"ItemDescription": "INPUT DESCRIPTION",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"AffectUsage": true
}
]
}
},
"RemanOperationResponse": {
"dsGetRemanOperationResponse": {
"dtRemanOperationResponse": [
{
"OrderID": 96584,
"Sequence": 1,
"Key": "1",
"CostType": "operation",
"OperationDescription": "REMAN OPERATION",
"OrderQty": 10,
"OrderQtyUOM": "EA",
"Cost": 0,
"CostUOM": "EA",
"PrintOnWO": true,
"SupplierID": "020774",
"SupplierShipFromSequence": 1,
"ExpectedStartDate": null,
"ExpectedCompletionDate": null
}
]
}
},
"RemanOutputResponse": {
"dsGetRemanOutputResponse": {
"dtRemanOutputResponse": [
{
"OrderID": 96584,
"Sequence": 1,
"Key": "1",
"LinkID": "",
"Cull": "",
"ItemCode": "OUTPUT",
"ItemSize": "OUTPUT SIZE",
"ItemDescription": "OUTPUT DESCRIPTION",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"ApplyNegativeUsage": false
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a specific reman order, including its inputs, operations and outputs
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextRemanHeaderDatasetHandlecontaining the specified reman including its assigned inputs, operations, and outputs
Notes
- This method does not return specified commit locations for inputs or specified storage locations for outputs
Relationships
ContextIdandBranchcome from Login- While this method can be called for any known, valid reman order id, often it is used in conjunction with the other Reman methods found in this service. For example, the response from a valid RemanHeaderCreate request is
OrderID. TheOrderIDcan be used as input to this method to fetch the reman order for review. Additionally, after using a method such as RemanInputsCreate to add inputs to the reman, theRemanOrderGetmethod can be used to verify the inputs added to an existing reman
Version Deployed
v546
RemanOutputsCreate
Sample Request
{
"request": {
"OrderID": 96595,
"dsInputRemanOutputRequest": {
"dtInputRemanOutputRequest": [
{
"Sequence": 1,
"Key": "1",
"LinkID": "",
"Cull": "",
"ItemCode": "OUTPUT",
"ItemSize": "",
"ItemDescription": "",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"ApplyNegativeUsage": true
}
],
"dtInputRemanOutputDimReq": [
{
"Sequence": 1,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 0,
"OrderQtyUOM": ""
}
],
"dtInputRemanOutputStorageReq": [
{
"Sequence": 1,
"Location": "WMS",
"Lot": "",
"Tag": "",
"Content": "",
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 10,
"OrderQtyUOM": "GAL"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates one or more reman outputs on an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanOutputRequest:ApplyNegativeUsage,ItemCode,OrderQtyUOM; following fields indtInputRemanOutputStorageReq:OrderQty,OrderQtyUOM,Location/Lot/Tag/Contentdepending on how the inventory is carried
Optional Inputs
- Remaining fields in
dsInputRemanOutputRequest
Response
- ReturnCode
MessageText
Notes
- Non-dimensional outputs can be created with 0
OrderQty Key, while not required, is used to tie the outputs to a specific input and/or operation- If the output is a dimension,
Thickness,Width,Length,OrderQtyandOrderQtyUOMare required inputs indtInputRemanOutputDimReq - Method requires the storage locations specified for each output. To specify,
dtInputRemanOutputStorageReqrequires theLocation,Lot,Tag,Contentfields depending on how the inventory is carried as well asOrderQtyandOrderQtyUOMare required - Auto messages are added to the reman output item based on existing rules for adding them in Agility
- All dimenstion and storage records for a single reman output item must have the same
OrderQtyUOM
Relationships
ContextIdandBranchcome from Login- When the output is a dimension, the main item must be represented in
dtInputRemanOutputRequest. TheSequenceused indtInputRemanOutputRequestmust also be used as theSequenceindtInputRemanOutputDimReqto tie the item and its dimensions together - When specifying the storage locations for the inventory, the main item must be represented in
dtInputRemanOutputRequest. TheSequenceused indtInputRemanOutputRequestmust also be used as theSequenceindtInputRemanOutputStorageReqto tie the item and its locations together. Additionally, if the input is a dimensions theSequence,Thickness,Width,Lengthmust be provided in thedtInputRemanOutputStorageReqto tie the dimensions to the storage locations - There can be a one to many relationship between
dtInputRemanOutputRequestanddtInputRemanOutputDimReq - There can be a one to many relationship between
dtInputRemanOutputRequestanddtInputRemanOutputStorageReq - There can be a one to many relationship between
dtInputRemanOutputDimReqanddtInputRemanOutputStorageReq - RemanOrderGet can be run to find the correct
Keyvalues to use when the outputs need to be linked to existing operations or inputs - RemanOrderGet can be run with the
OrderIDused in this method to verify the outputs were added as expected
Version Deployed
v546
RemanOutputsDelete
Sample Request
{
"request": {
"OrderID": 96600,
"dsInputRemanOutputRequest": {
"dtInputRemanOutputRequest": [
{
"Sequence": 4,
"Key": "4",
"LinkID": "",
"Cull": "",
"ItemCode": "OUTPUT",
"ItemSize": "",
"ItemDescription": "",
"OrderQty": 10,
"OrderQtyUOM": "GAL",
"ApplyNegativeUsage": true
}
],
"dtInputRemanOutputDimReq": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 0,
"OrderQtyUOM": ""
}
],
"dtInputRemanOutputStorageReq": [
{
"Sequence": 4,
"Location": "001-1",
"Lot": "",
"Tag": "",
"Content": "",
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 10,
"OrderQtyUOM": "GAL"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes one or more outputs from an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanOutputRequest:ApplyNegativeUsage,Sequencefor each output to be deleted
Optional Inputs
- Remaining fields in
dsInputRemanOutputRequest
Response
- ReturnCode
MessageText
Notes
dtInputRemanOutputDimReqanddtInputRemanOutputStorageReqare restricted for future use- Method deletes outputs for the Sequences specified including any related dimension or storage locations associated. For this reason, values are not needed in
dtInputRemanOutputDimReqordtInputRemanOutputStorageReqwhen deleting
Relationships
ContextIdandBranchcome from Login- RemanOrderGet can be run used to find the correct
Sequencevalues to use when deleting outputs - RemanOrderGet can be run with the
OrderIDused in this method to verify the outputs were deleted as expected
Version Deployed
v546
RemanSpecifyTagsToCommit
Sample Request
{
"request": {
"OrderID": 96589,
"dsInputRemanTagsToCommitRequest": {
"dtInputRemanTagsToCommitRequest": [
{
"Tag": "T0113446"
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Commits inventory tags to input items on reman work orders in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanTagsToCommitRequest:Tag
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
- When the specified tag is not for an existing input item, the item is added to the reman work order and the tag is committed
- When an item is added to a reman work order, any associated operations assigned to the item are also added
- When the specified tag is for an existing input item, the item quantity and tally is updated to reflect the additional inventory commit being made
Relationships
ContextIdandBranchcome from Login
Version Deployed
v546
RemanStorageReplace
Sample Request
{
"request": {
"OrderID": 96590,
"dsInputRemanOutputRequest": {
"dtInputRemanOutputRequest": [
{
"Sequence": 1,
"Key": "1",
"LinkID": "",
"Cull": "",
"ItemCode": "OUTPUT",
"ItemSize": "",
"ItemDescription": "",
"OrderQty": 1,
"OrderQtyUOM": "",
"ApplyNegativeUsage": true
}
],
"dtInputRemanOutputDimensionReq": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 0,
"OrderQtyUOM": ""
}
],
"dtInputRemanOutputStorageRequest": [
{
"Sequence": 1,
"Location": "WMS",
"Lot": "",
"Tag": "",
"Content": "",
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"OrderQty": 1,
"OrderQtyUOM": "GAL"
}
]
}
}
}
Sample Response
Sample response { "response": {
"ReturnCode": 0,
"MessageText": ""
}}
Purpose
Deletes one or more outputs from an existing, open reman order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID; following fields indsInputRemanOutputRequest:Sequence,Location/Lot/Tag/Content,OrderQty,OrderQtyUOMandApplyNegativeUsagefor each storage record needing to be updated
Optional Inputs
- Remaining fields in dsInputRemanOutputRequest
Response
- ReturnCode
MessageText
Notes
dtInputRemanOutputDimensionReqis restricted for future use- Method deletes all existing storage records associated with the Sequences entered and creates new storage records based on the incoming values
- Values are not needed in
dtInputRemanOutputRequestordtInputRemanOutputDimensionReqwhen deleting storage records - If the storage is for a dimension,
Thickness,Width,Length, as needed by item type, are required inputs indtInputRemanOutputStorageRequest - Method requires the storage locations specified for each output to have the
Location,Lot,Tag,Contentfields depending on how the inventory is carried - All replacement storage records for a single reman output item must have the same
OrderQtyUOM
Relationships
ContextIdandBranchcome from Login- RemanOrderGet can be run to find the correct output
Sequencevalues to use when replacing storage locations
Version Deployed
v546
AgilityPublic/Session Service
This AgilityPublic service contains methods related to the user’s session when logged in.
AgilityVersion
No Sample Request
Sample Response
{
"response": {
"AgilityVersion": "5.3.4",
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns the customer’s Agility version the web service is accessing
Header
Content-Type= application/json
Required Inputs
- N/A
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextAgilityVersion
Notes
- This method can be used to ensure the Agility version the customer’s environment is running against is compatible with the methods being used
Relationships
N/A
Version Deployed
v534
BranchList
No Sample Request
Sample Response
{
"response": {
"BranchListResponse": {
"dsBranchListResponse": {
"dtBranchListResponse": [{
"BranchID": "CORPORATE",
"CompanyName": "Corporate Branch"},
{"BranchID": "OMAHA",
"CompanyName": "Omaha Branch"}
]
}
},
"ReturnCode": 0,
"MessageText": ""
Purpose
Returns a list of branches the user has access to
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextBranchIDBranch
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
Login
Sample Request
{
"request": {
"LoginID": "username",
"Password": "password"
}
}
Sample Response
{
"response": {
"SessionContextId": "12345613a90e34-a6c-49ad-314-9f703ef86",
"InitialBranch": "CORPORATE",
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Logs the user into Agility and returns a context id
Header
Content-Type= application/json
Required Inputs
LoginIDPassword
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextSessionContextIdInitialBranch
Notes
- N/A
Relationships
ContextIDreturned is used as an input and sent in the header in most of the other methodsInitialBranchis the branch within which the context id is initially positioned and can be used as theBranchinput in the header in most of the other methods
Version Deployed
v534
Logout
No Sample Request
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Logs a user out of Agility and removes the context id
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- N/A
Optional Inputs
- N/A
Response
- ReturnCode
MessageText
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534
AgilityPublic/Session Service Restricted methods-DMSi use only
| Name | Purpose |
|---|---|
| EnvironmentInfo | Used to verify environmental information |
| ReceiveData | Used by specific external interfaces to send files to Agility for processing |
AgilityPublic/Shipments Service
This AgilityPublic service includes methods related to shipments.
PickFileCreate
Sample Request
{
"request": {
"ViewerName": "Pick File Viewer",
"AccessType": "All",
"AccessedBy": "",
"SaleType": "",
"Route": "",
"CustomerID": "",
"OrderID": "",
"Dispatched": "",
"Location": "",
"HandlingCode": "",
"ShipVia": "",
"CutOffDate": ""
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new pick file based on a saved picking viewer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ViewerNameAccessTypeAccessedBy
Optional Inputs
SaleTypeRouteCustomerIDOrderIDDispatchedLocationHandlingCodeShipViaCutOffDate
Response
- ReturnCode
MessageText
Notes
- Values provided as inputs override values saved in the viewer criteria and are used as the criteria.
- <none> is a valid value for
HandlingCodeand <all> is a valid value forSaleType,Route,Customer,TransactionID,Dispatched,Location,HandlingCodeandShipVia. Please see the Entering special character values such as < or > topic for more information - If a value is not sent for
CutOffDate, the current date is used - The following can contain a single value or a string separated by commas:
SaleType,Route,Dispatched,Location,HandlingCode,ShipVia - The Action Allocation ‘Create Picks – 2 step’ is not applied and Data Allocations do not apply.
- Pick Ticket and Pick Report Forms Assignments to print other forms, such as Reman Work Orders, are ignored.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
SaleTypecome fromGetSaleTypes - Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
TransactionIDcome from SalesOrderList
Version Deployed
v540
PickFileList
Sample Request
{
"request": {
"OrderID": 304533,
"ShipmentNumber": "",
"PickID": "",
"CustomerID": "",
"ShipToSequence": "",
"ExpectDateRangeStart": "",
"ExpectDateRangeEnd": "",
"RouteID": "",
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"PickFilesDisplayResponse": {
"dsPicksResponse": {
"dtPickResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 304533,
"PickIDList": "00069562",
"ShipmentNum": 1,
"CustomerID": "123161",
"ShipToSequence": 1,
"StopNum": 0,
"CreatedBy": "llattier",
"CreatedDate": "2019-04-11",
"CreatedTime": "11:43:10",
"ExpectedDate": "2019-04-12",
"PayTermsCode": "2%flat",
"RouteID": "FRI",
"SaleType": "WH",
"SOStatusFlag": "Partial",
"SOHdrType": "SO",
"ShipVia": "OUR TRUCK",
"TaxDescription": "NE5.5",
"TaxTotPercent": "5.5",
"PickTotal": 32.18,
"PickTaxAmount": 1.68,
"ShipToAddress1": "4321 78th Street",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Ralston",
"ShipToState": "NE",
"ShipToZip": "68127",
"ShipToCountry": "US",
"ShipToName": "DAA Hardware",
"ShipToMisc1": "",
"ShipToMisc2": "",
"ShipToMisc3": "",
"ShipToMisc4": "",
"ShipToMisc5": "",
"ShipToMisc6": "",
"ShipToMisc7": "",
"ShipToMisc8": "",
"ShipToMisc9": "",
"ShipToMisc10": "",
"ShipToMisc11": "",
"ShipToMisc12": "",
"ShipToMiscDate1": null,
"ShipToMiscDate2": null,
"ShipToPhone": "(402)-555-3333",
"ShipToShippingDate": "",
"ShipToTrackingNumber": "",
"PickCostTotal": 14.47,
"PickCostType": "Item default",
"TotalWeight": "",
"TotalLoad": "",
"CustomerPO": "",
"ContactName": "",
"ContactPhone": "",
"ContactEmail": "",
"PickRecordSequence": 1,
"WMSPickHeaderStatusCode": "",
"WMSPickHeaderStatusDescription": "",
"dtPickDetailResponse": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 304533,
"PickID": 69562,
"ShipmentNum": 1,
"DetailSequence": 1,
"ItemCode": "hammer",
"PickStatus": "Open",
"TotalOrderedQuantity": 1,
"OrderedQuantityUOM": "EA",
"TotalRequestedQuantity": 1,
"TotalAdjustedQuantity": 0,
"NetQuantity": 1,
"TotalPickedQuantity": 0,
"PickedQuantityUOM": "EA",
"AdjustmentType": "",
"Price": 12.5,
"PriceUOM": "EA",
"ExtendedPrice": 12.5,
"MSDS": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"ExtraDiscount1": 0,
"ExtraDiscount2": 0,
"ExtraDiscount3": 0,
"ExtWeight": 0,
"ExtLoad": 0,
"ExtCost": 0,
"ItemSize": "regular",
"ItemDescription": "",
"DispatchID": "",
"Picker": "",
"PickRecordSequence": 1
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 2,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns header and detail information for sales order pick files, associated with a customer, specific sales order, specific pick file id, route id or date range
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- Must also include one of the following:
OrderIDPickIDCustomerIDRouteIDExpectDateRangeStartExpectDateRangeEndOrderIDShipmentNumberPickIDShipToSequenceChunkStartPointerRecordFetchLimit
Optional Inputs
RouteID
Response
- ReturnCode
MessageText- list of pick files including their details
Notes
- Method can be requested for a specific customer, specific customer and ship-to, a specific sales order, a specific shipment for a specific sales order, a specific route or a specific date range.
This method allows a user to request a specific number of records. Please see the Data-Chunking topic for more information
ContextIdandBranchcome from LoginAlternate branches come from BranchList
Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList.Valid values for
ShipToSequencecome from CustomerShiptoList.Valid values for
OrderIDcome from SalesOrderListValid values for
OrderIDand relatedShipmentNumcome from ShipmentsList.Valid values for
PickIDcome from this method used in a circular way.There is a Parent/Child relationship between
dtPickResponseanddtPickDetailResponsethroughOrderID,PickIDandShipmentNum
Version Deployed
v540; WMSPickHeader fields added in v547
ShipmentInfoUpdate
Sample Request
{
"request": {
"OrderID": 283958,
"ShipmentInfoRequestJSON": {
"dsShipInfoRequest": {
"dtShipInfoRequest": [
{
"ShipmentNumber": 1,
"UpdateAllPickFiles": false,
"UpdateSalesOrder": true,
"RouteID": "SO Friday",
"StopNumber": 1,
"ShipDate": "2019-12-12",
"RequestedDeliveryDate": "2018-12-12"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates specific fields related to shipment information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDShipmentNumberUpdateAllPickFiles
Optional Inputs
UpdateSalesOrderRouteIDStopNumberShipDateRequestedDeliveryDate
Response
- ReturnCode
MessageText
Notes
- The options of
UpdateAllPickFilesandUpdateSalesOrderare used when the information being updated should apply to these records as well ShipmentNumbercan be specified as 0 to indicate the sales order header instead of a specific shipment
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDand/orShipmentNumbercome from ShipmentsList
Version Deployed
v534
ShipmentsList
Sample Request
{
"request": {
"dsShipmentDisplayRequest": {
"dtShipmentDisplayRequest": [
{
"OrderID": 283958,
"ShipmentNumber": 1,
"CustomerID": "12345",
"ShipToSequence": 1,
"ExpectDateRangeStart": "",
"ExpectDateRangeEnd": "",
"RouteID": "",
"StatusFlagList": "",
"ChunkStartPointer": 0,
"RecordFetchLimit": 0
}
]
}
}
}
Sample Response
{
"response": {
"ShipmentDisplayResponse": {
"dsShipmentDisplayResponse": {
"dtShipmentDisplayResponse": [
{
"BranchID": "OMAHABRANCH",
"OrderID": 283958,
"ShipmentNum": 1,
"CustomerID": "12345",
"ShipToSequence": 1,
"StopNum": 0,
"CreatedBy": "Llattier",
"CreatedDate": "2018-08-09",
"CreatedTime": "09:54:33",
"ExpectedDate": "2018-08-09",
"InvoiceDate": null,
"PayTermsCode": "Wimp1",
"RouteID": "4100",
"SaleType": "WH",
"ShipDate": "2018-08-09",
"StatusFlag": "Staged",
"ShipHdrType": "SO",
"ShipVia": "",
"TaxDescription": "",
"TaxTotPercent": "",
"ShipmentCharges": 0,
"ShipmentTotal": 25,
"ShipmentTaxAmount": 0,
"ShipmentAfterDeductFreightAmt": 0,
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "USA",
"ShipToName": "NO ADDRESS",
"ShipToMisc1": "",
"ShipToMisc2": "",
"ShipToMisc3": "",
"ShipToMisc4": "",
"ShipToMisc5": "",
"ShipToMisc6": "",
"ShipToMisc7": "",
"ShipToMisc8": "",
"ShipToMisc9": "",
"ShipToMisc10": "",
"ShipToMisc11": "",
"ShipToMisc12": "",
"ShipToMiscDate1": null,
"ShipToMiscDate2": null,
"ShipToPhone": "(402)-555-1111",
"ShipToShippingDate": "",
"ShipToTrackingNumber": "",
"ShipmentCostTotal": 0.03,
"ShipmentCostType": "Average",
"TotalWeight": 70,
"TotalLoad": 0,
"CustomerPO": "",
"ContactName": "",
"ContactPhone": "",
"ContactEmail": "",
"dtShipmentDisplayResponseDetail": [
{
"BranchID": "WESTONBRANCH",
"OrderID": 283958,
"ShipmentNum": 1,
"Sequence": 1,
"ItemCode": "hammer",
"TotalOrderedQuantity": 10,
"OrderedQuantityUOM": "EA",
"TotalStagedQuantity": 10,
"StagedQuantityUOM": "EA",
"Price": 2.5,
"PriceUOM": "EA",
"ExtendedPrice": 25,
"MSDS": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"ExtraDiscount1": 0,
"ExtraDiscount2": 0,
"ExtraDiscount3": 0,
"ExtWeight": 70,
"ExtLoad": 0,
"ExtCost": 0.03,
"ItemSize": "",
"ItemDescription": "DESCRIPTION"
}
]
}
]
}
},
"MoreResultsAvailable": "false",
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of shipments, including details, associated with a customer or specific sales order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDOrderIDRouteID, orExpectDateRangeStartandExpectDateRangeEnd
Optional Inputs
StatusFlagListShipmentNumberShipToSequenceRecordFetchLimitChunkStartPointer
Response
- ReturnCode
MessageText- list of open shipments
Notes
- Method can be requested for a specific customer, specific customer and ship-to or for a specific sales order.
- If searching by
CustomerID, entering 0 for theShipToSequencereturns information at the sold-to level StatusFlagListcan be entered in either of the following formats:- Loaded or L
- Staged or S
- En Route or E
- Delivered or D
- Invoiced or I
- This method allows a user to request a specific number of records. Please see the Data-Chunking topic for more information
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- There is a Parent/Child relationship between
dtShipmentanddtShipmentDetailthroughOrderIDandShipmentNumber
Version Deployed
v534
Agility API Technical Information
The Agility API is deployed using REST supporting .NET and Progress clients. This API utilizes RPC with JSON. It uses a state-free session model architecturally, but functionally requires that the client logs in to get a context ID and Branch before business requests are made.
The parameter signatures for the methods that can be requested from the web service are simple data types, with the exception of data structured in records. Groups of records are passed as a complex type that can be translated from/to a dataset.
Multiple requests can be made using one context ID once the client is logged in, but all calls made with a context ID must be synchronous. The client program must manage the context use and should not call another method with a particular context ID until a previous method using that context ID has completed. This includes handling end users that might decide to click on one thing, immediately change their mind and click on another thing in a given user interface.
The login request returns the client’s initial Branch ID as well as the context ID when login has been successful. Branch in Agility means a defined portion of the business that Agility serves. For most Agility systems, branch refers to physical locations, like the Omaha branch and the Milwaukee branch. Some Agility systems are set up such that branches represent something other than location, like functional departments. While some Agility systems have many branches and others have as few as one, there is always at least one branch in Agility, and all Agility processes are performed from the perspective of a particular branch. The context ID is what validates the user and allows Agility to ensure that the requests are processed in the branch that is correct for the user’s session, which is why it is required for every request. The use of that context ID allows the client to send a request to change to a different branch if the system manager of the Agility system that is serving the requests has configured the User ID to have access to multiple branches.
Note that if a particular context ID is not used to run a program for a certain amount of time, that context ID times out. When the time out occurs, the next request of the server from that client using that context id is rejected. The default time out setting is 4 hours, but the system manager of the Agility system serving the requests can change the value, up to a maximum of 24 hours.
The User ID and Password that are required by the login request are maintained and supplied by the system manager of the Agility system serving the requests. This is not a hard-coded User ID and Password that are specific to a particular usage of the Agility API. In other words there is no DMSi-mandated User ID designated for a specific product that interfaces with Agility. Each DMSi customer is allowed to set their own level of security for all User IDs, including the User IDs they create to allow Agility access for 3rd party products.
Agility API and Service
This Agility API and Agility service contains multiple methods used to create, update, delete, and view records.
AccountsPayableCreateInvoice
Purpose
Creates an A/P invoice
ChangeBranch
Sample Request
{
"request": {
"ChangeToBranchID": "OMAHABRANCH"
}
}
Sample Response
{
"response": {
"dsChangeBranchResponse": {
"dsChangeBranchResponse": {
"dtChangeBranchResponse": [
{
"CurrentBranchID": "OMAHABRANCH",
"CurrentCompanyName": "DMSi Omaha"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Changes the branch associated with a specified context id
Header
ContextIdContent-Type= application/json
Required Inputs
ChangeToBranchID
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsChangeBranchResponse
Notes
- The initial branch returned with the Login method indicates which branch that context is originally positioned in
- Once changed, the branch associated with the context is changed and all subsequent calls using that context are positioned in the new branch
Relationships
ContextIdcomes from Login- Valid values for
ChangeToBranchIDcome from BranchList
Version Deployed
Before v534
CustomerBranchShiptoGet
Purpose
Gets customer branch ship-to information
CustomerBranchShiptoUpdate
Purpose
Updates customer branch ship-to information
GetAgilityVersion
Purpose
Returns the customer’s Agility version the web service is accessing
GetBranchList
Purpose
Returns a list of branches the user has access to
GetRemanOrder
Purpose
Returns a specific reman order, including its inputs, operations and outputs
InventoryGetTagInfo
Sample Request
Purpose
Returns the information related to a specified tag or tags
InventoryGetTagValues
Purpose
Returns the next available tag sequences
InventoryPrintTags
Purpose
Prints inventory tags to a specified printer
Login
Purpose
Logs the user into Agility and returns a context id
Logout
Purpose
Logs a user out of Agility and removes the context id
MessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 1709,
"ShipmentNum": "1",
"TranType": "SO",
"TranSeq": "2",
"MessageText": "Handle with care",
"MessageType": "Detail",
"PrintOnForms": "true",
"SendToWMS": "false"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates transaction messages in the branch the user is logged into
Header
ContextIdContent-Type= application/json
Required Inputs
TranIDTranTypeMessageTextMessageTypePrintOnFormsShipmentNum(for sales orders)TranSeq(for detail transaction messages)
Optional Inputs
SendToWMS
Response
- ReturnCode
MessageText
Notes
- Valid values for
TranTypeare CM, Credit memo, SR, Supplier Return, DP, Dispatch, PO, Purchase Order, Quote, RM, Reman hader, RM-input, Reman input, RM-output, Reman output RM-operation, Reman operation, SO, Sales Order, SPO, Suggested PO, WO, and Work Order MessageTextcan send a maximum of 1000 characters- Valid values for
MessageTypeare H, Header, D, Detail, F, and Footer - When
PrintOnFormsis set to true, all eligible forms for theTranTypespecified are set to print the new message
Relationships
- The ChangeBranch method allows users to create messages in other branches
Version Deployed
Before v534
RemanCreateHeader
Sample Request
Purpose
Creates a new reman order
Version Deployed
Before v534
RemanCreateInputs
Purpose
Creates one or more reman inputs on an existing, open reman order
RemanCreateOperations
Purpose
Creates one or more operations on an existing, open reman order
RemanCreateOutputs
Purpose
Creates one or more reman outputs on an existing, open reman order
RemanDeleteInputs
Purpose
Deletes one or more inputs from an existing, open reman order
RemanDeleteOperations
Purpose
Deletes one or more operations from an existing, open reman order
RemanDeleteOutputs
Purpose
Deletes one or more outputs from an existing, open reman order
RemanReplaceStorage
Purpose
Deletes one or more outputs from an existing, open reman order
RemanSpecifyTagsToCommit
Purpose
Commits inventory tags to input items on reman work orders in the branch the user is logged into
SignatureCreate
Sample Request
{
"request": {
"SignatureCreateJSON": {
"dsSignatureCreate": {
"dtSignatureCreate": [
{
"TranType": "SO",
"TranID": 17709,
"ShipmentNum": "1",
"PODSignature": "True",
"ImageData": "",
"ImageInfo": "John Smith"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates signatures for sales order shipments and credit memo transactions in the branch the user is logged into
Header
ContextIdContent-Type= application/json
Required Inputs
- Following fields in
SignatureCreateJSON:TranIDTranTypeImageData(signature image converted to Base64)PODSignatureShipmentNum(for sales orders)
Optional Inputs
ImageInfo(typically, text representation of signature)
Response
- ReturnCode
MessageText
Notes
- Valid values for
TranTypeare CM, Credit Memo, SO, and Sales Order ImageDatais the image of the signature converted to Base64
Relationships
- The ChangeBranch method allows users to create signatures in other branches
Version Deployed
Before v534
