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 Runscope testing tool.
- Runscope allows you to create API tests for any of the available REST methods in this document and can be accessed at runscope.com
- There are many other tools available for testing REST methods. DMSi does not mandate the use of Runscope, but does employ it as our tool of choice.
General Information
Field Data Types
Character
- In some methods, free-form text fields that do not have their values validated against data in Agility or have associated business rules may be cleared with the use of the double quote (
"") or null (null) value as the input. - The context of the field, as well as surrounding business rules associated with each method, dictate whether values will be cleared when either of these values is sent. It is strongly suggested testing be done against a non-production environment prior to using this feature to avoid unexpected results.
- Please be sure to understand the context and business rules associated with each method, especially those which create or update records.
Date
- Valid format = yyyy-mm-dd
- When passing in a blank date, the valid format is
null- Example:
"DiscountDate": null
- Example:
Date/Time
- Valid format = yyyy-mm-ddThh:mm:ss
- Example:
"FetchOnlyChangedSince": "2024-01-01T16:54:32"
- Example:
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
trueorfalseis valid
Time
- The value must be military time between 00:00 and 23:59
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.
All API payloads are delivered encrypted while in transit.
- All API calls are made to an https: address. Any calls to an http address are rejected.
- We respond to the API call as we do any other authorized user request for data using Agility programs and for sensitive data that is stored as encrypted. W decrypt it for delivery in the API payload.
- The API payload is delivered by encrypting the payload in its entirety via TLS and it remains encrypted until it is received by the response recipient.
- Delivering the information with a decrypt key is not necessary as the information was encrypted in transit and is no longer encrypted once received. The response recipient is now in possession can encrypt if necessary.
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,
"CostType": "PO"
}
],
"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
InvoiceIDInvoiceDateSupplierIDSupplierRemitToSequence;dtAPExpenseAccountsand/ordtAPInvoiceOrders(when applicable)
Optional Inputs
PostingPeriodPostingYear
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
- To use the discountable field, ‘Apply ADF in A/P’ must be set on the associated payment terms code. The voucher ADF amount will be the difference between the specified AP clearing amount (
dtInvoiceOrdersRequestamount) and the discountable amount. - 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 - When the
PostingPeriodandPostingYeartags are not included in the request, has a value of 0, or value of ‘null’, the system assigns the default posting period and year to the invoice. If the A/P Parameters flag ‘Validate invoice date with period entered’ is set, the system assigns a posting period and year to the invoice that matches the month and year of the invoice date entered. - When creating expense invoices, the
GLExpAccounttag cannot contain an A/P clearing account number. - When the
CostTypevalue is not included with the request, has a value of blank, or value of ‘null’, the system uses the default cost type assigned to the supplier record.
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",
"InvoiceBranchID": "CENTRALBRNCH",
"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
CashReceiptsACHPayment
Sample Request
{
"request": {
"CashReceiptsPaymentJSON": {
"dsCashReceiptsPaymentRequest": {
"dtCashReceiptsPaymentRequest": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"BilltoSequence": 1,
"BankGUID": "1013f4e-2f02-128b-6614-aabd68261354",
"AmountTendered": 100,
"PaymentDate": null
}
]
}
}
}
}
Sample Response
{
"response": {
"CashReceiptsPaymentJSONResponse": {
"dsARInvoiceResponse": {
"dtARInvoiceResponse": [
{
"InvoiceNumber": "CA-000001169",
"AmountTendered": 100,
"PaymentID": "03042022009608"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates ACH cash on account using the bank specified
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBilltoSequenceBankGUIDAmountTendered
Optional Inputs
PaymentDate
Response
- ReturnCode
MessageText- Cash on account transaction information
Notes
- The ‘Enter Payment via CashReceiptsPayment API’ action allocation must be granted to use this request.
- Data allocations must be granted for the customer specified.
- Whether a customer bill-to or ship-to sequence is required is determined by the ‘Cash and finance charge level’ set in AR Parameters. If set to bill-to, you can use a bill-to, ship-to, or a valid combination of both. If set to ship-to, a ship-to sequence must be provided, and any provided bill-to sequence will be ignored.
- The
BankGUIDinput is a system-assigned value that uniquely identifies the Customer Bank record. This is not the bank account. - When AR Parameters ‘Cash and finance charge level’ is set to “Ship-to”, the
BankGUIDvalue is validated against all three levels of Customer Bank records (“Ship-to”, “Bill-to” or “Customer”) based on the ship-to sequence specified. - When AR Parameters ‘Cash and finance charge level’ is set to “Bill-to”, any ship-to specified must be valid for the bill-to sequence specified. The
BankGUIDvalue is validated against all three levels of Customer Bank records based on the bill-to and/or ship-to sequence specified. PaymentDatedefaults to the current day if no date is provided.
Relationships
ContextIdandBranchcome from LoginBankGUIDcomes from CustomerACHBankList
Version Deployed
v555
CashReceiptsCCManualPayment
Sample Request
{
"request": {
"CashReceiptsPaymentJSON": {
"dsCashReceiptsPaymentRequest": {
"dtCashReceiptsPaymentRequest": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"BilltoSequence": 1,
"ProcessorTransactionID": "133982036",
"PaymentDate": null
}
]
}
}
}
}
Sample Response
{
"response": {
"CashReceiptsPaymentJSONResponse": {
"dsARInvoiceResponse": {
"dtARInvoiceResponse": [
{
"InvoiceNumber": "CA-000001169",
"AmountTendered": 212,
"ApprovedAmount": 212,
"PaymentID": "133982036"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates cash on a customer account using the ID from a previously processed transaction.
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBilltoSequenceProcessorTransactionID
Optional Inputs
PaymentDate
Response
- ReturnCode
MessageText- Cash on account transaction information
Notes
- Access to the Credit Card Interface must be granted to use this request.
- The ‘Enter Payment via CashReceiptsPayment API’ action allocation must be granted to use this request.
- Data allocations must be granted for the customer specified.
- Whether a customer bill-to or ship-to sequence is required is determined by the ‘Cash and finance charge level’ set in AR Parameters. If set to bill-to, you can use a bill-to, ship-to, or a valid combination of both. If set to ship-to, a ship-to sequence must be provided, and any provided bill-to sequence will be ignored.
- This request is used to record transactions in Agility that have taken place in eCommerce platforms. Use the TransactionID provided by WorldPay on the original transaction as the
ProcessorTransactionIDwhen sending the request to Agility. PaymentDatedefaults to the current day if no date is provided.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555
CashReceiptsCCTokenPayment
Sample Request
{
"request": {
"CashReceiptsPaymentJSON": {
"dsCashReceiptsPaymentRequest": {
"dtCashReceiptsPaymentRequest": [
{
"CustomerID": "SH001",
"ShiptoSequence": 1,
"BilltoSequence": 1,
"PaymentAccountID": "D91A5-4EF3-9968-3E35F0F562A8",
"AllowTokenDelete": false,
"AmountTendered": 100,
"PaymentDate": null,
"Surcharge": 3,
"SurchargeBasis": "Percent",
"UseAgilitySurcharge": false
}
]
}
}
}
}
Sample Response
{
"response": {
"CashReceiptsPaymentJSONResponse": {
"dsARInvoiceResponse": {
"dtARInvoiceResponse": [
{
"InvoiceNumber": "CA-000000002",
"AmountTendered": 100,
"Surcharge": 3,
"ApprovedAmount": 103,
"PaymentID": "148473539",
"dtARReceiptResponse": [
{
"MerchantName": "Nebraska Pro Dealer",
"MerchantAddress1": "1460 35th Ave",
"MerchantAddress2": "",
"MerchantCity": "Columbus",
"MerchantState": "NE",
"MerchantZIP": "68601",
"TransactionAmount": 100,
"TransactionDate": "2022-05-13",
"AccountNumber": "xxxx-xxxx-xxxx-5550",
"AuthorizationCode": "148473539",
"ApplicationID": "961",
"SurchargeAmount": 3,
"SurchargeDescriptor": "Surcharge",
"CardNetworkName": "Visa",
"ApplicationLabel": "Agility",
"TerminalID": "0001",
"CardholderName": "Sunset Hills",
"SalesTaxAmount": 0,
"TransactionType": "CreditCardSale",
"EntryMode": "Keyed",
"ApprovalNumber": "000016",
"HostResponse": "000/AP"
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates cash on a customer account using a saved credit card token
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBilltoSequencePaymentAccountIDAmountTendered
Optional Inputs
PaymentDateAllowTokenDateSurchargeSurchargeBasisUseAgilitySurcharge
Response
- ReturnCode
MessageText- Cash on account transaction information
Notes
- Access to the Credit Card Interface must be granted to use this request.
- The ‘Enter Payment via CashReceiptsPayment API’ action allocation must be granted to use this request.
- Data allocations must be granted for the customer specified.
- Whether a customer bill-to or ship-to sequence is required is determined by the ‘Cash and finance charge level’ set in AR Parameters. If set to bill-to, you can use a bill-to, ship-to, or a valid combination of both. If set to ship-to, a ship-to sequence must be provided, and any provided bill-to sequence will be ignored.
- This request is processed immediately in Agility using a
PaymentAccountID. - If the
PaymentAccountIDis not already in the customer’s saved credit cards list, theAllowDeleteTokenvalue must be set to true. Deleted tokens cannot be reused in subsequent requests. AllowTokenDeletedefaults to false.PaymentDatedefaults to the current day if no date is provided.- Detailed information about this payment is written to A/R remarks (ARREM).
- If
UseAgilitySurchargeis true,SurchargeandSurchargeBasisare ignored. - If
UseAgilitySurchargeis false, thesurchargeis calculated based on the values inSurchargeandSurchargeBasis.Surchargediscounts set at the bill-to or ship-to level are ignored. - If a
surchargeis not defined on the payment method or the bill-to/ship-to customer is set to ‘Do not calculate’, you cannot add asurchargevia theSurchargeandSurchargeBasisfields. - Information intended for receipt creation is returned on both approved and declined transactions
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555; surcharge fields added in v556
CreditStatusUpdate
Sample Request
{
"request": {
"SalesOrderID": 1000346179,
"ShipmentNum": 0,
"CreditStatusUpdateJSON": {
"dsCreditStatusUpdateRequest": {
"dtCreditStatusUpdateRequest": [{
"CreditStatus": "Pending",
"PendingNote": "Awaiting Phone Call"
}]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Change the credit hold status of an existing Sales Order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
BranchSalesOrderIDShipmentNumCreditStatus
Optional Inputs
PendingNote
Response
Notes
Relationships
- Valid Values for
CreditStatusare Hold, Pending, Approved
Version Deployed
v601
CustomerACHBankList
Sample Request
{
"request": {
"CustomerACHBankListJSON": {
"dsCustomerRequest": {
"dtCustomerRequest": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"BilltoSequence": 0
}
]
}
}
}
}
Sample Response
{
"response": {
"CustomerACHBankListJSONResponse": {
"dsACHBankAccountResponse": {
"dtACHBankAccountResponse": [
{
"CustomerID": "ATHOME",
"CustomerType": "Ship-to",
"ShiptoBilltoSequence": 1,
"BankName": "SHIPTO 1-1",
"BankAcctName": "Ship-to 1 account name",
"TruncatedAccountNumber": "Acct ending 0123",
"BankGUID": "1026a-da9c-8214-8e3fd0ce006b",
"AccountType": "Savings",
"DefaultAccountForCashApp": false
},
{
"CustomerID": "BUIL103",
"CustomerType": "Ship-to",
"ShiptoBilltoSequence": 1,
"BankName": "SHIPTO 1-2",
"BankAcctName": "",
"TruncatedAccountNumber": "Acct ending 7439",
"BankGUID": "1031351385-9014-c15f98655c8b",
"AccountType": "Checking",
"DefaultAccountForCashApp": false
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of approved customer bank records for a specific customer ship-to or bill-to
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceBilltoSequence
Optional Inputs
N/A
Response
- ReturnCode
MessageText- Customer bank information
Notes
- You must specify either a bill-to or ship-to sequence. If a bill-to is not provided, the bill-to assigned to the ship-to sequence is used.
- User must have data allocations granted for the customer specified.
- The
BankGUIDinput is a system-assigned value that uniquely identifies the Customer Bank record. This is not the bank account. - Only banks set to approved for ACH processing display.
- When a ship-to sequence is specified, the system uses the ship-to bank if it exists. If it does not exist, the bill-to bank is used. If a bill-to bank does not exist, the customer bank is used.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v556
CustomerOpenActivity
Sample Request
{
"request": {
"CustomerID": "IDEAL",
"ShiptoSequence": 1
}
}
Sample Response
{
"response": {
"OrdersResponse": {
"dsOrdersResponse": {
"dtOrderResponse": [
{
"BranchID": "1MELISSA",
"OrderID": 2238,
"CustomerID": "IDEAL",
"ShipToSequence": 1,
"OrderedBy": "",
"OrderDate": "2021-11-11",
"ExpectedDate": "2021-11-11",
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "FedEx",
"FreightTerms": "",
"PayTermsCode": "NET30",
"OrderSubtotal": 20.02,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "AK",
"OrderTaxAmount": 0,
"OrderTotal": 20.02,
"DiscountAmount": 0,
"AfterDeductFreightAmt": 0,
"ShipToName": "Ideal Building Supply",
"ShipToAddress1": "3333 R Road",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Cook",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68130",
"ShipToPhone": "(402)-440-6890",
"BillToName": "Ideal Building Supply",
"BillToAddress1": "3333 R Road",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "Cook",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68130",
"BillToPhone": "(402)-440-6890",
"SalesAgentID1": "AGENT1",
"SalesAgentName1": "Sales Agent 1",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2021-11-11",
"UpdateTime": "12:46:11",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": false,
"CostTotal": 22,
"CostType": "Item default",
"TotalWeight": 2,
"TotalLoad": 2,
"dtOrderDetailResponse": [
{
"BranchID": "1MELISSA",
"OrderID": 2238,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "SO",
"ItemCode": "PI-BLANK-A100",
"ItemSize": "50ct",
"ItemDescription": "Common Nails",
"TotalOrderedQuantity": 2,
"QuantityUOM": "EA",
"GrossPrice": 10.01,
"NetPrice": 10.01,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 20.02,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 2,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "000001",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": 21.9994,
"ExtWeight": 2,
"ExtLoad": 2,
"ExpectedDate": "2021-11-11",
"ItemXrefUsedToOrder": "",
"RelatedQuoteBranchID": "CENTRALBRNCH",
"RelatedQuoteID": 300160114,
"RelatedQuoteExternalSource": "",
"RelatedQuoteExternalProjectID": "GRIDS-ABC"
}
]
}
]
}
},
"QuotesResponse": {
"dsQuotesResponse": {
"dtQuoteResponse": [
{
"BranchID": "1MELISSA",
"QuoteID": 2239,
"HeaderGUID": "102944-eb05-2ca1-8a14-0fea006d75a8",
"QuoteType": "",
"CustomerID": "IDEAL",
"ShipToSequence": 1,
"QuotedBy": "mwellensiek",
"QuotedFor": "",
"QuoteDate": "2021-11-11",
"ActivationDate": "2021-11-11",
"ClosedDate": "2022-03-11",
"QuoteProcessStatus": "Open",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"ShipVia": "FedEx",
"FreightTerms": "",
"PayTermsCode": "NET30",
"OrderSubtotal": 20.02,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "AK",
"OrderTaxAmount": 0,
"OrderTotal": 20.02,
"DiscountAmount": 0,
"AfterDeductFreightAmt": 0,
"ShipToName": "Ideal Building Supply",
"ShipToAddress1": "3333 R Road",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Cook",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68130",
"ShipToPhone": "(402)-440-6890",
"BillToName": "Ideal Building Supply",
"BillToAddress1": "3333 R Road",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "Cook",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68130",
"BillToPhone": "(402)-440-6890",
"SalesAgentID1": "AGENT1",
"SalesAgentName1": "Sales Agent 1",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"ExpectedDate": "2021-11-11",
"dtQuoteDetailResponse": [
{
"BranchID": "1MELISSA",
"QuoteID": 2239,
"Sequence": 1,
"DisplaySequence": 1,
"ItemCode": "PI-BLANK-A100",
"ItemSize": "50ct",
"ItemDescription": "Common Nails",
"DetailProcessStatus": "Open",
"TotalOrderedQuantity": 2,
"QuantityUOM": "EA",
"GrossPrice": 10.01,
"NetPrice": 10.01,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": 20.02,
"WOPhrase": "",
"DetailGroupID": "",
"TotalReleasedQuantity": 0,
"TotalRemainingQuantity": 9
}
]
}
]
}
},
"CreditMemosResponse": {
"dsCreditMemosResponse": {
"dtCreditMemoResponse": [
{
"BranchID": "1MELISSA",
"OrderID": 2237,
"CustomerID": "IDEAL",
"ShipToSequence": 1,
"OrderedBy": "Melissa",
"OrderDate": "2021-11-11",
"ExpectedDate": null,
"OrderStatus": "Open",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"ApprovalStatus": "Hold",
"SaleType": "WH",
"SaleTypeDescription": "Warehouse",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "FedEx",
"FreightTerms": "",
"PayTermsCode": "NET30",
"OrderSubtotal": -10.01,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "AK",
"OrderTaxAmount": 0,
"OrderTotal": -10.01,
"DiscountAmount": 0,
"AfterDeductFreightAmt": 0,
"ShipToName": "Ideal Building Supply",
"ShipToAddress1": "3333 R Road",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Cook",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68130",
"ShipToPhone": "(402)-440-6890",
"BillToName": "Ideal Building Supply",
"BillToAddress1": "3333 R Road",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "Cook",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68130",
"BillToPhone": "(402)-440-6890",
"SalesAgentID1": "AGENT1",
"SalesAgentName1": "Sales Agent 1",
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2021-11-11",
"UpdateTime": "12:45:13",
"ContactEmail": "",
"ContactName": "",
"ContactPhone": "",
"ShipComplete": false,
"CostTotal": -11,
"CostType": "Item default",
"TotalWeight": 1,
"TotalLoad": 1,
"StatusType": "RMA",
"dtCreditMemoDetailResponse": [
{
"BranchID": "1MELISSA",
"OrderID": 2237,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "CM",
"ItemCode": "PI-BLANK-A100",
"ItemSize": "50ct",
"ItemDescription": "Common Nails",
"TotalOrderedQuantity": -1,
"QuantityUOM": "EA",
"GrossPrice": 10.01,
"NetPrice": 10.01,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": -10.01,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": -10.9997,
"ExtWeight": 1,
"ExtLoad": 1
}
]
}
]
}
},
"BalanceResponse": {
"dsCustBalanceResponse": {
"dtBalanceHeaderResponse": [
{
"CustomerID": "IDEAL",
"BranchID": "1MELISSA",
"ProcessDate": "2021-11-11",
"CustomerName": "Ideal Building Supply",
"AccountBalance": 20.02,
"FutureBalance": 0,
"CurrentBalance": 20.02,
"PastDueBalance1": 0,
"PastDueBalance2": 0,
"PastDueBalance3": 0,
"PastDueBalance4": 0,
"FinanceChargeTotal": 0,
"PaymentOnAcctTotal": 0,
"DepositOnAcctTotal": 0,
"OnHoldTotal": 0,
"TermsDiscountTotal": 0,
"LastPaymentDate": null,
"LastPaymentAmount": 0,
"PastDueBalance1Label": "31-60 Days",
"PastDueBalance2Label": "61-90 Days",
"PastDueBalance3Label": "91-120 Days",
"PastDueBalance4Label": "Over 120 Days",
"dtBalanceDetailResponse": [
{
"CustomerID": "IDEAL",
"BranchID": "1MELISSA",
"ProcessDate": "2021-11-11",
"InvoiceNumber": "MSW0000002236-001",
"InvoiceNumberSequence": 0,
"TransactionID": 2236,
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"ShipToSequence": 1,
"BillToSequence": 1,
"CustomerPO": "",
"InvoiceOnHold": false,
"ShipDate": "2021-11-11",
"InvoiceDate": "2021-11-11",
"InvoiceDueDate": "2021-12-11",
"TermsCode": "NET30",
"TermsDescription": "Net 30",
"TermsDiscountDate": null,
"TermsDiscountAmount": 0,
"InvoiceSubtotal": 20.02,
"InvoiceChargesAmount": 0,
"InvoiceTaxAmount": 0,
"InvoiceTotal": 20.02,
"InvoicePaymentAdjustAmount": 0,
"InvoiceBalance": 20.02,
"TransactionReference": "",
"TransactionJob": "",
"PaymentId": "",
"CMOrigInvoiceNumber": "",
"ShipToName": "Ideal Building Supply",
"ShipToAddress1": "3333 R Road",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Cook",
"ShipToState": "NE",
"ShipToZip": "68130",
"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, approval status added to response in v554; DetailGroupID, TotalReleaseQuantity, and TotalRemainingQuantity fields added to the response in v609; RelatedQuoteID, RelatedQuoteExternalSource, and RelatedExternalProjectID fields added to the response in v610
InvoicePayment
Sample Request
{
"request": {
"InvoicePaymentJSON": {
"dsInvoicePaymentRequest": {
"dtCustomerRequest": [
{
"CustomerID": "ATHOME",
"PaymentDate": null,
"dtInvoiceRequest": [
{
"BranchID": "CENTRALBRNCH",
"InvoiceNumber": "CNTL0302283-001",
"InstallmentSequence": 1,
"PaymentAmount": 280,
"DiscountAmount": 16.5,
"Remark": "A/R Remark",
"Reason Code": "A/R Reason Code"
},
{
"BranchID": "EASTMOND",
"InvoiceNumber": "EAST3100155-001",
"InstallmentSequence": 1,
"PaymentAmount": 150,
"DiscountAmount": 0,
"Remark": "A/R Remark",
"Reason Code": "A/R Reason Code"
}
],
"dtPaymentRequest": [
{
"BranchID": "CENTRALBRNCH",
"InvoiceNumber": "CNTL0352345-001",
"PaymentAmount": 110,
"Remark": "A/R Remark",
"Reason Code": "A/R Reason Code"
},
{
"BranchID": "CENTRALBRNCH",
"InvoiceNumber": "CA-000000012",
"PaymentAmount": 320,
"Remark": "A/R Remark",
"Reason Code": "A/R Reason Code"
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"InvoicePaymentJSONResponse": {
"dsAROpenResponse": {
"dtAROpenResponse": [
{
"CustomerID": "ATHOME",
"BranchID": "CENTRALBRNCH",
"ProcessDate": "2022-02-14",
"InvoiceNumber": "CNTL0302345-001",
"InstallmentSequence": 1,
"TransactionID": 300152345,
"ShipmentNumber": 1,
"InvoiceType": "Credit Memo",
"ShipToSequence": 1,
"BillToSequence": 1,
"OpenAmount": 114,
"PaymentAmount": 110,
"DiscountAmount": 0,
"InvoiceBalance": 4,
"Remark": "A/R Remark",
"ReasonCode": "A/R Reason Code"
},
{
"CustomerID": "ATHOME",
"BranchID": "CENTRALBRNCH",
"ProcessDate": "2022-02-14",
"InvoiceNumber": "CA-000000012",
"InstallmentSequence": 1,
"TransactionID": 0,
"ShipmentNumber": 0,
"InvoiceType": "Payment on Account",
"ShipToSequence": 1,
"BillToSequence": 1,
"OpenAmount": 680,
"PaymentAmount": 320,
"DiscountAmount": 0,
"InvoiceBalance": 360,
"Remark": "A/R Remark",
"ReasonCode": "A/R Reason Code"
},
{
"CustomerID": "ATHOME",
"BranchID": "CENTRALBRNCH",
"ProcessDate": "2022-02-14",
"InvoiceNumber": "CNTL0302283-001",
"InstallmentSequence": 1,
"TransactionID": 300152283,
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"ShipToSequence": 1,
"BillToSequence": 1,
"OpenAmount": 424,
"PaymentAmount": 280,
"DiscountAmount": 16.5,
"InvoiceBalance": 127.5,
"Remark": "A/R Remark",
"ReasonCode": "A/R Reason Code"
},
{
"CustomerID": "ATHOME",
"BranchID": "EASTMOND",
"ProcessDate": "2022-02-14",
"InvoiceNumber": " EAST310085-001",
"InstallmentSequence": 1,
"TransactionID": 3100152285,
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"ShipToSequence": 1,
"BillToSequence": 1,
"OpenAmount": 868,
"PaymentAmount": 150,
"DiscountAmount": 0,
"InvoiceBalance": 718,
"Remark": "A/R Remark",
"ReasonCode": "A/R Reason Code"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Applies payments to invoices
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDdtInvoiceRequest (BranchID, InvoiceNumber, PaymentAmount, DiscountAmount)dtPaymentRequest (BranchID, Invoice Number, PaymentAmount)
Optional Inputs
PaymentDateInstallmentSequenceRemark
Response
- ReturnCode
MessageText- Transaction and balance information for each invoice.payment a payment was applied to or from
Notes
- Multiple
dtInvoiceRequestand/ordtPaymentRequestcan be specified - If
PaymentDateis not specified, the current date is used - Includes payments with the following ref_types: CA (cash on account), CM (credit memo), CI (credit invoice).
- Includes invoices with the following ref_types: IN (invoice), FC (finance charge invoice), DM (debit memo).
PaymentAmountrepresents the amount of payment being applied to the invoice not including the discount amount.- Each payment and invoice require a non-zero
PaymentAmount. - The total
PaymentAmountof all invoices must be equal to the totalPaymentAmountof all payments. - The total of
PaymentAmount+DiscountAmountmust be <= the open amount of the invoice. For payments,PaymentAmountcannot exceed the open amount of the payment. - All
PaymentAmountandDiscountAmountvalues are processed as a positive regardless of the positive or negative value included in the request. - Invoices and payments are validated against the current branch’s A/R sharing branch.
BranchIDrepresents the branch the invoice/payment exists. - This method may apply payments for branches the user does not have access to, depending on the setting the View A/R Detail for All Branches security action.
- Remarks sent create a standard A/R Remark for the invoice and the payment, are set to editable, and are not set to print on statements. Remarks must be less than 6000 characters.
- Reason Codes created in Reason Code Maintenance with A/R open type and Available for use can be specified for invoices and payments.
- When a customer short pays an invoice, the system can optionally assign a reason code to the record. Refer to the Short Pay Reason Codes section within the Processing Rules of A/R Cash Application for more information.
The following applies only to customers on Agility version 604 and above:
- The
InstallmentSequenceis used if specifying an installment sequence when applying payments to installment invoices. - When the value in this field corresponds to an installment on the specified invoice, the system applies the payment to the specific installment.
- When the value in this field is "0" and there are no payments with an installment sequence defined, the system applies the payment to the lowest (numerically) open installment until it is fully paid or the payment is fully applied.
- If there are remaining payments to apply, the system continues to the next lowest installment until all invoices are paid or the payment is fully applied.
- If a discount is specified on an installment invoice payment and the
InstallmentSequenceis “0”, the system applies the discount to the first installment. - When utilizing the
InstallmentSequencefield, the value must be zero or greater and cannot be left blank.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555; Remark added in v556 v612; Reason Code, Remark for payment v612, Remarks, not set to print on statements
InvoicesList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "IPS",
"ShiptoSequence": 1,
"IncludeOnlyOpenInvoices": false,
"InvoiceDateRangeStart": "2022-03-02",
"InvoiceDateRangeEnd": "2022-03-02",
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"InvoiceResponse": {
"dsInvoiceResponse": {
"dtInvoiceOrderResponse": [
{
"BranchID": "CENTRALBRNCH",
"InvoiceNumber": "CNTL0300153610-001",
"InvoiceNumberSequence": 0,
"TransactionID": 300153610,
"TransactionType": "SO",
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"CustomerID": "HAR01",
"ShipToSequence": 2,
"OrderedBy": "Daniel Jacob",
"OrderDate": "2023-01-13",
"ShipDate": "2023-01-13",
"InvoiceDate": "2023-01-13",
"InvoiceDueDate": "2023-01-13",
"InvoiceStatus": "Open",
"SaleType": "wh",
"SaleTypeDescription": "Orders shipped through the warehouse",
"TransactionJob": "1435-PPL",
"TransactionReference": "89347-PY",
"CustomerPO": "",
"RouteID": " ",
"ShipVia": "Our Truck",
"FreightTerms": "",
"PayTermsCode": "COD",
"PaymentTermsDescription": "COD - NO DISCOUNT",
"OrderSubtotal": 1000,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "IA_GRUNDY_REINBECK",
"OrderTaxAmount": 70,
"OrderTotal": 1070,
"InvoicePaymentAdjustAmount": 0,
"OrderBalance": 1070,
"DiscountAmount": 0,
"DiscountDate": null,
"AfterDeductFreightAmt": 0,
"DiscountPercent": 0,
"DiscountableAmount": 1000,
"DueDays": 0,
"DiscountDays": 0,
"ShipToName": "Harris Corporation S2",
"ShipToAddress1": "906 Park Street",
"ShipToAddress2": "Suite 234",
"ShipToAddress3": "P O Box 32211",
"ShipToCity": "Reinbeck",
"ShipToState": "IA",
"ShipToCountry": "USA",
"ShipToZip": "50669 ",
"ShipToPhone": "(402)-330-6620",
"BillToName": "Harris Corporation B2",
"BillToAddress1": "85858 SW Avenue",
"BillToAddress2": "Suite 234",
"BillToAddress3": "P O Box 32211",
"BillToCity": "Omaha",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68046 0005",
"BillToPhone": "(402)-330-6620",
"SalesAgentID1": "0524",
"SalesAgentName1": "AP Keaton",
"SalesAgentID2": "002",
"SalesAgentName2": "James Harrison",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"MiscField1": "B Thomas",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "42.3236° N",
"MiscField8": "92.5994° W",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": null,
"MiscDate2": null,
"CustomerName": "Harris Corporation Internation",
"APISourceID": "",
"SalesAgent1PctOfOrder": 50,
"SalesAgent2PctOfOrder": 50,
"SalesAgent3PctOfOrder": 0,
"SalesAgent4PctOfOrder": 0,
"SalesAgent5PctOfOrder": 0,
"SalesAgent6PctOfOrder": 0,
"dtInvoiceDetailResponse": [
{
"BranchID": "CENTRALBRNCH",
"InvoiceNumber": "CNTL0300153610-001",
"InvoiceNumberSequence": 0,
"TransactionID": 300153610,
"TransactionType": "SO",
"ShipmentNumber": 1,
"InvoiceType": "Invoice",
"Sequence": 1,
"DisplaySequence": 1,
"ItemCode": "2827",
"PartNumber": "2827AC",
"ItemSize": "",
"ItemDescription": "Zinc-Plated Hex Lag Screw Indoor/Outdoor",
"ExtendedDescription": "2827 Steel construction, Zinc plated Hex Lag Screw\nIndoor/Outdoor. Use with DECORATIVE HINGED SCREW COVER to securely fasten DECK MOUNT TERMINAL or INTERMEDIATE ALUMINUM POSTS to the top of a deck. Pre-drill and ensure lag penetrates into structural framing and not just the deck boards.",
"TotalOrderedQuantity": 2,
"ShippedQuantity": 2,
"QuantityUOM": "BNDL",
"Price": 10,
"PriceUOM": "EA",
"DiscountDescription": "",
"ExtendedPrice": 1000,
"CustomerPOLineNumber": "000001",
"ItemXrefUsedToOrder": "",
"OriginalPrice": 0,
"OriginalPriceUOM": "EA",
"OriginalOrderedQty": 10,
"OriginalOrderedQtyUOM": "BAG"
}
]
}
]
}
},
"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
SearchBySearchValue
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
When including the
SearchByinput, the only valid value is Order ID. TheSearchValueinput must be a valid transaction ID.- With a valid transaction ID entered, the
CustomerIDinput can be sent with a blank value.
- With a valid transaction ID entered, the
The following rules apply when displaying shipping tracking information:
- When the
InvoiceDetailSequence= 0, the tracking information is stored at the header - When the
InvoiceDetailSequenceis not 0, the tracking information applies to the invoice detail sequence specified - The system displays tracking information at the lowest level. For example, if a tracking number exists at the header level and another exists at the detail level, the system displays the detail level tracking number. If tracking numbers exist only at the header level, then the system displays these header level tracking numbers.
- When the
Relationships
Parent/Child relationship exists between
dtInvoiceOrderanddtInvoiceDetailthroughInvoiceNumber. Please see Parent/Child relationship topic for more informationContextIdcomes from LoginAlternate branches come from BranchList
Valid values for
CustomerIDcome from CustomersList or CustomerShiptoListValid values for
ShiptoSequencecome from CustomerShiptosListPlease see Parent/Child relationship topic for more information on the following:
A one to many Parent/Child relationship exists between
dtInvoiceOrderResponseanddtInvoiceDetailResponsethroughInvoiceNumber.A one to many Parent/Child relationship exists between
dtInvoiceOrderResponseanddtTrackingHeaderResponsethroughInvoiceNumber.A one to many Parent/Child relationship exists between
dtInvoiceDetailResponseanddtSerialNumberDetailResponsethroughSequence.The
ShipViais the stored on the shipment at the time of invoicing. If the stored value is blank, then the system displays the ship via value from the sales order header.The
PartNumberdisplays the part number stored on the so_detail. If this is blank, then the system searches for the related cross reference. If the cross reference is for a sheet good item, then the system finds the dimension-specific cross reference if available. If the item is a dimensional item but not a sheet good item, the system finds the 00x00x00 cross reference.The
ItemXrefUsedToOrderdisplays the item cross reference field from the Sales order detail.
Version Deployed
v539
PendingPaymentList
Sample Request
{
"request": {
"PendingPaymentJSON": {
"dsPendingPaymentRequest": {
"dtPendingPaymentRequest": [
{
"CustomerID": "jj.0007",
"ShiptoSequence": 1,
"PaymentAccountID": "8e123sf165sd4f56-sdf156465",
"BankGUID": "1234360125cde1bf-f3a5-fd9e-g614-60cdab6"
}
]
}
}
}
}
Sample Response
{
"response": {
"PendingPaymentListJSONResponse": {
"dsPendingPaymentResponse": {
"dtPendingPaymentResponse": [
{
"BranchID": "WESTONBRANCH",
"TransactionID": 1000343976,
"PaymentAccountID": "8e370a6-af05-7960979b5XXX",
"TruncatedCardNumber": "xxxxxxxxxxxx5550",
"BankAcctName":"",
"TruncatedAccountNumber":""
},
{
"BranchID": "WESTONBRANCH",
"TransactionID": 1000343979,
"PaymentAccountID": "8e37640a6-af05-7960979b5XXX",
"TruncatedCardNumber": "xxxxxxxxxxxx5550",
"BankAcctName":"First National Bank",
"TruncatedAccountNumber":"x4321"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of transactions with open pending payments for a specific customer ship-to, BankGUID, or payment account ID
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PaymentAccountIDand/orCustomerIDandShiptoSequenceORBankGUIDand/orCustomerIDandShiptoSequence
Optional Inputs
N/A
Response
- ReturnCode
MessageText- Sales orders with pending payments matching customer and/or payment account ID or
BankGUID
Notes
- To return a list of sales orders with pending payments, specify a customer ID and ship-to sequence and/or a payment account ID or
BankGUID. - When
CustomerIDandShipToSequenceonly are provided, the system returns data for current branch matching that customer ID and ship-to sequence. The user must have Data Allocations granted for the customer. - When
PaymentAccountIDorBankGUIDonly is provided, the system returns data for any branch with pending payments that match the payment account ID orBankGUID. Data Allocations are not validated. - When
CustomerID,ShipToSequence, andPaymentAccountIDorBankGUIDare provided, the system returns data for any branch with pending payments that match both the customer and payment account ID orBankGUID. The user must have Data Allocations granted for the customer. - This method may return information for branches the user does not have access to, depending on the setting for the View A/R Detail for All Branches action allocation.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v556
SavedCreditCardCreate
Sample Request
{
"request": {
"SavedCreditCardCreateJSON": {
"dsSavedCreditCardCreateRequest": {
"dtSavedCreditCardCreateRequest": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"ReturnURL": "http://www.dmsi.com"
}
]
}
}
}
}
Sample Response
{
"response": {
"SavedCreditCardCreateJSONResponse": {
"dsSavedCreditCardCreateResponse": {
"dtSavedCreditCardCreateResponse": [
{
"TransactionSetupID": "739FF-4FD-423-89AD-94E2 AD0 ",
"ValidationCode": "A83B75D5C5C2454A",
"HostedPaymentURL": "https://cerrtranID=7 G39FFFF"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Used to direct customers who store credit cards in Agility to a specified Hosted Payments page where they can enter a new credit card to save or use to process a new transaction
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceReturnURL
Optional Inputs
N/A
Response
- ReturnCode
MessageText- Credit card response with URL
Notes
- Access to the Credit Card Interface must be granted to use this request.
- User must have data allocations granted for the customer specified.
- Only PCI compliant information is transferred. No sensitive data is sent.
- Account information is not sent through the card issuer for authorization and only needs to pass a Mod10 check to be stored.
- The response contains information necessary to identify, validate, and the initiate the account creation transaction with WorldPay.
o
TransactionSetupIDuniquely identifies the transaction with WorldPay. The ID can only be used once expires 10 minutes after being generated. oValidationCodeis used to verify the saved card transaction. Compare theValidationCodefrom this method with theValidationCodereturned by theHostedPaymentURL. oHostedPaymentURLdirects the user to the Hosted Payment Page, which provides a GUI to enter and submit credit card information. - If you specify a
ReturnURLin the request, theHostedPaymentURLwill redirect to theReturnURLonce the transaction has either been successfully processed or cancelled. In the event of a successful account creation, the following fields are appended to theReturnURL’s query string:HostedPaymentStatus,TransactionSetupID,ServicesID,ExpressResponseCode,ExpressResponseMessage,PaymentAccountID,ValidationCode,BillingAddress1, andEntry. In the event of a cancelled account creation, only theTransactionSetupIDandHostedPaymentStatusare appended. - If you leave the
ReturnURLblank or send it as null, theHostedPaymentURLwill not redirect the user after the transaction has been processed or cancelled. Instead, the Hosted Payment Page will display the Result, Services ID, Payment Account ID, and Card Number (truncated). - The
PaymentAccountedIDgenerated using theHostedPaymentURLshould not be used outside of Agility APIs. Doing so may causeNetworkTransactionIDsto fall out of sync.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555
SavedCreditCardDelete
Sample Request
{
"request": {
"SavedCreditCardDeleteJSON": {
"dsPaymentAccountRequest": {
"dtPaymentAccountRequest": [
{
"PaymentAccountID": " 82c9c611-a9be-1a57d70d7246"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes a saved credit card
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PaymentAccountID
Optional Inputs
N/A
Response
- ReturnCode
MessageText
Notes
- Access to the Credit Card Interface must be granted to use this request.
- Cards with pending payments cannot be deleted.
- Only one card can be deleted at a time.
- Data allocations do not apply.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555
SavedCreditCardList
Sample Request
{
"request": {
"CustomerJSON": {
"dsCustomerShipto": {
"dtCustomerShipto": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1
}
]
}
}
}
}
Sample Response
{
"response": {
"SavedCreditCardListJSONResponse": {
"dsSavedCreditCard": {
"dtSavedCreditCard": [
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"TruncatedCardNumber": "xxxxxxxxxxxx5550",
"CardType": "Mastercard",
"BillingName": "AT Home Lumber",
"BillingAddress1": "17002 Marcy St",
"BillingAddress2": "",
"BillingCity": "Omaha",
"BillingState": "NE",
"BillingZip": "68118",
"ExpirationMonth": "03",
"ExpirationYear": "22",
"PaymentAccountID": "92572-b531-3fcc204aed",
"SurchargeBasis": "",
"SurchargeAmount": 0
},
{
"CustomerID": "ATHOME",
"ShiptoSequence": 1,
"TruncatedCardNumber": "xxxxxxxxxxxx5020",
"CardType": "Visa",
"BillingName": "AT Home Lumber",
"BillingAddress1": "17002 Marcy St",
"BillingAddress2": "",
"BillingCity": "Omaha",
"BillingState": "NE",
"BillingZip": "68118",
"ExpirationMonth": "12",
"ExpirationYear": "23",
"PaymentAccountID": "c5c8421af-3aa5a2439",
"SurchargeBasis": "Percent",
"SurchargeAmount": 3
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of saved credit cards for a specific customer ship-to or bill-to
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequence
Optional Inputs
N/A
Response
- ReturnCode
MessageText- Saved credit card information
Notes
- To return credit cards stored on customer bill-to records, specify a ship-to sequence associated with the desired bill-to record.
- Only active ship-to records return credit card lists.
- User must have data allocations granted for the customer specified.
SurchargeAmountis based on the surcharge specified on the payment method as well as any surcharge discounts specified at the bill-to or ship-to level.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v555; surcharge fields added in v556
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 – null
- Integer – 0
- Decimal – 0.00
- Logical – Invalid format
- When using "" in the request, the value is set as follows:
- Character – ""
- Date – Invalid format
- Integer – Invalid format
- Decimal – Invalid format
- Logical – Invalid format
CustomerBank
Sample Request
{
"request": {
"CustomerID": "",
"AccountNumber": "",
"RoutingNumber": "",
"BankJSON": {
"dsCustomerBank": {
"dtCustomerBank": [
{
"BankName": "",
"BankAccountName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false,
"DefaultACHAcctForCashApp": false
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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": "",
"BankAccountName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false,
"DefaultACHAcctForCashApp": false
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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": {
"AuditResults": {
"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": "",
"MobilePhone": "",
"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,
"InvoiceEmailGroupBy": "Use Forms Assignment",
"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,
"AuditResults": {
"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": {
"AuditResults": {
"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
CustomerBilltosList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "12345",
"BilltoSequence": 1,
"AdditionalSearchCriteriaJSON": {
"dsCustomerBilltoSearchRequest": {
"dtCustomerBilltoSearchRequest": [
{
"FetchOnlyChangedSince": null,
"ChunkStartPointer": 0,
"RecordFetchLimit": 50
}
]
}
}
}
}
Sample Response
{
"response": {
"CustomerBillToResponse": {
"dsCustomerBillToResponse": {
"dtCustomerBillToResponse": [
{
"CustomerID": "12345",
"CustomerName": "Test",
"BilltoName": "Test",
"BilltoSequence": 1,
"CustomerCurrentBalance": 0,
"CustomerHomeBranch": "WOODLAND",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "USA",
"Phone": " ",
"MobilePhone": " ",
"Fax": " ",
"Email": "",
"CreatedDate": "2019-06-12",
"LastChanged": "2020-01-27T18:50:23.000",
"ApplyAutoCash": false,
"AutoCash": true,
"CheckCredit": "A",
"CreditBureau1EffectDate": null,
"CreditBureau1Rating": "",
"CreditBureau2EffectDate": null,
"CreditBureau2Rating": "",
"CreditLimit": 0,
"CreditLimitExpDate": null,
"CreditBypassAmt": 0,
"CreditScore": 0,
"CreditReviewDate": null,
"EDIAdjAgent": "",
"EDIAdjBranch": "Branch of Invoice",
"EDIAdjInvoice": false,
"EDIPymtRule": 0,
"DBCode": "",
"MunicipalTaxExempt": "",
"StateTaxExempt": "",
"FedTaxExempt": "",
"LastPymtDate": "2020-01-27",
"LastShipDate": "2020-01-27",
"Misc1Label": "BT 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": ""
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of customer bill-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
SearchBySearchValueCustomerIDBilltoSequenceFetchOnlyChangedSinceChunkStartPointerRecordFetchLimit
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- List of customer bill-to records
Notes
- This method allows a user to request customer bill-tos that have changed since a particular date and time.
- This method allows a user to request a specific number of records. Please see the Chunking topic for more information.
- Valid
SearchByvalues:- Bill-to Name
- Bill-to Address 1
- Bill-to Address 2
- Bill-to City
- Bill-to State
- Bill-to ZIP
- Bill-to phone
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
CustomerIDcome fromCustomersList - Response fields
CustomerCurrentBalanceandCustomerHomeBranchare from the customer sold-to record
Version Deployed
v613
CustomerBilltoUpdate
Sample Request
{
"request": {
"CustomerID": "123456",
"BilltoSequence": 1,
"BilltoJSON": {
"dsCustomerBillto": {
"dtCustomerBillto": [
{
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"MobilePhone": "",
"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,
"InvoiceEmailGroupBy": "Use Forms Assignment",
"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",
"ReleaseOrdersUponCreditChange": false,
"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": {
"AuditResults": {
"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 - During processing of the request, if the 'Release eligible orders upon credit criteria change' field is set to 'Prompt' on the Agility A/R Parameters record, and the new
ReleaseOrdersUponCreditChangefield is set to 'True', the system automatically rechecks credit and releases orders based on credit criteria changes received from the API request for the customer bill-to record.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Email field v550; Updated with credit release processing v603
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,
"FullPaymentReqPartialShipment": 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": "",
"EnableShippingTracking": false,
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"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": {
"AuditResults": {
"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
- The associated 'enable' flag must be included and set to 'true' to input a value on a branch ship-to record
- 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; Updated with FullPaymentReqPartialShipment field v611
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,
"EnableShippingTracking": false,
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"FullPaymentReqPartialShipment": true
}
]
}
},
"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; Updated with Full payment required field v611
CustomerBranchShiptoLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustBranchShiptoLaserControls": {
"dtCustBranchShiptoLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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,
"FullPaymentReqPartialShipment": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"DefaultShipmentStatus": "",
"MinOrderHoldAmount": 0,
"MinOrderHoldForceShipComplete": false,
"EnableDefaultCodes": false,
"PriceGroupsAction": "",
"PriceGroups": "",
"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": "",
"EnableShippingTracking": false,
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"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": {
"AuditResults": {
"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
- The associated 'enable' flag must be included and set to 'true' to update a field on a branch ship-to record
- 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; Updated with FullPaymentReqPartialShipment field v611
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": {
"AuditResults": {
"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": "",
"MobilePhone": "",
"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,
"SecondaryGroupsAction": "Add",
"SecondaryGroups": "Midwest",
"HomeBranch": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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.
- When the ‘Auto assign customer ID’ option in Branch Controls is set, the CustomerID field is not a required input. If the CustomerID input is not populated, the next available sequence number is used.
- 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 SecondaryGroupActionhas four valid values:- Add – Adds values from
SecondaryGroupsto the end of the existing secondary customer groups in rank order - Replace – Replaces all current secondary customer groups with the values from
SecondaryGroups. If there are no values inSecondaryGroups, a warning is given and the secondary customer groups are not updated. - Delete – Deletes secondary customer groups specified in
SecondaryGroups - Delete all – Deletes all current secondary customer groups.
- Add – Adds values from
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": {
"AuditResults": {
"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": "",
"BankAccountName": "",
"AccountType": "",
"DefaultBranch": "",
"UseForACHProcessing": false,
"ApprovedForACHProcessing": false,
"DefaultACHAcctForCashApp": false
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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": {
"AuditResults": {
"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
CustomerShiptoContactDelete
Sample Request
{
"request": {
"CustomerID": "BUIL103",
"ShiptoSequence": 1,
"ContactName": "John Doe",
"ContactType": "Warehouse"
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes a customer ship-to contact record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceContactNameContactTypeContactJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageText
Notes
- Only one contact can be deleted per request
- You can leave the
ContactTypevalue empty if the ship-to Contact Maintenance window in Agility does not contain a value for ths field
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v553
CustomerShiptoCreate
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoJSON": {
"dsCustomerShipto": {
"dtCustomerShipto": [
{
"ActiveInAllBranches": false,
"Name": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"MobilePhone": "",
"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,
"FullPaymentReqPartialShipment": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"AllowCreditBalanceAsPayment": false,
"ApplyCCSurchargeFee": "",
"CCSurchargeDiscountPercent": 0.0,
"DefaultShipmentStatus": "",
"OrderEntryBranchOption": "",
"BranchOptionDefaultBranch": "",
"BranchOptionPromptDefaultBranch": false,
"MinOrderHoldAmount": 0.0,
"MinOrderHoldForceShipComplete": false,
"AdditionalScheduleLeadDays": 0,
"ApplyWMSPickThreshold": false,
"WMSUnderPickThresholdPercent": 0.0,
"CallForAppointment": false,
"StartLoadHours": "",
"EndLoadHours": "",
"AllowAddonChargeCost": "",
"EDIOrgID": "",
"EDISOCreatedInBranch": "",
"EDISpecialOrdersCreatedInBranch": "",
"EDIItemActivityCreatedInBranch": "",
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"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,
"HomeBranch": "",
"ActivateBasedOnHBOrgHierLevel": false,
"HomeBranchOrgHierLevel": "",
"ActivateBasedOnHBDistance": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ShiptoSequence": 2,
"AuditResults": {
"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.- If
ActivateBasedOnHBOrgHierLevelis set totrueandHomeBranchOrgHierLevelis not included in the request then the default value from Branch Parameters will be used.
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; updated with AdditionalScheduleLeadDays field v552; updated with AllowCreditBalanceAsPayment field v556; Updated with FullPaymentReqPartialShipment field v611
CustomerShiptoLaserControls
Sample Request
{
"request": {
"CustomerID": "",
"ShiptoSequence": 0,
"FormType": "",
"PrinterSequence": 0,
"LaserControlJSON": {
"dsCustomerShiptoLaserControls": {
"dtCustomerShiptoLaserControls": [
{
"PrinterName": "",
"FaxEmailToSource": "",
"Fax": "",
"Email": "",
"Copies": 0,
"FormFooter": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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": "",
"MobilePhone": "",
"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,
"FullPaymentReqPartialShipment": false,
"FullPaymentRequiredOrderTypes": "",
"AllowOverpaymentsInvoicing": false,
"ApplyOverpaymentType": "",
"AllowCreditBalanceAsPayment": false,
"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": "",
"EDIItemActivityCreatedInBranch": "",
"EDISpecialOrdersCreatedInBranch": "",
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"LienRequired": false,
"LienDaysFromFirstShipment": 0,
"LienDaysFromLastShipment": 0,
"LienDaysFromLastInvoice": 0,
"LienShipmentAmtGreaterThan": 0.0,
"LienStatus": "",
"LienDateOption": "",
"LienDaysToFile": 0,
"LienMinAmountToFile": 0.0,
"PriceGroupsAction": "",
"PriceGroups": "",
"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",
"ReleaseOrdersUponCreditChange": false,
"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,
"HomeBranch": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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.
- During processing of the request, if the 'Release eligible orders upon credit criteria change' field is set to 'Prompt' on the Agility A/R Parameters record and the new
ReleaseOrdersUponCreditChangefield is set to 'True', the system automatically rechecks credit and releases orders based on credit criteria changes received from the API request for the customer ship-to record.
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; updated with AllowCreditBalanceAsPaymet field v556; Updated with credit release processing v603; Updated with FullPaymentReqPartialShipment field v611
CustomerShiptosList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "12345",
"ShiptoSequence": 1,
"FetchOnlyChangedSince": null,
"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",
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"MobilePhone": "(402)-555-1234",
"HomeBranch": "WESTON",
"FullPaymentRequired": false,
"FullPaymentRequiredOrderTypes": "CM's Only",
"FullPaymentReqPartialShipment": false,
"BilltoSequence": 1,
"CreatedDate": "YYYY-MM-DD",
"AllowAsTemplate": false,
"CreditLimitAmount": 0
}
]
}
},
"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.
- 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; Updated with Full payment required fields v611
CustomerUpdate
Sample Request
{
"request": {
"CustomerID": "",
"CustomerJSON": {
"dsCustomer": {
"dtCustomer": [
{
"Name": "",
"DivisionID": "",
"GroupID": "",
"Address1": "",
"Address2": "",
"Address3": "",
"City": "",
"State": "",
"ZIP": "",
"Country": "",
"PhoneFormat": "",
"Fax": "",
"Phone": "",
"MobilePhone": "",
"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",
"ReleaseOrdersUponCreditChange": false,
"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,
"SecondaryGroupsAction": "Replace",
"SecondaryGroups": "Drywall",
"HomeBranch": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"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
SecondaryGroupActionhas four valid values:- Add – Adds values from
SecondaryGroupsto the end of the existing secondary customer groups in rank order - Replace – Replaces all current secondary customer groups with the values from
SecondaryGroups. If there are no values inSecondaryGroups, a warning is given and the secondary customer groups are not updated. - Delete – Deletes secondary customer groups specified in
SecondaryGroups - Delete all – Deletes all current secondary customer groups.
- Add – Adds values from
- During processing of the request, if the 'Release eligible orders upon credit criteria change' field is set to 'Prompt' on the Agility A/R Parameters record and the new
ReleaseOrdersUponCreditChangefield is set to 'True', the system automatically rechecks credit and releases orders based on credit criteria changes received from the API request for the customer sold-to record.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; Updated with Nonsalable fields v548; Updated with Email field v550; Updated with credit release processing v603
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",
"GroupID": "Drywall",
"SecondaryGroups": "Midwest",
"HomeBranch": "WESTON",
"MobilePhone": "(402)-555-1234",
"CreatedDate": "YYYY-MM-DD",
"StartDate": "YYYY-MM-DD",
"LastApplicationDate": "YYYY-MM-DD",
"FirstInvoiceDate": "YYYY-MM-DD",
"CreditManager": """",
"CreditScore": 0,
"CreditReviewDate": "YYYY-MM-DD"
}
]
}
},
"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
- The
FetchOnlyChangedSinceparameter allows the user to determine if they would like records returned that have been modified since a particular date/time. This parameter is evaluated against the update date/time on the record. - 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
- Group ID
- Secondary Group ID
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,
"TarpSize": "1234567890123456",
"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": " ",
"DestinationID": "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",
"OriginID": " 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": "Yes",
"TarpSize": "1234567890123456",
"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": "Yes",
"TarpSize": "1234567890123456",
"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
DispatchMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 1000115076,
"ShipmentNum": 1,
"TranSeq": 1,
"MessageText": "Message Text Here",
"MessageType": "H",
"PrintOnForms": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a dispatch transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageType
Optional Inputs
PrintOnForms
Response
- ReturnCode
MessageText
Notes
MessageTextcan send a maximum of 1000 characters- Valid values for
MessageTypeare H, Header, F, and Footer - When
PrintOnFormsis set to true, all eligible forms are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
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,
"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.
BranchInventoryList
Sample Request
{
"request": {
"ItemCode": "148-7",
"Thickness": 1,
"Width": 6,
"Length": 10
}
}
Sample Response
{
"response": {
"BranchInventoryResponse": {
"dsBranchInventoryResponse": {
"dtBranchInventoryResponse": [
{
"BranchId": "CENTRAL",
"AvailableQty": 0,
"SurplusQty": 0,
"NetQty": 0,
"OnHandQty": 0,
"OnOrderQty": 0,
"ReturnQty": 0,
"BackOrderedQty": 0,
"CommittedQty": 0,
"UOM": "BF",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
},
{
"BranchId": "WESTON",
"AvailableQty": 64050,
"SurplusQty": 64210,
"NetQty": 64210,
"OnHandQty": 64220,
"OnOrderQty": 0,
"ReturnQty": 0,
"BackOrderedQty": 0,
"CommittedQty": 170,
"UOM": "BF",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns various quantity totals by branch for a specific item/dimension; similar to what is displayed in stock status
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ItemCode
Optional Inputs
ThicknessWidthLength
Response
- ReturnCode
MessageText- Quantity totals by branch for the specified item/dimension
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
- If Thickness, Width, and/or Length are excluded from the request, the system assumes a value of zero (0).
Relationships
ContextIdandBranchcome from Login- Valild values for
ItemCode,Thickness,Width, andLengthcome fromItemsListorItemsInChunksList
Version Deployed
v554
CatalogImageDocCreate
Sample Request
{
"request": {
"ImageOrDocumentID": "IPSH5",
"CatalogImageDocJSON": {
"dsCatalogImageDoc": {
"dtCatalogImageDoc": [
{
"ImageFile": " https://www.dmsi.com/content/uploads/2021/11.jpg",
"DisplayText": "Fan control",
"Type": "Image"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new image or document record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ImageOrDocumentIDImageFileType
Optional Inputs
DisplayText
Response
- ReturnCode
MessageText
Notes
- Valid values for
TypeareDocumentandImage DisplayTextcan send a maximum of 100 characters
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v556
CatalogImageDocUpdate
Sample Request
{
"request": {
"ImageOrDocumentID": "IPSH5",
"CatalogImageDocJSON": {
"dsCatalogImageDoc": {
"dtCatalogImageDoc": [
{
"ImageFile": "https://www.dmsi.com/content/uploads/2021/11.jpg",
"DisplayText": "Sensor fan control",
"Type": "Image"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates an image or document record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ImageOrDocumentID
Optional Inputs
DisplayTextType
Response
- ReturnCode
MessageText
Notes
- Valid values for
TypeareDocumentandImage DisplayTextcan send a maximum of 100 characters
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v556
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",
"AllowBrokenUOMInCountEntry": true,
"BrokenUOM": "BF",
"DisplayUOM": "BF",
"PickingTallyUOM": "From order",
"DWReportUOM": "BF",
"SOQuoteUOM": "BF",
"CMUOM": "BF",
"PickingUOM": "BF",
"DeliveryUOM": "BF",
"InvoiceUOM": "BF",
"UpdateTranFormUOMs": true,
"CountUOM": "BF",
"AllowDescOverride": true,
"TaxableForSales": true,
"TaxableForTaxCost": true,
"DisplayMarket": true,
"PrintItemExtDesc": true,
"EcommerceDesc": "2 x 4 Pine Stud"
}
]
}
}
}
}
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.
TheEcommerceDescriptioncan be sent in plain text or html
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,
"CopyField": false
},
{
"ItemCode": "LL-NAILS",
"Thickness": 0,
"Width": 0,
"Length": 0,
"FieldLabel": "Supplier",
"DataType": "Text",
"CharacterData": "",
"DateData": null,
"DecimalData": 0,
"IntegerData": 0,
"LogicalData": false,
"CopyField": 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 active and valid in the login branch
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
ItemImageDocCreate
Sample Request
{
"request": {
"ImageOrDocumentID": "IPSH5",
"Item": "IPSH5FAN",
"ItemImageDocCreateJSON": {
"dsItemImageDocCreate": {
"dtItemImageDocCreate": [
{
"Primary": "True"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Assigns an image or document to an item record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ImageOrDocumentIDItem
Optional Inputs
N/A
Response
- ReturnCode
MessageText
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v556
ItemImageDocDelete
Sample Request
{
"request": {
"ImageOrDocumentID": " IPSH5",
"Item": "IPSH5FAN"
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes the assignment of an image or document to an item record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
ImageOrDocumentIDItem
Optional Inputs
N/A
Response
- ReturnCode
MessageText
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v556
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",
"StockingUOM": "LF",
"StockingMinPackQuantity": 0,
"StockingAvailableQuantity": 3060,
"StockingOnHandQuantity": 5000,
"StockingOnOrderQuantity": 200,
"StockingReturnQuantity": 280,
"StockingBackorderedQuantity": 350,
"StockingCommittedQuantity": 1940,
"HandlingCode": "EWP",
"MinPackHandlingCode": "Lumber",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": "",
"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,
"StockingUOM": "LF",
"StockingMinPackQuantity": 0,
"StockingAvailableQuantity": 500,
"StockingOnHandQuantity": 1000,
"StockingOnOrderQuantity": 200,
"StockingReturnQuantity": 0,
"StockingBackorderedQuantity": 0,
"StockingCommittedQuantity": 500
}
]
}
]
}
},
"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
- The method returns item information in the Display UOM and Stocking 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
- 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; Handling code fields added in v600
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": "",
"MinPackQuantity": 1,
"OnHandQuantity": 0,
"AvailableQuantity": 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": "",
"OnOrderQuantity": 0,
"ReturnQuantity": 0,
"BackorderedQuantity": 0,
"CommittedQuantity": 0,
"DefaultWeight": 4.5,
"DefaultWeightUOM": "box",
"DefaultLoad": 1.1,
"DefaultLoadUOM": "box",
"PrimarySupplierWeight": 4.5,
"PrimarySupplierWeightUOM": "box",
"PrimarySupplierLoad": 1.1,
"PrimarySupplierLoadUOM": "box",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
},
{
"ItemCode": "c10a",
"ItemXref": "",
"ItemSize": "5d",
"ItemDescription": "1.75 inch nails",
"ExtendedDescription": "",
"ItemGroupMajor": "MISC",
"ItemGroupMinor": "NAILS",
"GrossPrice": 0,
"NetPrice": 0,
"DiscountDescription": "",
"MinPackQuantity": 1,
"OnHandQuantity": 0,
"AvailableQuantity": 0,
"UOM": "EA",
"Nonsaleable": false,
"Stock": true,
"Discontinued": "No",
"ItemTypeName": "",
"ImageUrl": "",
"MinPackType": "",
"PriceUOM": "",
"PriceUOMGrossPrice": 0,
"PriceUOMNetPrice": 0,
"SpecialItemType": "",
"HazardousMaterial": false,
"BOLCode": "",
"MSDS": "",
"PrimarySupplierID": "",
"ECommerceDescription": "",
"OnOrderQuantity": 0,
"ReturnQuantity": 0,
"BackorderedQuantity": 0,
"CommittedQuantity": 0,
"DefaultWeight": 1.25,
"DefaultWeightUOM": "Box",
"DefaultLoad": 1.1,
"DefaultLoadUOM": "Box",
"PrimarySupplierWeight": 1.25,
"PrimarySupplierWeightUOM": "Box",
"PrimarySupplierLoad": 1.1,
"PrimarySupplierLoadUOM": "Box",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
}
]
}
},
"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",
"UseOrderRestrictions": true
}
],
"dtItemToProcessRequest": [
{
"ItemCode": "419147",
"PartNumber": "P-124",
"OrderQuantity": 7,
"UOM": "BF"
}
],
"dtItemDimensionToProcessReq": [
{
"ItemCode": "419147",
"PartNumber": "P-124",
"Thickness": 2,
"Width": 6,
"Length": 8,
"OrderQuantity": 10,
"UOM": "PC"
}
]
}
}
}
Sample Response
{
"response": {
"ItemPriceAndAvailResponse": {
"dsItemPriceAndAvailResponse": {
"dtItemPriceAndAvailResponse": [
{
"ItemCode": "16RDOAK",
"OrderQuantity": 5,
"GrossPrice": 3.1,
"NetPrice": 3.1,
"DiscountDescription": "",
"OnHandQuantity": 77843,
"AvailableQuantity": 72949,
"UOM": "BF",
"ExtendedDescription": "",
"PriceUOM": "BF",
"PriceUOMGrossPrice": 3.1,
"PriceUOMNetPrice": 3.1,
"PriceType": "Level 1, Qty Break 0 BF",
"PriceMargin": 18,
"PriceMultiplier": 0,
"PriceAdditionalAmount": 0,
"Promo": false,
"NonSaleable": false,
"Stock": true,
"MinPackType": "Allow - Question",
"MinPackQuantity": 0,
"MaxProductionUnits": 0,
"ItemXref": "16rdoak-har01-All",
"ItemSize": "1x6",
"ItemDescription": "RED OAK",
"ItemGroupMajor": "Pool",
"ItemGroupMinor": "Ladder",
"Discontinued": "No",
"ItemTypeName": "Specific Length Lumber",
"ImageUrl": "",
"SpecialItemType": "",
"HazardousMaterial": false,
"BOLCode": "110",
"MSDS": "123",
"EcommerceDescription": null,
"OnOrderQty": 2930,
"ReturnQty": 0,
"BackorderedQty": 2677,
"CommittedQty": 4894,
"HandlingCode": "label test",
"AutoCompleteWO": false,
"DefaultWeight": 6,
"DefaultWeightUOM": "BF",
"DefaultLoad": 8,
"DefaultLoadUOM": "BF",
"PrimarySupplierID": "ESM",
"PrimarySupplierWeight": 2,
"PrimarySupplierWeightUOM": "BF",
"PrimarySupplierLoad": 3,
"PrimarySupplierLoadUOM": "BF",
"PrimarySupplierContainerLength": 21,
"PrimarySupplierContainerWidth": 43,
"PrimarySupplierContainerHeight": 5345,
"PrimarySupplierPartNumber": "15RDOAK-ESM-PART",
"PrimarySupplierUPC": "",
"Misc1Label": "Manufacturer Cost",
"Misc1Value": 1,
"Misc2Label": "Replacement Cost",
"Misc2Value": 2,
"Misc3Label": "Misc cost",
"Misc3Value": 3,
"Misc4Label": "Retail",
"Misc4Value": 4,
"Misc5Label": "Last Purchased Cost",
"Misc5Value": 5,
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": "",
"dtItemPriceAndAvailDimResponse": [
{
"ItemCode": "16RDOAK",
"Thickness": 1,
"Width": 6,
"Length": 8,
"OrderQuantity": 100,
"GrossPrice": 12.4,
"NetPrice": 12.4,
"DiscountDescription": "",
"OnHandQuantity": 1520,
"AvailableQuantity": 1500,
"UOM": "PC",
"PriceUOM": "BF",
"PriceUOMGrossPrice": 3.1,
"PriceUOMNetPrice": 3.1,
"PriceType": "Level 1, Qty Break 0 BF",
"PriceMargin": 18,
"PriceMultiplier": 0,
"PriceAdditionalAmount": 0,
"Promo": false,
"MinPackType": "Allow and set as broken min pack",
"MinPackQuantity": 20,
"ItemXref": "16rdoak-har01-All",
"OnOrderQty": 20,
"ReturnQty": 0,
"BackorderedQty": 0,
"CommittedQty": 20,
"Misc1Label": "Manufacturer Cost",
"Misc1Value": 1.111,
"Misc2Label": "Replacement Cost",
"Misc2Value": 2.111,
"Misc3Label": "Misc cost",
"Misc3Value": 3.111,
"Misc4Label": "Retail",
"Misc4Value": 4.111,
"Misc5Label": "Last Purchased Cost",
"Misc5Value": 5.111
},
{
"ItemCode": "16RDOAK",
"Thickness": 1,
"Width": 6,
"Length": 10,
"OrderQuantity": 100,
"GrossPrice": 15.5,
"NetPrice": 15.5,
"DiscountDescription": "",
"OnHandQuantity": 3508,
"AvailableQuantity": 3333,
"UOM": "PC",
"PriceUOM": "BF",
"PriceUOMGrossPrice": 3.1,
"PriceUOMNetPrice": 3.1,
"PriceType": "Level 1, Qty Break 0 BF",
"PriceMargin": 18,
"PriceMultiplier": 0,
"PriceAdditionalAmount": 0,
"Promo": false,
"MinPackType": "Allow and set as broken min pack",
"MinPackQuantity": 0,
"ItemXref": "16rdoak-har01-All",
"OnOrderQty": 274,
"ReturnQty": 0,
"BackorderedQty": 243,
"CommittedQty": 175,
"Misc1Label": "Manufacturer Cost",
"Misc1Value": 1.1,
"Misc2Label": "Replacement Cost",
"Misc2Value": 2.1,
"Misc3Label": "Misc cost",
"Misc3Value": 3.1,
"Misc4Label": "Retail",
"Misc4Value": 4.1,
"Misc5Label": "Last Purchased Cost",
"Misc5Value": 5.1
}
]
}
]
}
},
"ItemAuditResults": {
"dsItemAuditResults": {
"dtItemAuditResults": [
{
"AuditSequence": 1,
"ItemCode": "X90645",
"PartNumber": "X90645-All",
"Thickness": 0,
"WIDTH": 0,
"LENGTH": 0,
"AuditType": "Warning",
"AuditText": "Invalid Item X90645"
}
]
}
},
"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
CustomerIDdtItemToProcessRequestanddtItemDimensionToProcessReqinformation
Optional Inputs
ShiptoSequenceSaleTypeDateToCalculatePriceFor
Response
- ReturnCode
MessageTextItemAuditResults- 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 - DMSi strongly recommends reviewing the
ItemAuditResultsregardless of theReturnCodevalue - If requesting dimension information, the
ItemCodeandPartNumberin thedtItemDimensionToProcessReqmust be identical to those sent in thedtItemToProcessRequest - The system does not search dimension specific cross reference records when locating an item when a
PartNumberis included in the request - 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
- The system includes quantities for alternate items assigned to component items when calculating the
MaxProductionUnitsvalue for a BOM Parent item when all of the following conditions are met:- Branch Parameter Include alternates when calculating maximum production units on the Inventory tab is set.
- If the alternate item has the Applies to work orders from sales orders option set and the Auto order option is set to ‘Auto order at work order entry’ in Alternates Maintenance.
- If the Stocking UOM on the component item and alternate item are not the same, there must be a UOM conversion setup on the alternate item to get back to the stocking UOM on the component item.
- If the component is a dimension type item, the alternate item must be setup for the overall 00x00x00 record
- The
PriceMargin,PriceMultiplier, andPriceAdditionalAmounttags return a 0 if the price is not calculated using the margin percent, multiplier, or additional amount formula, respectively.
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; updated with ItemAuditResults in v553; PartNumber, MaxProductionUnits, UseOrderRestrictions added in v600;
PriceType, PriceMargin, PriceMultiplier, and PriceAdditionalAmount added in v612
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": "",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
}
]
}
},
"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 - 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
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",
"AllowBrokenUOMInCountEntry": true,
"BrokenUOM": "BF",
"DisplayUOM": "BF",
"PickingTallyUOM": "From order",
"DWReportUOM": "BF",
"SOQuoteUOM": "BF",
"CMUOM": "BF",
"PickingUOM": "BF",
"DeliveryUOM": "BF",
"InvoiceUOM": "BF",
"UpdateTranFormUOMs": true,
"CountUOM": "BF",
"AllowDescOverride": true,
"TaxableForSales": true,
"TaxableForTaxCost": true,
"DisplayMarket": true,
"PrintItemExtDesc": true,
"EcommerceDesc": "2 x 4 Pine Stud"
}
]
}
}
}
}
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
- 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. New item branch records are not created when performing updates across 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. - The
EcommerceDescriptioncan be sent in plain text or html.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v548
PreReceiptSave
Sample Request
{
"request": {
"PreReceiptSaveJSON": {
"dsPreReceiptSave": {
"dtPreReceiptHeader": [
{
"FileSequence": 1,
"TranType": "PO",
"TranID": "11448430",
"ShipmentNum": 0,
"dtPreReceiptItem": [
{
"FileSequence": 1,
"ItemSequence": 1,
"TranSequence": 0,
"ItemCode": "WENGE44FASBF",
"ItemXREF": "",
"ItemSpecies": "",
"ItemGrade": "",
"ItemSubGrade": "",
"ItemThickness": "",
"ItemSurface": "",
"ItemDryness": "",
"ActivateItemsNotInBranch": false,
"AddItem": false,
"MarkTagsAsPrinted": false,
"DefaultRMKey": "",
"DeleteRemaining": false,
"dtPreReceiptStorage": [
{
"FileSequence": 1,
"ItemSequence": 1,
"StorageSequence": 1,
"Location": "WHSE",
"Lot": "A",
"Tag": "",
"Content": "",
"Thickness": 1.25,
"Width": 10.00,
"Length": 4.0,
"NominalLength": 0.0,
"PieceCount": 30,
"Comments": "",
"Quantity": 1.0,
"UOM": "UNIT"
}
]
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"PreReceiptSaveResponseJSON": {
"dsPreReceiptSaveResponse": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Allows pre-receipt records to be saved for purchase orders and reman orders
Header
ContextIdBranchContent-Type= application/json
Required Inputs
FileSequenceTranTypeTranIDItemSeqenceTranSequenceItemCodeActivateItemsNotInBranchAddItemMarkTagsAsPrintedDeleteRemainingLocationQuantityUOM
Optional Inputs
- Remaining fields in
dtPreReceiptItem - Remaining items in
dtPreReceiptStorage
Response
- ReturnCode
MessageText
Notes
- Valid values for
TranTypeare PO and RM - When
ActivateItemsNotInBranchistruethe system will activate the item being added to the transaction that is currently not active or will create the item branch record if one does not exist - For system-generated tags leave the
Tagfield blank Contentfield is optional for dimensional items- Leave
Location,Lot, orContentfields blank when defaults are setup and that’s the value to be used ShipmentNumis an optional field that can be used forTranTypePO to adjust prereceicpts on transfer purchase orders`
Relationships
ContextIdandBranchcome from Login
Version Deployed
v600
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.
CreditMemoCreateFromHistory
Sample Request
{
"request": {
"OriginalSOID": 2226,
"OriginalShipmentNumber": 2,
"OrderHeaderJSON": {
"dsOrderHeaderRequest": {
"dtOrderHeaderRequest": [
{
"ExpectedPickUp": "2021-11-30",
"RMAFlag": true,
"OrderedBy": "J. Smith",
"OrderMessage": "Created through API",
"PlaceOnHold": true,
"MiscField1": "Sales project 11821-A",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": "2021-12-01",
"MiscDate2": "2021-12-31",
"ShipmentTrackingNumber": "93993",
"ShipmentTrackingDate": "11/19/21"
}
]
}
},
"OrderItemJSON": {
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"OriginalSequence": 1,
"OrderQty": 1,
"UOM": "SF",
"ReasonCode": "Price Only",
"PurchaseOrderID": 0,
"ItemMessage": "Monthly special not applied",
"PrintMsgOnForms": true,
"PrintMsgOnFormsOverride": true,
"WorkOrderID": 0,
"CompletionSeq": 0,
"UseDefaultLocation": false,
"dtOrderItemDimensionRequest": [
{
"OriginalSequence": 1,
"Thickness": 0,
"Width": 24,
"Length": 36,
"PieceCount": 0,
"OrderQty": 1,
"UOM": "PC"
}
]
},
{
"OriginalSequence": 2,
"OrderQty": 1,
"UOM": "BF",
"ReasonCode": "Return to Stock",
"PurchaseOrderID": 0,
"ItemMessage": "Wrong item delivered",
"PrintMsgOnForms": true,
"PrintMsgOnFormsOverride": true,
"WorkOrderID": 0,
"CompletionSeq": 0,
"UseDefaultLocation": true,
"dtOrderItemDimensionRequest": [
{
"OriginalSequence": 2,
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"OrderQty": 2,
"UOM": "PC"
},
{
"OriginalSequence": 2,
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"OrderQty": 2,
"UOM": "PC"
}
]
},
{
"OriginalSequence": 5,
"OrderQty": 2,
"UOM": "EA",
"ReasonCode": "Debit Memo",
"PurchaseOrderID": 0,
"ItemMessage": "Billing errors",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"WorkOrderID": 0,
"CompletionSeq": 0,
"UseDefaultLocation": false
}
]
}
}
}
}
Sample Response
{
"response": {
"NewOrderID": 2229,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new credit memo from an invoiced shipment, which can include BOM parent items and dimensional items with tallies specified.
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OriginalSOIDOriginalShipmentNumberOriginalSequenceOrderQtyUOMReasonCode
Optional Inputs
- Remaining fields in the
dtOrderHeaderRequest,dtOrderItemRequest,dtOrderItemDimensionRequestnot already referenced
Response
- ReturnCode
MessageTextNewOrderID
Notes
- This method allows parent items to be returned on a credit memo. You must specify the
WorkOrderIDandCompletionSeqtags in thedtOrderItemRequestto successfully add a BOM parent item to the credit memo. - At least one item or dimension must be sent in.
- When adding a dimensional item, the
Thickness,Widthand/orLengthare required based on item type. In addition, theOrderQtyandUOMmust be specified at the dimension level.
Relationships
ContextIdandBranchcome from Login- Valid values for
OriginalSOID,OriginalShipmentNumber,OriginalSequence,OrderQty, andUOMcome fromShipmentList. - The
NewOrderIDreturned from this method can be used in conjunction with theCreditMemoListto verify the new credit memo was created as expected - When
PlaceOnHoldis set to true, the transaction is created with a Hold approval status. WhenPlaceOnHoldis set to false, the transaction is created with a Does Not Apply approval status. - The
ReasonCodedetermines whether the item detail is a debit or a credit, regardless of the positive or negative value sent in theOrderQtytag. - This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see the Parent/Child relationship topic for more information. - When the
RMAFlagis set to true, the system creates an RMA Credit Memo with a status type of RMA. When theRMAFlagis sent to false, the system creates a Credit Memo with a status type of CM.
Version Deployed
v554
CreditMemoList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "BCH",
"ShipToSequence": 1,
"OrderDateRangeStart": "2021-11-08",
"OrderDateRangeEnd": "2021-11-10",
"FetchOnlyChangedSince": "2021-11-08",
"IncludeOpenOrders": true,
"IncludeInvoicedOrders": true,
"IncludeCanceledOrders": true,
"ChunkStartPointer": 0,
"RecordFetchLimit": 0
}
}
Sample Response
{
"response": {
"CreditMemoResponse": {
"dsCreditMemos": {
"dtCreditMemo": [
{
"BranchID": "DENTON",
"OrderID": 3530,
"CustomerID": "1618C",
"ShipToSequence": 1,
"OrderedBy": "",
"OrderDate": "2024-12-10",
"ExpectedDate": null,
"OrderStatus": "Invoiced",
"OrderProcessStatus": "",
"CreditHoldStatus": "",
"ApprovalStatus": "Does not apply",
"SaleType": "WH",
"SaleTypeDescription": "Orders shipped through the warehouse",
"TransactionJob": "",
"TransactionReference": "",
"CustomerPO": "",
"RouteID": "",
"ShipVia": "Will Call",
"FreightTerms": "",
"PayTermsCode": "CASH",
"OrderSubtotal": -149.5,
"OrderChargesAmount": 0,
"Taxable": true,
"TaxCode": "NE_DOUGLAS_OMAHA2",
"OrderTaxAmount": -10.46,
"OrderTotal": -159.96,
"DiscountAmount": 0,
"AfterDeductFreightAmt": 0,
"ShipToName": "Tallman Ship-to #1",
"ShipToAddress1": "17002 Marcy St",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "Omaha",
"ShipToState": "NE",
"ShipToCountry": "USA",
"ShipToZip": "68118",
"ShipToPhone": "(402) 660-0808",
"BillToName": "Tallman",
"BillToAddress1": "1618 Bill-to Golden Dr.",
"BillToAddress2": "",
"BillToAddress3": "",
"BillToCity": "Grand Island",
"BillToState": "NE",
"BillToCountry": "USA",
"BillToZip": "68801",
"BillToPhone": "(308) 161-8033",
"SalesAgentID1": "451-A",
"SalesAgentName1": "451-A 451-A",
"SalesAgentID2": "451-B",
"SalesAgentName2": "451-B 451-B",
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgentID6": "",
"SalesAgentName6": "",
"UpdateDate": "2024-12-10",
"UpdateTime": "15:40:33",
"ContactEmail": "",
"ContactName": "Tallman test",
"ContactPhone": " ",
"ShipComplete": false,
"CostTotal": -1084.66,
"CostType": "Item default",
"TotalWeight": 0,
"TotalLoad": 0,
"StatusType": "",
"dtCreditMemoHeaderMessage": [
{
"BranchID": "DENTON",
"OrderID": 3530,
"MessageType": "H",
"MessageText": "Your business is appreciated."
},
{
"BranchID": "DENTON",
"OrderID": 3530,
"MessageType": "F",
"MessageText": "Please retain your invoice for your records."
}
],
"dtCreditMemoDetail": [
{
"BranchID": "DENTON",
"OrderID": 3530,
"Sequence": 1,
"DisplaySequence": 1,
"LineType": "CM",
"ItemCode": "DuctTape",
"ItemSize": "1.88x 60 yds",
"ItemDescription": "Black Duct Tape",
"TotalOrderedQuantity": -1,
"QuantityUOM": "EA",
"GrossPrice": 1,
"NetPrice": 1,
"PriceUOM": "EA",
"DiscountDescription": "",
"Taxable": true,
"ExtendedPrice": -1,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": -15.56,
"ExtWeight": 0,
"ExtLoad": 0,
"dtCreditMemoDetailMessage": [
{
"BranchID": "DENTON",
"OrderID": 3530,
"Sequence": 1,
"MessageType": "D",
"MessageText": "Duct Tape: Don't Handle with care"
}
]
},
{
"BranchID": "DENTON",
"OrderID": 3530,
"Sequence": 2,
"DisplaySequence": 2,
"LineType": "CM",
"ItemCode": "EK-10001",
"ItemSize": "1\"",
"ItemDescription": "Boxes of (100) 10001 Wire Nuts",
"TotalOrderedQuantity": -1,
"QuantityUOM": "BOX",
"GrossPrice": 1,
"NetPrice": 0.99,
"PriceUOM": "EA",
"DiscountDescription": "1%",
"Taxable": true,
"ExtendedPrice": -148.5,
"TotalBackorderedQuantity": 0,
"TotalStagedQuantity": 0,
"TotalUnstagedQuantity": 0,
"TotalInvoicedQuantity": 0,
"LinkedTranType": "",
"LinkedTranID": 0,
"LinkedTranSequence": 0,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ExtCost": -1069.1046,
"ExtWeight": 0,
"ExtLoad": 0,
"dtCreditMemoDetailMessage": [
{
"BranchID": "DENTON",
"OrderID": 3530,
"Sequence": 2,
"MessageType": "D",
"MessageText": "EK-10001: Handle with care"
}
]
}
]
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 0,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of credit memos for a specified customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerID
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 - A one-to-many Parent/Child relationship exists between
dtCreditMemoanddtCreditMemoHeaderMessagethroughOrderID. - A one-to-many Parent/Child relationship exists between
dtCreditMemoDetailanddtCreditMemoDetailMessagethroughSequence.
Version Deployed
v539; approval status added to response in v554
CreditMemoMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 300152143,
"TranSeq": 1,
"MessageText": "Message Text Here",
"MessageType": "Detail",
"PrintOnForms": true
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a credit memo transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnForms
Response
- ReturnCode
MessageText
Notes
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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
CreditMemoUpdate
Sample Request
{
"request": {
"OrderID": 1000389247,
"CreditMemoUpdateJSON": {
"dsCreditMemoHeaderUpdate": {
"dtCreditMemoHeaderUpdate": [
{
"ExpectedPickUp": "2024-12-24"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 2,
"MessageText": "RMA not set on Credit Memo. Expected pick up date cannot be updated. (ID# 8241)"
}
}
Purpose
Updates the Expected Pick-Up date for an RMA credit memo.
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID
Optional Inputs
ExpectedPickUp
Response
- ReturnCode
MessageText
Notes
- This method allows the Expected Pick-Up date to be updated on credit memos flagged as RMA. The
OrderIDandExpectedPickUptags must be supplied to successfully update the Expected Pick-Up date on a credit memo. - API will fail if
OrderIDis not flagged as an RMA or ifOrderIDis cancelled or invoiced - A warning will be returned if the
ExpectedPickUpvalue is a past date. - If a blank value is sent for the
ExpectedPickUptag, the existing date will be cleared on the credit memo.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v613
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
"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 with a quicklist type of 'Sales' 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- BOM parent items are excluded from the quicklist response, unless set as an Auto complete WO
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 with a quicklist type of 'Sales' 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- BOM parent items are excluded from the quicklist response, unless set as an Auto complete WO
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
QuoteCreate
Sample Request
{
"request": {
"QuoteHeaderJSON": {
"dsQuoteHeaderRequest": {
"dtQuoteHeaderRequest": [
{
"CustomerID": "777",
"ShipToSequence": 1,
"SaleType": "WH",
"RequestedDeliveryDate": "2021-09-15",
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"CustomerPO": "",
"AcknowledgementEmailAddress": "",
"AcknowledgementEmailAddress2": "",
"AcknowledgementFaxNumber": "",
"ShipToName": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "",
"ShipToPhone": "",
"OrderMessage": "",
"ShipVia": "",
"ActivationDate": "2024-02-23",
"CloseDate": "2025-02-14",
"ExternalSource": "Amazon",
"ExternalProjectID": "AM12345",
"SourceLogin": ""
}
],
"dtQuoteHeaderNotesRequest": [
{
"OrderNote": "Hold order",
"HotNote": true
},
{
"OrderNote": "Must ship on time",
"HotNote": false
}
]
}
},
"OrderItemJSON": {
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "jfsl2",
"OrderQty": 2,
"UOM": "EA",
"Charge": false,
"Price": 1.6,
"PriceUOM": "EA",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"ShippingBranch": "",
"DetailGroupID": "Attic",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false,
"TemplateItemCode": "TEMPLATERKE",
"NonStockSize": "Large",
"NonStockDescription": "",
"NonStockExtDescription": "",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "634-980",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 12,
"NonStockCostUOM": "EA"
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 0,
"UOM": "",
"Price": 0,
"PriceUOM": "",
"PriceOverride": false
}
]
}
}
}
}
Sample Response
{
"response": {
"NewOrderID": 738,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new quote
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceItemCodeOrderQty- UOM for each detail record
Optional Inputs
- Remaining fields in the
dtQuoteHeaderRequest,dtOrderItemRequest, ordtOrderItemDimensionRequestnot already referenced
Response
- ReturnCode
MessageTextNewOrderID
Notes
ContextIDcomes from Login- Valid values for
SaleTypecome from SaleTypesList - Valid values for
ItemCodeand relatedThickness,WidthandLengthcome from ItemsList or ItemsInChunksList - Valid values for
CustomerIDcome from CustomersList or CustomerShiptoList - Valid values for
ShiptoSequencecome from CustomerShiptoList RequestedDeliveryDatein theQuoteCreaterequest can be seen inExpectedDatefrom the QuoteList response- This method contains a parent/child relationship between
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see the Parent/Child relationship topic for more information dtOrderItemDimensionRequestmust be included in the request even if the item is not a dimensional item- If any of the ship-to address tags are sent in with a value, the system clears out the other ship-to address fields instead of using the default values. For example, if you send in a value in only the
ShipToAddress1tag, the city and state on the newly created Quote will be blank. If you override a ship-to address, you must send in all relevant ship-to address tags. The tags included in the ship-to address fields are as follows:ShipToName,ShipToAddress1,ShipToAddress2,ShipToAddress3,ShipToCity,ShipToState,ShipToZip,ShipToCountry,ShipToPhone.- If all ship-to address tags have a value of blank, or none of them are sent in the request, then the system uses the default ship-to address values.
- If
UseItemConvertPriceAndUOM=true, the process converts the price and price UOM to the order qty UOM if all the following criteria are met:PriceOverride=false- Convert price/price UOM to match order field on the item record is set in Agility
- The UOM sent in the
dtOrderItemRequestdoes not match the SO/Quote UOM on the item record in Agility
- This method allows customer charges and order costs to be added to the quote. If either
Charge= True orOrderCost= True in thedtOrderItemRequest, then theItemCodevalue must correspond to a valid Charge type or Cost type in Agility, and thePriceis the amount applied to the order. All other tags in thedtOrderItemRequestare ignored.- You can only add customer charges and order costs with the record type of header charge, header charge allocated to detail, header charge calculated by item detail, or header cost.
- The customer charge or order cost is added with a fixed amount basis.
- If the
Priceis greater than or equal to 0, then the customer charge or order cost applies as a Charge or Cost, respectively. - If the
Priceis less than 0, then the customer charge or order cost applies as a Refund or Cost Reduction, respectively.
- The
AddPermanentDetailGroupIDtag determines if a permanent detail group record is created for the detail group received in the request. DepartmentName,DepartmentNumber,APIPriceSourceType, andAPIPriceSourceRef, while displayed as inputs, are not operational for this method and are reserved for future use.- The ‘Require Template for Non-Stock’ security action will not be read
- If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent item- If any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
- If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also true - If a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also true - If a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also true - A Quotation form for the created quote is sent to the emails provided in the
AcknowledgementEmailAddressandAcknowledgementEmailAddress2tags or the fax number provided in theAcknowledgementFaxNumbertag. If none of the tags are populated, a Quotation form is not sent.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v552; fields added in v602, v609, and v610
QuoteCreateValidate
Sample Request
{
"request": {
"dsQuoteHeaderRequest": {
"dtQuoteHeaderRequest": [
{
"CustomerID ": "INC321",
"ShipToSequence": 1,
"SaleType": "WH",
"RequestedDeliveryDate": "2024-01-31",
"TransactionReference": "",
"TransactionJob ": "",
"OrderedBy": "API",
"CustomerPO": "",
"AcknowledgementEmailAddress": "",
"AcknowledgementEmailAddress2": "",
"AcknowledgementFaxNumber": "",
"ShipToName ": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity ": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "",
"ShipToPhone": "",
"OrderMessage": "test",
"ShipVia": "FedEx",
"ActivationDate": "2024-01-31",
"CloseDate": "2025-01-31",
"ExternalSource": "Roof Hub",
"ExternalProjectID": "RH12345",
"SourceLogin": ""
}
],
"dtQuoteHeaderNotesRequest": [
{
"OrderNote": "Hold order",
"HotNote": true
},
{
"OrderNote": "Must ship on time",
"HotNote": false
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "1.5FOAM",
"OrderQty": 22,
"UOM": "EACH",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Roof",
"AddPermanentDetailGroupID": true,
"UseGroupAsDefaultNewItems": true,
"TemplateItemCode": "PI-SL-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I Joist - residential",
"NonStockExtDescription": "Flanges - LVL",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 125,
"NonStockCostUOM": "BF"
},
{
"Sequence": 2,
"ItemCode": "",
"OrderQty": 200,
"UOM": "BF",
"Charge": false,
"Price": 0,
"PriceUOM": "BF",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Framing",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": true
},
{
"Sequence": 3,
"ItemCode": "3068SLAB",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Foundation",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 2,
"Thickness": 2,
"Width": 4,
"Length": 10,
"OrderQty": 30,
"UOM": "PC",
"Price": 0,
"PriceUOM": "0",
"PriceOverride": false
}
]
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtOrderItemDimensionRequest",
"AuditRecordIndex": "Sequence: 2, Thickness: 1, Width: 4, Length: 10",
"AuditText": "Invalid dimension of T=1 W=4 L=10 for 141730-RL. (ID# 1143)"
},
{
"AuditSequence": 2,
"AuditType": "Failure",
"AuditTable": "dtOrderItemRequest",
"AuditRecordIndex": "Sequence: 1, Item code: 2827",
"AuditText": "Order Qty cannot be negative for Item 2827. (ID# 1662)"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Validates the creation of a new quote order and new items
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShiptoSequenceItemCodeOrderQty
Optional Inputs
- Remaining fields in the
dtQuoteHeaderRequest,dtQuoteHeaderNotesRequest,dtOrderItemRequest, ordtOrderItemDimensionRequestnot already referenced
Response
- ReturnCode
MessageText
Notes
When the following tags are included in the request a value is required.
ChargePriceOverrideOrderCostSendMsgToWMSSendMsgToWMSOverride
Refer to the Notes in the QuoteCreate method.
Review the
dsAuditResultsto identify changes needed in the request in order for the validation to be successful.The ‘Require Template for Non-Stock’ security action will not be read
If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent itemIf any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also trueIf a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also trueIf a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also true
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Refer to the relationships section in the QuoteCreate method
Version Deployed
v609; fields added in v610
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
QuoteID
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
QuoteDetailsDelete
Sample Request
{
"request": {
"OrderID": 300160083,
"DeleteReleasedDetails": true,
"QuoteDetailsDeleteJSON": {
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1
},
{
"Sequence": 2
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtOrderItemRequest",
"AuditRecordIndex": "Sequence: 1",
"AuditText": "Quote detail sequence 1 not found. (ID# 2381)"
}
]
}
},
"ReturnCode": 0,
"MessageText": "See audit results for failures"
}
}
Purpose
Deletes an existing quote detail record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDSequence
Optional Inputs
N/A
Response
- ReturnCode
MessageText
Notes
- The value in the
DeleteReleasedDetailtag determines if line items with quantity released can be deleted.- Valid values are 'true' and 'false'
- If the tag is not sent in the request, details with quantity released will not be deleted
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Quote details come from QuoteList
Version Deployed
v610
QuoteDetailsUpdate
Sample Request
{
"request": {
"OrderID": 1000340097,
"QuoteDetailsUpdateJSON": {},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 3,
"OrderQty": 800,
"UOM": "BF",
"UseItemConvertPriceAndUOM": false,
"Price": 100,
"PriceUOM": "MBF",
"ApplyPriceToAllDimensions": true,
"PriceSubjectToFurtherDiscounts": false,
"PriceOverride": true,
"DetailGroupID": "Driveway",
"AddPermanentDetailGroupID": true,
"UseGroupAsDefaultNewItems": false,
"dtOrderItemDimensionRequest": [
{
"Sequence": 3,
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"OrderQty": 200,
"UOM": "BF"
}
]
}
]
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": "",
"AuditResults": {
"dsAuditResults": {}
}
}
}
Purpose
Updates an existing quote detail record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDSequence
Optional Inputs
OrderQtyUOMUseItemConvertPriceAndUOMPricePriceUOMPriceOverrideDetailGroupIDAddPermanentDetailGroupIDUseGroupAsDefaultNewItems
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The item being updated must meet the following criteria in order to be successfully updated:
- Item is allowed in the API
- Item is not discontinued
- Item is not a template item
- If updating a dimension on an item,
Thickness,Width, and/orLengthare required based on the item type. If the existing item has tallies specified, dimension information must be sent in throughdtOrderItemDimensionRequest. In addition, theOrderQtyandUOMmust be specified at the dimension level. Use thePieceCountfield whenOrderQtyhas a value of “UNIT”. Sheet Good item types will require theWidthandLengthto match existing item. - If
UseItemConvertPriceAndUOM= 'true', the process converts the price and price UOM to the order qty UOM if all the following criteria are met:- Convert price/price UOM to match order field on the item record is set in Agility
- The
UOMsent in thedtOrderItemRequestdoes not match the Quote UOM on the item record in Agility
- If
PriceOverride= 'false', no updates will be made to the detail price even ifPriceandPriceUOMvalues are sent - If
PriceSubjectToFurtherDiscounts= 'true', and the detail being updated had discounts applied before, the discounts will continue to be applied after the update; if value = 'false', the discounts will be updated to zero - If the existing detail has pricing by dimension and
ApplyPriceToAllDimensions= 'true', the price on the dimensions will be updated with the Price value sent; if value = 'false', the item update will fail - Item update fails if updating Price for a detail group header item with the ‘Price Detail Items only’ option set
- Item update fails if updating Price for a non-detail group header item that has a detail group assigned and the group header for that group has the Pricing flag set to ‘Price Header Item only’
- If
PriceOveride= 'false', no price updates are made to the quote detail even ifPriceandPriceUOMvalues are included - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Quote details come from QuoteList
- Valid values for a sequence’s thickness, width, and length come from ItemList or ItemsInChunksList
- This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see Parent/Child relationship topic for more information.
Version Deployed
v610
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": "",
"ExternalSource": "AMAZON",
"ExternalProjectID": "AM12345",
"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": "",
"DetailGroupID": "Basement",
"TotalReleasedQuantity": 4,
"TotalRemainingQuantity": 5.5
}
]
}
]
}
},
"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 - A value of <all> can be specified in
CustomerID- A value must also be specified in
SearchByandSearchValue - Specify 0 as the
ShipToSequence
- A value must also be specified in
- 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
- Valid values for
SearchBy:- Order ID
- Quote ID
- Customer PO
- Reference #
- Job #
- External Source
- External Project ID
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
539; fields added in v609
QuoteMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 12345,
"ShipmentNum": 1,
"TranSeq": 1,
"MessageText": "Message Text Here",
"MessageType": "Detail",
"PrintOnForms": true,
"SendToWMS": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a quote transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnFormsSendToWMS
Response
- ReturnCode
MessageText
Notes
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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
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
QuoteRelease
Sample Request
{
"request": {
"QuoteReleaseJSON": {
"dsQuoteReleaseSettingsRequest": {
"dtQuoteReleaseSettingsRequest": [
{
"OrderID": 1000380465,
"ReleaseRule": "Release by item",
"AppendSalesOrderID": 0,
"SaleType": "",
"CombineLikeItems": true,
"RecalculateOverriddenExpDate": true
}
]
},
"dsQuoteReleaseItemRequest": {
"dtQuoteReleaseItemRequest": [
{
"Sequence": 1,
"ReleaseQuantity": 240,
"ReleaseUOM": "LF",
"dtQuoteReleaseItemDimRequest": [
{
"Sequence": 1,
"Thickness": 2,
"Width": 4,
"Length": 10,
"ReleaseQuantity": 100,
"ReleaseUOM": "LF",
"PieceCount": 0
},
{
"Sequence": 1,
"Thickness": 2,
"Width": 4,
"Length": 12,
"ReleaseQuantity": 120,
"ReleaseUOM": "LF",
"PieceCount": 0
}
]
},
{
"Sequence": 2,
"ReleaseQuantity": 25,
"ReleaseUOM": "RL"
},
{
"Sequence": 3,
"ReleaseQuantity": 50,
"ReleaseUOM": "EA"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 2,
"AuditType": "Failure",
"AuditTable": "dtQuoteReleaseOrderItem",
"AuditRecordIndex": "Sequence: 2",
"AuditText": "Item was previously released"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Fully or partially release an active/open quote to a sales order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDReleaseRule- 'Release full quote' or 'Release by item'
Optional Inputs
- Remaining fields in
dtQuoteReleaseSettingsRequest,dtQuoteReleaseItemRequest, anddtQuoteReleaseDimRequestnot already referenced
Response
- ReturnCode
MessageTextReleasedToOrderIDdsAuditResults
Notes
- Processes not allowed with this method
- Releasing by Detail Group ID
- Creating separate sales orders for each quote detail
- Negative quantities
- Security action ‘Release Items From Price Hold’ is read for this method
- If granted, price hold items are automatically approved on the sales order
- If denied, price hold status is copied from the quote to the sales order
- API will fail if sales order value sent in the
AppendSalesOrderIDtag is invoiced or canceled
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDcome from QuoteList - Valid values for
AppendSalesOrderIDcome from SalesOrderList - This method contains a parent/child relationship between the
dtQuoteReleaseItemRequestanddtQuoteReleaseDimRequest. Please see the Parent/Child relationship topic for more information.
Version Deployed
v610
QuoteUpdate
Sample Request
{
"request": {
"OrderID": 447,
"QuoteHeaderUpdateJSON": {
"dsQuoteHeaderUpdateRequest": {
"dtQuoteHeaderUpdateRequest": [
{
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"CustomerPO": "",
"ShipVia": "",
"RequestedDeliveryDate": "2024-03-28",
"ActivationDate": "",
"CloseDate": "",
"ExternalSource": "",
"ExternalProjectID": ""
}
]
}
},
"OrderItemUpdateJSON": {
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "BLANK",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Driveway",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": true
},
{
"Sequence": 2,
"TemplateItemCode": "PI-BLANK-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I-Joist",
"NonStockExtDescription": "Flanges - LVL; web - OSB",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800555",
"NonStockSupplierShipFromSequence": 51,
"NonStockSupplierPartNumber": "NonStockXref",
"NonStockProductGroupMajor": "MISC2",
"NonStockProductGroupMinor": "MATRLS2",
"NonStockPriceCodeMajor": "MISC2",
"NonStockPriceCodeMinor": "MATRLS2",
"NonStockCost": 7.11,
"NonStockCostUOM": "EA",
"NonStockSize": "AJS-20",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Den",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 0,
"UOM": "",
"Price": 0,
"PriceUOM": "",
"PriceOverride": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates header information and/or adds new items to an existing quote
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID
Value Required
- The following inputs require a value due to data type:
ChargePriceOverrideOrderCostPrintMsgOnFormsPrintMsgOnFormsOverrideSendMsgToWMSSendMsgToWMSOverride
Optional Inputs
- All fields in
dtQuoteHeaderUpdateRequest - Remaining fields in the
dtOrderItemRequest, ordtOrderItemDimensionRequestnot already referenced
Response
- ReturnCode
MessageText
Notes
- This method allows specific fields on the quote header to be updated
- This method allows new items to be added to an existing quote. Existing items may not be updated or deleted by this method.
- Each new detail must have
OrderQty> 0 - If
UseItemConvertPriceAndUOM=true, the process converts the price and UOM to the order qty UOM if all the following criteria are met:PriceOverride=false- Convert price/price UOM to match order field on the item record is set in Agility
- The UOM sent in the
dtOrderItemRequestdoes not match the SO/Quote UOM on the item record in Agility
- 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 - If the
ShipViavalue sent in is invalid, the entire request fails and no updates are completed - Use the
PartNumberfield if the item being ordered is a customer part number. When populated thePartNumberis read first before theItemCodeusing the following search hierarchy.- Search the item cross reference hierarchy for a match to the
PartNumbersubmitted in the request. If a match is found the quote detail item cross reference field is populated with thePartNumbervalue. - Search the item cross reference hierarchy for a match to the
ItemCodesubmitted in the API request. If a match is found the sales order detail item cross reference field is populated with theItemCodevalue. - Search for a valid Agility item code that matches the
ItemCodesubmitted in the API request. - Search for a valid Agility item code that matches the
PartNumbersubmitted in the API request.
- Search the item cross reference hierarchy for a match to the
- This method allows customer charges and order costs to be added or updated on an existing quote. If either
Charge=TrueorOrderCost=Truein thedtOrderItemRequest, then theItemCodevalue must correspond to a valid Charge type or Cost type in Agility, and the Price is the amount applied to the quote. All other tags in thedtOrderItemRequestare ignored.- You can only add or update customer charges and order costs with the record type of header charge, header charge allocated to detail, header charge calculated by item detail, or header cost.
- The customer charge or order cost is added or updated with a fixed amount basis.
- If the
Priceis greater than or equal to 0, then the customer charge or order cost applies as a Charge or Cost, respectively. - If the
Priceis less than 0, then the customer charge or order cost applies as a Refund or Cost Reduction, respectively.
- The ‘Require Template for Non-Stock’ security action will not be read
- If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent item- If any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
- If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also true - If a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also true - If a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also true - To update header information only, exclude the
dtOrderItemRequestanddtOrderItemDimensionRequestdata tables from the request
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDcome from QuoteList or fromNewOrderIDreturned from QuoteCreate - This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see the Parent/Child relationship topic for more information.
Version Deployed
v609; fields added in v610
QuoteUpdateValidate
Sample Request
{
"request": {
"OrderID": 2046,
"QuoteHeaderUpdateJSON": {
"dsQuoteHeaderUpdateRequest": {
"dtQuoteHeaderUpdateRequest": [
{
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"CustomerPO": "",
"ShipVia": "",
"RequestedDeliveryDate": "2024-03-28",
"ActivationDate": "2024-01-01",
"CloseDate": "2024-02-29",
"ExternalSource": "Amazon",
"ExternalProjectID": "AM12345"
}
]
}
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "BLANK",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Driveway",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": true
},
{
"Sequence": 2,
"TemplateItemCode": "PI-BLANK-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I-Joist",
"NonStockExtDescription": "Flanges - LVL",
"NonStockCopyCustomFields": true,
"NonStockSupplierID":"800555",
"NonStockSupplierShipFromSequence":51,
"NonStockSupplierPartNumber":"NonStockXref",
"NonStockProductGroupMajor":"MISC2",
"NonStockProductGroupMinor":"MATRLS2",
"NonStockPriceCodeMajor":"MISC2",
"NonStockPriceCodeMinor":"MATRLS2",
"NonStockCost":7.11,
"NonStockCostUOM":"EA2",
"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": "",
"DetailGroupID": "Den",
"AddPermanentDetailGroupID": "false",
"UseGroupAsDefaultNewItems": false
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 0,
"Thickness": 0,
"Width": 0,
"Length": 0,
"OrderQty": 0,
"UOM": "",
"Price": 0,
"PriceUOM": "",
"PriceOverride": false
}
]
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtOrderItem",
"AuditRecordIndex": "Sequence: 1, Item code: BLANK, Part number: ",
"AuditText": "Invalid Item of BLANK. (ID# 1141)"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Validates updating header information and/or adding new items to an existing quote
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID
Value Required
- The following inputs require a value due to data type:
ChargePriceOverrideOrderCostPrintMsgOnFormsPrintMsgOnFormsOverrideSendMsgToWMSSendMsgToWMSOverride
Optional Inputs
- All fields in
dtQuoteHeaderUpdateRequest - Remaining fields in the
dtOrderItemRequest, ordtOrderItemDimensionRequestnot already referenced
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Refer to the Notes in the QuoteUpdate method
- Review the
dsAuditResultsto identify changes needed in the request in order for the validation to be successful - The ‘Require Template for Non-Stock’ security action will not be read
- If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent item- If any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
- If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also true - If a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also true - If a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also true
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Refer to the relationships section in the QuoteUpdate method
Version Deployed
v609; fields added in v610
SalesOrderACHPayment
Sample Request
{
"request": {
"SalesOrderACHPaymentJSON": {
"dsPayment": {
"dtPayment": [
{
"Type": "Pending",
"BankGuid": "191223333b222ec9a-cab9-c111-b111-e791e100b111",
"dtTransaction": [
{
"TransactionID": 1000000001,
"AmountTendered": 10.00
}
]
},
{
"Type": "Payment",
"BankGuid": "191223333b222ec9a-cab9-c111-b111-a222e211a333",
"dtTransaction": [
{
"TransactionID": 1000000001,
"PaymentID": "12345678901234567890",
"AmountTendered": 15.00
},
{
"TransactionID": 1000000002,
"PaymentID": "12345678901234567890",
"AmountTendered": 20.00
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditText": "Required field missing - BankGuid. (ID# 141)"
},
{
"AuditSequence": 2,
"AuditType": "Failure",
"AuditText": "1000000001 not found. (ID# 2381)"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Creates an ACH payment or an ACH pending payment
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TypeBankGUIDTransactionIDAmountTendered
Optional Inputs
PaymentID(only valid for Type of "Payment")
Response
- ReturnCode
MessageText
Notes
- You can send both Types at once, or one at a time.
- Type of Pending creates an SO_PENDING_PAYMENT record to be used for processing the ACH payment 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 applies a deposit to the specified transaction, regardless of how the Ability Payment Method is set to process, and place it on the NACHA file. It will not automatically send the ACH info out to the bank.
- The
BankGUIDinput is a system-assigned value that uniquely identifies the Customer Bank record. This is not the bank account. - 0.00
AmountTenderedfor Pending Type defaults to order total amount on the sales order. PaymentIDcan be provided for the Payment type if you do not wish the value to be system-assigned.- Overpayments always process as a deposit for the Payment type.
- User must have data allocations for the customer assigned to the sales order for which the payment is being applied.
Relationships
ContextIdandBranchcome from LoginBankGUIDcomes from CustomerACHBankListTransactionIDcomes from SalesOrderList
Version Deployed
v607
SalesOrderCancel
Sample Request
{
"request": {
"SalesOrderID": 300151526,
"OrderCancelJSON": {
"dsOrderCancel": {
"dtOrderCancel": [
{
"ReasonCode": "UE",
"Comment": "User entered in error",
"CancelLinkedTran": true,
"AllowLinkedPrintedTran": true,
"SendS855": false,
"SendS870": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Cancels a specified sales order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderID
Optional Inputs
- Remaining fields in the
OrderCancelJSON
Response
- ReturnCode
MessageText
Notes
- The following rules apply in order for a sales order to be successfully canceled:
- Header status must either be blank or staged if it has a direct sale type
- Transaction cannot be a shipping sales order
- No printed work orders are linked to any sales order detail items or work order components on a sales order detail item
- No printed remans are linked to any shipping sales order items when the requesting sales order is attempting to be canceled
ReasonCodecorresponds to the Cancel Sales Order Reason Code in AgilityCommentallows you to specify a comment for the Reason CodeCancelLinkedTrancontrols whether to cancel the linked transaction to the sales order. If the sales order sale type is direct, then the linked purchase order is canceled regardless of the value in this field. If this field is not included in the request, the system does not cancel the linked transaction.AllowLinkedPrintedTrancontrols whether the sales order can be cancelled based on the print status of the linked transaction. If this field is not included in the request, the system does not cancel the linked transaction if any of the linked transactions have been printed.SendS855allows you to transmit an S855 EDI record on cancelling the sales order which was created from the R855 EDI process. If this field is not included in the request, the system does not send the S855.SendS870allows you to transmit an S870 EDI record on cancelling the sales order which was created from the R870 EDI process. If this field is not included in the request, the system does not send the S870.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v553
SalesOrderCreate
Sample Request
{
"request": {
"dsOrderHeaderRequest": {
"dtOrderHeaderRequest": [
{
"CustomerID ": "BCH",
"ShipToSequence": 1,
"TransactionReference": "",
"TransactionJob ": "",
"OrderedBy": "API",
"CustomerPurchaseOrder": "",
"CheckPORequiredSettings": false,
"CheckPODuplicateSettings": false,
"AcknowledgementEmailAddress": "",
"AcknowledgementEmailAddress2": "",
"AcknowledgementFaxNumber": "",
"PrePaid": false,
"ShipToName ": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity ": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "",
"ShipToPhone": "",
"TaxCode": "",
"SaleType": "WH",
"OrderMessage": "test",
"OrderHold": true,
"ShipVia": "FedEx",
"ShipComplete": false,
"ShipCompleteOverride": false,
"CreateShipment": false,
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": null,
"MiscDate2": null,
"APISourceID": "",
"SalesAgent1": "AGENT1",
"SalesAgent2": "AGENT2",
"SalesAgent3": "",
"SalesAgent4": "",
"SalesAgent5": "",
"SalesAgent6": "",
"SalesAgent1PctOfOrder": 50,
"SalesAgent2PctOfOrder": 25,
"SalesAgent3PctOfOrder": 0,
"SalesAgent4PctOfOrder": 0,
"SalesAgent5PctOfOrder": 0,
"SalesAgent6PctOfOrder": 0,
"RouteID": "SATURDAYAM",
"ExpectedDate": "2022-12-31",
"OverrideShippingTrackingData": true,
"ShippingTrackingSignatureReq": true,
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": true,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "Delivery can occur between 0600 - 2400 if the office is staffed during that time",
"FreightTerms": "FOB",
"PaymentTerms": "NET30",
"SourceLogin": ""
}
],
"dtOrderHeaderNotesRequest": [
{
"OrderNote": "Hold order",
"HotNote": true
},
{
"OrderNote": "Must ship on time",
"HotNote": false
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "1.5FOAM",
"OrderQty": 22,
"UOM": "EACH",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"Sequence": 2,
"ItemCode": "",
"TemplateItemCode": "PI-SL-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I Joist - residential",
"NonStockExtDescription": "Flanges - LVL",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 12.0,
"NonStockCostUOM": "EA",
"OrderQty": 200,
"UOM": "BF",
"Charge": false,
"Price": 0,
"PriceUOM": "BF",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Foundation",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": true
},
{
"Sequence": 3,
"ItemCode": "3068SLAB",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 2,
"Thickness": 2,
"Width": 4,
"Length": 10,
"OrderQty": 30,
"UOM": "PC",
"Price": 0,
"PriceUOM": "0",
"PriceOverride": false
}
]
},
"dsOrderItemComponentRequest": {
"dtOrderItemComponentRequest": [
{
"OrderItemSequence": 3,
"ComponentSequence": 1,
"BomType": "o",
"ItemCode": "ZLH",
"PartNumber": "",
"OrderQty": 1,
"Price": 0,
"PriceOverride": true,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"TallyUOM": "",
"PrintFlag": false,
"SundryCost": 0,
"SundryCostOverride": false,
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"UOM": "",
"ShipLoose": true
}
]
},
"dsTaxAuthorityRequest": {
"dtTaxAuthorityRequest": [
{
"JurisdictionType": "State",
"State": "NE",
"County": "Otoe",
"City": "Cook",
"Description": "CookNE",
"SalesTaxRate": 0.0512
}
]
}
}
}
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
CustomerIDShipToSequenceItemCodeOrderQtyfor each detail
Value Required
PrePaidShipCompleteShipCompleteOverrideCreateShipmentChargePriceOverrideOrderCostSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostOverride
Optional Inputs
- Remaining fields in the
dtOrderHeaderRequest,dtOrderHeaderNotesRequest,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 created 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. Note: For tally calc type items, you must order by total footage and not by dimension. - The dimension must match an existing dimension record for the item.
- The
OrderQtyandUOMmust also be specified at the dimension level. - If there are multiple inputs in the
dtOrderItemDimensionRequestfor the same Sequence value, the dimensions are added as tally quantities for the same sales order line.
- Values for
Use the
PartNumberfield if the item being ordered is a customer part number. When populated thePartNumberis read first before theItemCodeusing the following search hierarchy.- Search the item cross reference hierarchy for a match to the
PartNumbersubmitted in the request. If a match is found the sales order detail item cross reference field is populated with thePartNumbervalue. - Search the item cross reference hierarchy for a match to the
ItemCodesubmitted in the API request. If a match is found, the sales order detail item cross reference field is populated with the ItemCode value. - Search for a valid Agility item code that matches the
ItemCodesubmitted in the API request. - Search for a valid Agility item code that matches the
PartNumbersubmitted in the API request.
- Search the item cross reference hierarchy for a match to the
An item must be active in the branch to be able to add the item to the order. If the item is not active, the entire order will fail.
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 and Price fields 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.If
UseItemConvertPriceAndUOM= true, the process converts the price and price UOM to the order qty UOM if all the following criteria are met:PriceOverride= false- Convert price/price UOM to match order field on the item record is set in Agility
- The UOM sent in the
dtOrderItemRequestdoes not match the SO/Quote UOM on the item record in Agility
If the sale type in Agility is set to Auto tag items for direct transfer, all items on the order will be set to fill from the branch populated in the
ShippingBranchfield for the first item sent in the method. If theShippingBranchfield is not sent in the method, the default transfer branch assigned to the first item on the item branch record is used.If an item is set to fill from BT and the
ShippingBranchfield is not sent in the method, the default transfer branch is assigned to the item branch record.When a
TemplateItemCodeis populated in thedtOrderItemRequest, theItemCodeis ignored. The following fields apply to the non-stock item created from theTemplateItemCodevalue:NonStockSize,NonStockDescription,NonStockExtDescription,NonStockCopyCustomFields. Unless theNonStockCopyCustomFieldsis set to true the system does not copy custom item fields.If the SalesAgent tags from the
dtOrderHeaderRequestis not sent in, the system uses the sales agent specified in the User Profile and then the default from the customer ship-to.If the
SalesAgentPctOfOrdertags from thedtOrderHeaderRequestare sent in with a value of 0, the system uses the default percentages from the SO Parameter. If the SO parameter Default Percentage is not defined, then the system uses the default percentages from the customer ship-to record.This method allows you to specify shipping tracking information fields when
OverrideShippingTrackingData=true. The values from the following shipping tracking fields save to the corresponding fields on the sales order and bypass any customer ship-to defaults:ShippingTrackingInsuranceReq,ShippingTrackingSignatureReq,ShippingTrackingSaturdayDelivery,ShippingTrackingSundayDelivery,ShippingTrackingDelvInstructions.If any of the ship-to address tags are sent in with a value, the system clears out the other ship-to address fields instead of using the default values. For example, if you send in a value in only the
ShipToAddress1tag, the city and state on the newly created SO will be blank. If you override a ship-to address, you must send in all relevant ship-to address tags. The tags included in the ship-to address fields are as follows:ShipToAddress1,ShipToAddress2,ShipToAddress3,ShipToCity,ShipToState,ShipToZip,ShipToCountry.- If all ship-to address tags have a value of blank, or none of them are sent in the request, then the system uses the default ship-to address values.
This method allows customer charges and order costs to be added to the sales order. If either
Charge= True orOrderCost= True in thedtOrderItemRequest, then theItemCodevalue must correspond to a valid Charge type or Cost type in Agility, and thePriceis the amount applied to the order. All other tags in thedtOrderItemRequestare ignored.- You can only add customer charges and order costs with the record type of header charge, header charge allocated to detail, header charge calculated by item detail, or header cost.
- The customer charge or order cost is added or updated with a fixed amount basis.
- If the
Priceis greater than or equal to 0, then the customer charge or order cost applies as a Charge or Cost, respectively. - If the
Priceis less than 0, then the customer charge or order cost applies as a Refund or Cost Reduction, respectively.
The ‘Require Template for Non-Stock’ security action will not be read
If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent itemIf any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also trueIf a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also trueIf a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also trueThe
AddPermanentDetailGroupIDtag determines if a permanent detail group record is created for the detail group received in the requestA Order Acknowledgement form for the created sales order is sent to the emails provided in the
AcknowledgementEmailAddressandAcknowledgementEmailAddress2tags or the fax number provided in theAcknowledgementFaxNumbertag. If none of the tags are populated, an Order Acknowledgement form is not sent.
Relationships
- Context ID and
Branchcome from Login - Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome fromCustomerShiptosList - Valid values for
ItemCodeand relatedThickness,WidthandLengthcome from ItemsList or ItemsInChunksList - Valid values for
ShippingBranchcome from BranchList - 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. - This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemComponentRequest. 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
v547, fields added in v552, v553, v555, v600, v602, v610, and v612
SalesOrderCreateValidate
Sample Request
{
"request": {
"dsOrderHeaderRequest": {
"dtOrderHeaderRequest": [
{
"CustomerID ": "BCH",
"ShipToSequence": 1,
"TransactionReference": "",
"TransactionJob ": "",
"OrderedBy": "API",
"CustomerPurchaseOrder": "",
"CheckPORequiredSettings": false,
"CheckPODuplicateSettings": false,
"AcknowledgementEmailAddress": "",
"AcknowledgementEmailAddress2": "",
"AcknowledgementFaxNumber": "",
"PrePaid": false,
"ShipToName ": "",
"ShipToAddress1": "",
"ShipToAddress2": "",
"ShipToAddress3": "",
"ShipToCity ": "",
"ShipToState": "",
"ShipToZip": "",
"ShipToCountry": "",
"ShipToPhone": "",
"TaxCode": "",
"SaleType": "WH",
"OrderMessage": "test",
"OrderHold": true,
"ShipVia": "FedEx",
"ShipComplete": false,
"ShipCompleteOverride": false,
"CreateShipment": false,
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": null,
"MiscDate2": null,
"APISourceID": "",
"SalesAgent1": "AGENT1",
"SalesAgent2": "AGENT2",
"SalesAgent3": "",
"SalesAgent4": "",
"SalesAgent5": "",
"SalesAgent6": "",
"SalesAgent1PctOfOrder": "50",
"SalesAgent2PctOfOrder": "25",
"SalesAgent3PctOfOrder": "",
"SalesAgent4PctOfOrder": "",
"SalesAgent5PctOfOrder": "",
"SalesAgent6PctOfOrder": "",
"RouteID": "SATURDAYAM",
"ExpectedDate": "2022-12-31",
"OverrideShippingTrackingData": true,
"ShippingTrackingSignatureReq": true,
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": true,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "Delivery can occur between 0600 - 2400 if the office is staffed during that time",
"FreightTerms": "FOB",
"PaymentTerms": "NET30",
"SourceLogin": ""
}
],
"dtOrderHeaderNotesRequest": [
{
"OrderNote": "Hold order",
"HotNote": true
},
{
"OrderNote": "Must ship on time",
"HotNote": false
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "1.5FOAM",
"OrderQty": 22,
"UOM": "EACH",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": ""
},
{
"Sequence": 2,
"ItemCode": "",
"TemplateItemCode": "PI-SL-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I Joist - residential",
"NonStockExtDescription": "Flanges - LVL",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 12.0,
"NonStockCostUOM": "EA",
"OrderQty": 200,
"UOM": "BF",
"Charge": false,
"Price": 0,
"PriceUOM": "BF",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": ""
},
{
"Sequence": 3,
"ItemCode": "3068SLAB",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "EA",
"PriceOverride": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": ""
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"dtOrderItemDimensionRequest": [
{
"Sequence": 2,
"Thickness": 2,
"Width": 4,
"Length": 10,
"OrderQty": 30,
"UOM": "PC",
"Price": 0,
"PriceUOM": "0",
"PriceOverride": false
}
]
},
"dsOrderItemComponentRequest": {
"dtOrderItemComponentRequest": [
{
"OrderItemSequence": 3,
"ComponentSequence": 1,
"BomType": "o",
"ItemCode": "ZLH",
"PartNumber": "",
"OrderQty": 1,
"Price": 0,
"PriceOverride": true,
"Thickness": 0,
"Width": 0,
"Length": 0,
"PieceCount": 0,
"TallyUOM": "",
"PrintFlag": false,
"SundryCost": 0,
"SundryCostOverride": false,
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"UOM": "",
"ShipLoose": true
}
]
},
"dsTaxAuthorityRequest": {
"dtTaxAuthorityRequest": [
{
"JurisdictionType": "State",
"State": "NE",
"County": "Otoe",
"City": "Cook",
"Description": "CookNE",
"SalesTaxRate": 0.0512
}
]
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtOrderHeader",
"AuditRecordIndex": "",
"AuditText": "Invalid Sales agent 1 of MWELL. (ID# 1141)"
},
{
"AuditSequence": 2,
"AuditType": "Failure",
"AuditTable": "dtOrderHeader",
"AuditRecordIndex": "",
"AuditText": "Invalid Sales agent 1 101. (ID# 1141)"
},
{
"AuditSequence": 3,
"AuditType": "Failure",
"AuditTable": "dtOrderItemDimension",
"AuditRecordIndex": "",
"AuditText": ""
},
{
"AuditSequence": 4,
"AuditType": "Failure",
"AuditTable": "dtOrderItemDimension",
"AuditRecordIndex": "",
"AuditText": ""
},
{
"AuditSequence": 5,
"AuditType": "Failure",
"AuditTable": "dtOrderItem",
"AuditRecordIndex": "",
"AuditText": ""
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Validates the creation of a new sales order, which can include BOM parent items with components, specified tax rates and a specified sale type, as well as a shipment
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDShipToSequenceItemCodeOrderQtyfor each detail
Value Required
PrePaidShipCompleteShipCompleteOverrideCreateShipmentChargePriceOverrideOrderCostSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostOverride
Optional Inputs
- Remaining fields in the
dtOrderHeaderRequest,dtOrderHeaderNotesRequest,dtOrderItemRequest,dtOrderItemDimensionRequest,dtOrderItemComponentRequestnot already referenced dtTaxAuthorityRequest
Response
- ReturnCode
MessageText- list of sales orders, including detail lines
Notes
- Refer to the Notes in the
SalesOrderCreatemethod. - Review the
dsAuditResultsto identify changes needed in the request in order for the validation to be successful.
Relationships
- Context ID and
Branchcome from Login - Alternate branches come from BranchList
- Refer to the Relationships section in the SalesOrderCreate method.
Version Deployed
v553; new fields added in v555, v600, v602, v610, and v612
SalesOrderDetailsDelete
Sample Request
{
"request": {
"SalesOrderID": 1000339477,
"OrderDetailsDeleteJSON": {
"dsDetailDeleteSettings": {
"dtDetailDeleteSettings": [
{
"UpdateLinkedTran": true,
"UpdateLinkedPrintedTran": true
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 2
},
{
"Sequence": 6
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes an existing sales order detail record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderIDSequence
Optional Inputs
UpdateLinkedTranUpdateLinkedPrintedTran
Response
- ReturnCode
MessageText
Notes
- The following rules apply in order for a sales order detail to be successfully deleted
- Item cannot have a locked contract price
- Item does not have any quantity that is picked, staged (when the order affects inventory) or invoiced
- Item is staged and does not affect inventory
- Item is not on a shipping sales order
- If item is a BOM parent, the work order status is Not Printed
- Item is not on a sales order with a source of EDI set to creates an in process S870 EDI process.
UpdateLinkedTrancontrols whether to cancel the linked transaction (such as a purchase order, work order or reman) to the sales order item. If the item does not affect inventory, then the linked purchase order is canceled regardless of the value in this field. If this field is not included in the request, the system does not cancel the linked transaction.UpdateLinkedPrintedTrancontrols whether to cancel the linked transaction to the item when it has been printed. If this field is not included in the request, the system does not cancel the linked transaction if it has been printed.- If the customer does not allow overpayments and an item deletion would cause an overpayment, the system does not allow the item to be deleted.
Relationships
ContextIdandBranchcome from Login- Valid sales order details come from SalesOrderList
Version Deployed
v554
SalesOrderDetailsUpdate
Sample Request
{
"request": {
"SalesOrderID": 1000340097,
"OrderDetailsUpdateJSON": {
"dsDetailUpdateSettings": {
"dtDetailUpdateSettings": [
{
"UpdateLinkedTran": false,
"UpdateLinkedPrintedTran": false
}
]
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"OrderQty": 60,
"UOM": "BF",
"UseItemConvertPriceAndUOM": false,
"DetailGroupID": "Deck",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false,
"dtOrderItemDimensionRequest": [
{
"Sequence": 1,
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"OrderQty": 6,
"UOM": "PC"
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": "",
"AuditResults": {
"dsAuditResults": {}
}
}
}
Purpose
Updates an existing sales order detail record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderIDSequenceOrderQtyUOM
Optional Inputs
- Fields within
dtDetailUpdateSettings
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The item being updated must be the following criteria in order to be successfully updated:
- Item is allowed in the API
- Item is not discontinued
- Item is not a template item
- Item is not a credit memo item
- Item is not a BOM parent item
- Item is not a ship loose item
- Item is not partially or fully invoiced
- Item is not partially or fully picked
- Item does not have contractor prices locked
- If item is staged, the sale type on the order does not affect inventory
- If updating a dimension on an item, values for
Thickness,Widthand/orLengthare required based on the item type. If the existing item has tallies specified, dimension information must be sent in throughdtOrderItemDimensionRequest. In addition, theOrderQtyandUOMmust be specified at the dimension level. Use thePieceCountfield when theOrderQtyhas a value of “UNIT”. Sheet Good item types will require the Width and Length to match existing item. UpdateLinkedTrancontrols whether to update the linked transaction (such as a purchase order or reman) to the sales order item. If the item does not affect inventory, then the linked purchase order is updated regardless of the value in this field. If this field is not included in the request, the system does not update the linked transaction.UpdateLinkedPrintedTrancontrols whether to update the linked transaction to the item when it has been printed. If this field is not included in the request, the system does not update the linked transaction if it has been printed.- If
UseItemConvertPriceAndUOM= true, the process converts the price and price UOM to the order qty UOM if all the following criteria are met: - Convert price/price UOM to match order field on the item record is set in Agility
- The UOM sent in the
dtOrderItemRequestdoes not match the SO/Quote UOM on the item record in Agility - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - The
AddPermanentDetailGroupIDtag determines if a permanent detail group record is created for the detail group received in the request
Relationships
ContextIdandBranchcome from LoginValid sales order details come from SalesOrderList
Valid values for a sequence’s thickness, width and length come from ItemList or ItemsInChunksList
This method contains a parent/child relationship between the
dtOrderItemRequestanddtOrderItemDimensionRequest. Please see Parent/Child relationship topic for more information
Version Deployed
v554; fields added in v600
SalesOrderList
Sample Request
{
"request": {
"SearchBy": "",
"SearchValue": "",
"CustomerID": "123161",
"ShipToSequence": 3,
"OrderDateRangeStart": null,
"OrderDateRangeEnd": null,
"ExpectedDateRangeStart": null,
"ExpectedDateRangeEnd": null,
"FetchOnlyChangedSince": null,
"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,
"ItemXrefUsedToOrder": "",
"RelatedQuoteBranchID": "CENTRALBRNCH",
"RelatedQuoteID": 300160114,
"RelatedQuoteExternalSource": "AMAZON",
"RelatedQuoteExternalProjectID": "AMZ-8970"
}
]
}
]
}
},
"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
- A value of <all> can be specified in
CustomerID- A value must also be specified in
SearchByandSearchValue - Specify 0 as the
ShipToSequence
- A value must also be specified in
- Valid values for
CustomerIDcome fromCustomersListor CustomerShiptoList - Valid values for
ShipToSequencecome from CustomerShiptoList - Valid values for
SearchByare Order ID, Quote ID, Job #, Reference #, and Customer PO - While this method can be called for any known valid sales order id, the
SearchByandSearchValueinputs allow the method to return a specific sales order - The
ItemXrefUsedToOrderdisplays the item cross reference field from the Sales order detail.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- This method has a Parent/Child relationship between
dtOrderanddtOrderDetailthroughOrderID. This can be a one to many relationship
Version Deployed
v539; ExpectedDateRange fields added v549; "Quote ID" Search by option added v610; RelatedQuoteID, RelatedQuoteExternalSource, and RelatedExternalProjectID tags added to the response in v610
SalesOrderMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 12345,
"ShipmentNum": "0",
"TranSeq": "1",
"MessageText": "Message Text Here",
"MessageType": "H",
"PrintOnForms": "true",
"SendToWMS": "false"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a sales order transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnFormsSendToWMSShipmentNum
Response
- ReturnCode
MessageText
Notes
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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
SalesOrderPayment
Sample Request
{
"request": {
"SalesOrderPaymentJSON": {
"dsPayment": {
"dtPayment": [
{
"Type": "Pending",
"PaymentAccountID": "6B0F870C-1B98-41E4-A023-339620538660",
"AllowTokenDelete": false,
"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,
"UseAgilitySurcharge": true,
"Surcharge": 0,
"SurchargeBasis": ""
}
]
}
]
}
}
}
}
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
TypePaymentAccountID(Pending and TokenPayment Type)ProcessorTransactionID(Payment Type)TransactionIDAmountTendered(Pending and TokenPayment Type)
Optional Inputs
AllowTokenDeleteUseAgilitySurchargeSurchargeSurchargeBasis
Response
- ReturnCode
MessageText
Notes
- Access to the Credit Card Interface must be granted to use this request.
- 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 No 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
TokenPaymentType - User must have data allocations granted for the customer assigned to the sales order for which the payment is being applied
- If
UseAgilitySurchargeistrue,SurchargeandSurchargeBasisare ignored. - If
UseAgilitySurchargeisfalse, the surcharge is calculated based on the values inSurchargeandSurchargeBasis.Surchargediscounts set at the bill-to or ship-to level are ignored. - If a surcharge is not defined on the payment method or the bill-to/ship-to customer is set to ‘Do not calculate’, you cannot add a surcharge via the
SurchargeandSurchargeBasisfields. - Surcharge fields apply only to Token Payments.
Relationships
ContextIdandBranchcome from LoginTransactionIDcomes from SalesOrderList
Version Deployed
v551
SalesOrderPaymentRecord
Sample Request
{
"request": {
"TransactionID": "1000365111",
"SalesOrderPaymentRecordJSON": {
"dsSalesOrderPayment": {
"dtSalesOrderPayment": [
{
"PaymentMethod": "DISCOVER",
"PaymentID": "0214230001",
"AmountTendered": 1000.0
},
{
"PaymentMethod": "Cash",
"PaymentID": "",
"AmountTendered": 250.0
}
]
}
}
}
}
Sample Response
{
"response": {
"SalesOrderPaymentRecordJSONResponse": {
"dsSalesOrderPaymentResponse": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Send sales order payment information received and processed by an outside source to Agility
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TransactionIDPaymentMethodAmountTendered
Optional Inputs
PaymentID
Response
- ReturnCode
MessageText
Notes
TransactionIDis a valid Agility sales order transaction number- The Agility sales order cannot be invoiced or cancelled
PaymentMethodis a valid Agility Payment Method code- An Agility Payment Method code with a ‘Type’ of ‘Reward’ is invalid for the API
AmountTenderedmust be > zeroPaymentIDis required in the API when the Agility Payment Method is set to require either an Authorization # or Check #- Regardless if set as required on the Agility Payment Method, driver’s license #, credit card #, and expiration date fields are not processed by the method
- Multiple payments can be received for a single sales order transaction
- Payments (including overpayments) are applied as Deposit on order for the transaction, regardless of how the Agility Payment Method is set to process
- The payment will be posted to G/L based on the Use branch cash account for POS setting on the Agility Payment Method
- The user running the method must have Data Allocations granted for the applicable customers.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
TransactionIDcomes fromSalesOrderListor returned inSalesOrderCreateresponse
Version Deployed
v603
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,
"SalesAgent1": "AGENT4",
"SalesAgent2": "AGENT6",
"SalesAgent3": "",
"SalesAgent4": "",
"SalesAgent5": "",
"SalesAgent6": "",
"SalesAgent1PctOfOrder": 50,
"SalesAgent2PctOfOrder": 5,
"SalesAgent3PctOfOrder": 0,
"SalesAgent4PctOfOrder": 0,
"SalesAgent5PctOfOrder": 0,
"SalesAgent6PctOfOrder": 0
}
]
}
},
"dsOrderItemRequest": {
"dtOrderItemRequest": [
{
"Sequence": 1,
"ItemCode": "BLANK",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Deck",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"Sequence": 2,
"TemplateItemCode": "PI-BLANK-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I-Joist",
"NonStockExtDescription": "Flanges - LVL; web - OSB ",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 12.0,
"NonStockCostUOM": "EA",
"OrderQty": 1,
"UOM": "EA",
"Charge": false,
"Price": 0,
"PriceUOM": "",
"PriceOverride": false,
"UseItemConvertPriceAndUOM": false,
"OrderCost": false,
"CustomerPOLineNumber": "",
"DepartmentName": "",
"DepartmentNumber": "",
"PartNumber": "",
"SKU": "",
"UPCCode": "",
"ItemMessage": "",
"PrintMsgOnForms": false,
"PrintMsgOnFormsOverride": false,
"SendMsgToWMS": false,
"SendMsgToWMSOverride": false,
"APIPriceSourceType": "",
"APIPriceSourceRef": "",
"DetailGroupID": "Deck",
"AddPermanentDetailGroupID": false,
"UseGroupAsDefaultNewItems": false
},
{
"ItemCode": "Freight Charge",
"Charge": true,
"Price": 50
},
{
"ItemCode": "Freight Cost",
"OrderCost": true,
"Price": 50
}
],
"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": "",
"ShipLoose": true
}
]
}
}
}
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
OrderID
Value Required
The following inputs require a value due to data type:
ChargePriceOverrideOrderCostPrintMsgOnFormsPrintMsgOnFormsOverrideSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostSundryCostOverride
Optional Inputs
- All fields in
dtOrderHeaderUpdateRequest - Remaining fields in
dtOrderItemRequest,dtOrderItemDimensionRequest,dtOrderItemComponentRequestnot 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 and non-stock items. Existing items may not be updated or deleted by this method
- Each new detail must have
OrderQty> 0 - If
UseItemConvertPriceAndUOM= true, the process converts the price and price UOM to the order qty UOM if all the following criteria are met: PriceOverride= false- Convert price/price UOM to match order field on the item record is set in Agility
- The UOM sent in the
dtOrderItemRequestdoes not match the SO/Quote UOM on the item record in Agility - 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 - When a
TemplateItemCodeis populated in thedtOrderItemRequest, theItemCodeis ignored. The following fields apply to the non-stock item created from theTemplateItemCodevalue:NonStockSize,NonStockDescription,NonStockExtDescription,NonStockCopyCustomFields. Unless theNonStockCopyCustomFieldsis set to true the system does not copy custom item fields. - If the
SalesAgenttags from thedtOrderHeaderRequestis not sent in, no update is made to the sales agent information on the order. - If the
SalesAgentPctOfOrdertags from thedtOrderHeaderRequestare sent in with a value of 0, No update is made to the sales agent information on the order. If anySalesAgentPctOfOrdertags are sent in with a valid value, all other sales agent percentages will be cleared. - Use the
PartNumberfield if the item being ordered is a customer part number. When populated the PartNumber is read first before theItemCodeusing the following search hierarchy.- Search the item cross reference hierarchy for a match to the
PartNumbersubmitted in the request. If a match is found the sales order detail item cross reference field is populated with thePartNumbervalue. - Search the item cross reference hierarchy for a match to the
ItemCodesubmitted in the API request. If a match is found the sales order detail item cross reference field is populated with theItemCodevalue. - Search for a valid Agility item code that matches the
ItemCodesubmitted in the API request. - Search for a valid Agility item code that matches the
PartNumbersubmitted in the API request.
- Search the item cross reference hierarchy for a match to the
- This method allows customer charges and order costs to be added or updated on an existing sales order. If either
Charge= True orOrderCost= True in thedtOrderItemRequest, then theItemCodevalue must correspond to a valid Charge type or Cost type in Agility, and thePriceis the amount applied to the order. All other tags in thedtOrderItemRequestare ignored.- You can only add or update customer charges and order costs with the record type of header charge, header charge allocated to detail, header charge calculated by item detail, or header cost.
- The customer charge or order cost is added or updated with a fixed amount basis.
- If the
Priceis greater than or equal to 0, then the customer charge or order cost applies as a Charge or Cost, respectively. - If the
Priceis less than 0, then the customer charge or order cost applies as a Refund or Cost Reduction, respectively.
- The ‘Require Template for Non-Stock’ security action will not be read
- If a value is sent in both the
ItemCodeandTemplateItemCodetagsItemCodevalue will not be readTemplateItemCodevalue will be read and used to create a non-stock item
TemplateItemCodevalue must be active, saleable, no order restrictions, and not a BOM parent item- If any of the following tags are not sent or sent with a blank value, values assigned to the
TemplateItemCodesent in the API will be used when creating the non-stock itemNonStockSizeNonStockDescriptionNonStockExtDescriptionNonStockProductGroupMajorNonStockProductGroupMinorNonStockPriceCodeMajorNonStockPriceCodeMinorNonStockCostNonStockCostUOM
- If a value is sent for the
NonStockProductGroupMajortag, then a value must also be sent for theNonStockProductGroupMinortag; the reciprocal is also true - If a value is sent for the
NonStockPriceCodeMajortag, then a value must also be sent for theNonStockPriceCodeMinortag; the reciprocal is also true - If a value is sent for the
NonStockCosttag, then a value must also be sent for theNonStockCostUOMtag; the reciprocal is also true - The
AddPermanentDetailGroupIDtag determines if a permanent detail group record is created for the detail group received in the request - To update header information only, exclude the
dtOrderItemRequestanddtOrderItemDimensionRequestdata tables from the request
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
dtOrderItemRequestanddtOrderitemDimensionRequest. Please see the Parent/Child Relationships topic for more information
Version Deployed
v550; new fields in added v553, v600, v610, and v612
SalesOrderUpdateValidate
Sample Request
{
"request": {
"OrderID": 2046,
"OrderHeaderUpdateJSON": {
"dsOrderHeaderUpdateRequest": {
"dtOrderHeaderUpdateRequest": [
{
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"CustomerPurchaseOrder": "",
"ShipVia": "",
"MiscField1": "",
"MiscField2": "",
"MiscField3": "",
"MiscField4": "",
"MiscField5": "",
"MiscField6": "",
"MiscField7": "",
"MiscField8": "",
"MiscField9": "",
"MiscField10": "",
"MiscField11": "",
"MiscField12": "",
"MiscDate1": null,
"MiscDate2": null,
"SalesAgent1": "AGENT4",
"SalesAgent2": "AGENT6",
"SalesAgent3": "",
"SalesAgent4": "",
"SalesAgent5": "",
"SalesAgent6": "",
"SalesAgent1PctOfOrder": 50,
"SalesAgent2PctOfOrder": 5,
"SalesAgent3PctOfOrder": 0,
"SalesAgent4PctOfOrder": 0,
"SalesAgent5PctOfOrder": 0,
"SalesAgent6PctOfOrder": 0
}
]
}
},
"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": ""
},
{
"Sequence": 2,
"TemplateItemCode": "PI-BLANK-A100",
"NonStockSize": "AJS-20",
"NonStockDescription": "I-Joist",
"NonStockExtDescription": "Flanges - LVL",
"NonStockCopyCustomFields": true,
"NonStockSupplierID": "800",
"NonStockSupplierShipFromSequence": 1,
"NonStockSupplierPartNumber": "",
"NonStockProductGroupMajor": "112",
"NonStockProductGroupMinor": "25",
"NonStockPriceCodeMajor": "112",
"NonStockPriceCodeMinor": "10",
"NonStockCost": 12.0,
"NonStockCostUOM": "EA",
"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": "",
"ShipLoose": true
}
]
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtOrderItem",
"AuditRecordIndex": "Sequence: 1, Item code: BLANK, Part number: ",
"AuditText": "Invalid Item of BLANK. (ID# 1141)"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures"
}
}
Purpose
Validates updating header information and/or adds new items to an existing sales order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderID
Value Required
The following inputs require a value due to data type:
ChargePriceOverrideOrderCostPrintMsgOnFormsPrintMsgOnFormsOverrideSendMsgToWMSSendMsgToWMSOverridePrintFlagSundryCostSundryCostOverride
Optional Inputs
- All fields in
dtOrderHeaderUpdateRequest; remaining fields indtOrderItemRequest,dtOrderItemDimensionRequest,dtOrderItemComponentRequestnot already referenced
Response
- ReturnCode
MessageTextNewOrderIDdsAuditResults
Notes
- Refer to the Notes in the SalesOrderUpdate method.
- Review the
dsAuditResultsto identify changes needed in the request in order for the validation to be successful.
Relationships
ContextIdcomes from Login- Alternate branches come from BranchList
- Refer to the Relationships section in the SalesOrderUpdate method
Version Deployed
v553; fields added in v610 and v612
WorkOrderMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 1000199200,
"TranSeq": 2,
"MessageText": "Message Text Here",
"MessageType": "Detail",
"PrintOnForms": true
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a sales order work order item message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transactions messages)
Optional Inputs
PrintOnForms
Response
- ReturnCode
MessageText
Notes
MessageTextcan send a maximum of 1000 characters- Valid values for
MessageTypeare H, Header, F, Footer, D, and Detail - When
PrintOnFormsis set to true, all eligible forms are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
AgilityPublic/Pricing Service
This AgilityPublic service contains methods relating to pricing.
ApprovedItemsCustomerPricingInChunksList
Sample Request
{
"request": {
"CustomerPricingRequestJSON": {
"dsCustomerPricingRequest": {
"dtCustomerPricingRequest": [
{
"CustomerID": "har01",
"ShipToSequence": 1,
"SaleType": "WH",
"SearchBy": "item code",
"SearchValue": "62122",
"ItemGroupMajor": "pool",
"ItemGroupMinor": "heater",
"IncludeNonStock": true,
"IncludeNonSaleable": true,
"RecordFetchLimit": 10,
"ChunkStartPointer": 0,
"UseOrderRestrictions": true
}
]
}
}
}
}
Sample Response
{
"response": {
"CustomerPricingResponse": {
"dsApprvdItemCustPricingResponse": {
"dtApprvdItemPriceAndQtyResponse": [
{
"ItemCode": "62122-A",
"ItemXref": "62122-AX",
"ItemSize": "",
"DimensionSize": "",
"ItemDescription": "",
"ExtendedDescription": "",
"Thickness": 0,
"ThicknessUOM": "",
"Width": 0,
"WidthUOM": "",
"Length": 0,
"LengthUOM": "",
"ItemGroupMajor": "MAJA",
"ItemGroupMinor": "MINQ",
"MinPackQty": 0,
"MinPackType": null,
"Nonsaleable": false,
"Stock": true,
"ItemType": "",
"ItemTypeName": "",
"ImageUrl": "",
"UOM": "EA",
"OnHandQty": 500,
"AvailableQty": 500,
"PriceUOM": "EA",
"GrossPrice": 4,
"PriceUOMGrossPrice": 4,
"NetPrice": 4,
"PriceUOMNetPrice": 4,
"DiscountDescription": "",
"QuickList": "",
"RankValue": 0,
"Dimension": "",
"SpecialItemType": "",
"Promo": false,
"DefaultWeight": 1,
"DefaultWeightUOM": "EA",
"DefaultLoad": 1,
"DefaultLoadUOM": "EA",
"PrimarySupplierWeight": 0,
"PrimarySupplierWeightUOM": "",
"PrimarySupplierLoad": 0,
"PrimarySupplierLoadUOM": "",
"Cost": 0,
"CostDesignator": "",
"GrossMarginPercent": 0,
"GrossMarginAmount": 0,
"MaxProductionUnits": 0,
"Discontinued": "No",
"HazardousMaterial": false,
"BOLCode": "",
"MSDS": "",
"PrimarySupplierID": "",
"OnOrderQty": 0,
"ReturnQty": 0,
"BackorderedQty": 0,
"CommittedQty": 0,
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": ""
}
]
}
},
"NextChunkStartPointer": 1,
"MoreResultsAvailable": true,
"TotalRowsFetched": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns item specific information as well as the most specific price for the customer and ship-to specified for a group of items approved for sale to the specified customer
Header
ContextIdBranchContent-Type= application/json
Required Inputs
CustomerIDRecordFetchLimit
Optional Inputs
ShipToSequenceSaleTypeSearchBySearchValueItemGroupMajorItemGroupMinorIncludeNonStockIncludeNonSaleableChunkStartPointerUseOrderRestrictions
Response
- ReturnCode
MessageTextMoreResultsAvailableTotalRowsFetched- List of items with details and the specific price information based on the customer and ship-to and other input values
Notes
- The method allows the user to search for and select items based on
ItemGroupMajor,ItemGroupMajorandItemGroupMinorcombination,SearchByor to request the information for all items based on the customer/ship-to and other input values - Valid
SearchByoptions are Item Code, Size, Description, Ext. Description Contains, and Keyword Search. - The
UseOrderRestrictionsfield in the API request controls if items with a qualifying order restriction record defined in the Agility Transaction Criteria window are included in the list of items retrieved in the response.- If the field is not included in the request the system default is to exclude items with qualifying order restrictions from being returned in the response.
- When the
IncludeNonStockfield is excluded from the API request, the system excludes items with theStockfield unset in Item Maintenance. - When the
IncludeNonSaleablefield is excluded from the API request, the system excludes with the Non-saleable field set in Item Maintenance. - This method allows a user to set a
RecordFetchLimitin the request. The number ofTotalRowsFetchedreturned in the response is the number of unique items returned. For dimension type items it does not include dimension records in this count. Therefore, when processing includes dimension type records, consideration should be given when setting theRecordFetchLimitas processing time will be affected. 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.
- The system includes quantities for alternate items assigned to component items when calculating the
MaxProductionUnitsvalue for a BOM Parent item when all of the following conditions are met:- Branch Parameter Include alternates when calculating maximum production units on the Inventory tab is set.
- If the alternate item has the Applies to work orders from sales orders option set and the Auto order option is set to ‘Auto order at work order entry’ in Alternates Maintenance.
- If the Stocking UOM on the component item and alternate item are not the same, there must be a UOM conversion setup on the alternate item to get back to the stocking UOM on the component item.
- If the component is a dimension type item, the alternate item must be setup for the overall 00x00x00 record
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
v600
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
CustomerIDShiptoSequenceIncludeNonStockIncludeNonsaleableRecordFetchLimit
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.
ValidSearchByoptions 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- 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": "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": "",
"QtyBreakQty": 10,
"QtyBreakUOM": "BF"
},
{
"ItemCode": "LL-NAILS",
"Thickness": 0,
"Width": 0,
"Length": 0,
"SaleType": "<all>",
"PriceType": "Level 1, Qty Break 0 EA",
"Dimensions": "",
"PriceUOMGrossPrice": 2.5,
"PriceUOMNetPrice": 2.5,
"PriceUOM": "EA",
"DiscountQty": 0,
"DiscountDescription": "",
"DiscountUOM": "EA",
"DateRange": "Open - Open",
"Promo": false,
"BOMComponentPrice": "",
"QtyBreakQty": 0,
"QtyBreakUOM": ""
}
]
}
},
"ItemAuditResults": {
"dsItemAuditResults": {}
},
"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
CustomerIDShiptoSequenceItemCodefor each record in the set of items to process
Optional Inputs
PriceTypeOptionSaleTypeOrderQtyUOMin set of items to process; all fields in the set of dimensions to process
Response
- ReturnCode
MessageTextItemAuditResultsMoreResultsAvailableTotalRowsFetched- 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 the <all>SaleType) are returned - DMSi strongly recommends reviewing the
ItemAuditResultsregardless of theReturnCodevalue - The
PriceInfoListmethod returns price record information in the Pricing UOM defined on the price record- For the main item record of dimension type items where the price UOM is set to the piece reference UOM, the method returns item information in the pricing UOM, since the piece reference is invalid for the main item record.
- The
PriceInfoListmethod returns a blankQtyBreakUOMwhen the pricing or discount record returned is Fixed for the Pricing Group or Customer
Relationships
- Context ID and
Branchcome 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; updated with ItemAuditResults in v553; updated with QtyBreakQty and QtyBreakUOM in v556
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
PurchaseOrderCreate
Sample Request
{
"request": {
"SupplierID": "H&SH101",
"PurchaseOrderJSON": {
"dsPurchaseOrderHeader": {
"dtPurchaseOrderHeader": [
{
"ShipFromSequence": 1,
"PurchaseType": "WH",
"OrderDate": "",
"CustomerID": "HMWM106",
"ShipToSequence": 1,
"PaymentTermsCode": "2%10NET20",
"FreightTerms": "STANDARD",
"PODescription": "",
"VerbalPO": "",
"Reference": "",
"POLabel": "",
"SendPOVia": "Normal",
"Buyer1": "JDOE",
"Buyer2": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"ExpectedReceiptTime": "09:30",
"ExcludefromNetQtyUntil": "",
"UpdateLead": true,
"ShipVia": "UPS",
"PickUpID": "",
"TrackingDate": "",
"ConfirmedBy": "",
"AllowChanges": true,
"AllowChangesUntilDate": "",
"AllowChangesUntilTime": "",
"APISourceID": "API"
}
],
"dtPurchaseOrderHeaderNotes": [
{
"OrderNote": "Priority Order, order must ship on time",
"HotNote": true,
"ReminderDate": "2025-01-02"
},
{
"OrderNote": "Notify Dave when received",
"HotNote": false,
"ReminderDate": ""
}
]
},
"dsPurchaseOrderItem": {
"dtPurchaseOrderItem": [
{
"Sequence": 1,
"ItemCode": "A1E",
"OrderQty": 1,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "",
"ExpectedReceiptDate": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 2,
"ItemCode": "A1H",
"OrderQty": 100,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 3,
"ItemCode": "A1P",
"OrderQty": 100,
"UOM": "BF",
"Cost": 25,
"CostUOM": "BF",
"DueDate": "",
"ExpectedShipDate": "2024-11-05",
"ExpectedReceiptDate": "2024-11-12",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 35,
"SellPriceUOM": "BF",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
}
],
"dtPurchaseOrderItemDimension": [
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "BF",
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"Cost": 25,
"CostUOM": "BF"
},
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "BF",
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"Cost": 25,
"CostUOM": "BF"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"NewOrderID": 11305307,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new purchase order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDItemCodefor each detailOrderQtyfor each detailShipFromSequencePurchaseTypeSendPOVia
Optional Inputs
- Remaining fields in the
dtPurchaseOrderHeader,PurchaseOrderHeaderNotes,dtPurchaseOrderItemRequest, anddtPurchaseOrderItemDimensionnot already referenced
Response
- ReturnCode
MessageTextNewOrderIDdsAuditResults
Notes
- At least 1 item must be sent in.
- Each detail must have an
OrderQty> 0. - An item must be active in the branch to be able to add the item to the purchase order.
- 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. - If set on the Item Supplier record, the ‘Minimum order qty’ and ‘Min pack’ are not required to be met to create an item on a purchase order.
- A value is required for inputs
ShipFromSequenceandPurchaseTypewhen the branch supplier record does not have a default value defined. - A value is required for the input
SendPOViawhen included in the request. Valid values are Normal, EDI, and Don’t Send. A Supplier Reference record must exist to send the EDI value in the request. - When the input
SendPOViais not included in the request, this value defaults to EDI if a Supplier Reference record exists. Otherwise, it defaults to Normal. - Inputs for
dtPurchaseOrderHeaderset as required in Purchasing Parameters without a default defined value on the branch supplier record requires the purchase order to be updated. - The Purchasing Parameters flag ‘Display proposed sell price in detail entry’ must be enabled for the
ProposedSellPriceinput to create a record on the purchase order detail. - The Purchasing Parameters flag ‘Display supplier quoted cost in detail entry’ must be enabled for the
SupplierQuotedCostandSupplierQuotedIDinputs to create records on the purchase order detail. - A blank value sent in the request for character and date inputs results in that field on the Purchase Order being blank. The default value for a field, if applicable, does not get applied. Default values apply when an input is not included in the request.
- To create a requesting purchase order for a branch transfer the following criteria are required.
- The
SupplierIDinput value must already be assigned as the shipping branch for the requesting branch in Branch Transfer Parameters. - The
PurchaseTypeinput value must affect inventory. - At least one item detail with a valid
UOMin both branches is sent in the request.
- The
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
SupplierIDcome from SuppliersList - Valid values for
ShipFromSequencecome from SupplierShipFromsList - Valid values for
ItemCodecome from ItemsList - The
NewOrderIDreturned from this method can be used in conjunction withPurchaseOrderGetto verify the new purchase order was created as expected.
Version Deployed
v612; new fields added in v613
PurchaseOrderCreateValidate
Sample Request
{
"request": {
"SupplierID": "H&SH101",
"PurchaseOrderJSON": {
"dsPurchaseOrderHeader": {
"dtPurchaseOrderHeader": [
{
"ShipFromSequence": 1,
"PurchaseType": "WH",
"OrderDate": "",
"CustomerID": "HMWM106",
"ShipToSequence": 1,
"PaymentTermsCode": "2%10NET20",
"FreightTerms": "STANDARD",
"PODescription": "",
"VerbalPO": "",
"Reference": "",
"POLabel": "",
"SendPOVia": "Normal",
"Buyer1": "JDOE",
"Buyer2": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"ExpectedReceiptTime": "09:30",
"ExcludefromNetQtyUntil": "",
"UpdateLead": true,
"ShipVia": "UPS",
"PickUpID": "",
"TrackingDate": "",
"ConfirmedBy": "",
"AllowChanges": true,
"AllowChangesUntilDate": "",
"AllowChangesUntilTime": "",
"APISourceID": "API"
}
],
"dtPurchaseOrderHeaderNotes": [
{
"OrderNote": "Priority Order, order must ship on time",
"HotNote": true,
"ReminderDate": "2025-01-02"
},
{
"OrderNote": "Notify Dave when received",
"HotNote": false,
"ReminderDate": ""
}
]
},
"dsPurchaseOrderItem": {
"dtPurchaseOrderItem": [
{
"Sequence": 1,
"ItemCode": "A1E",
"OrderQty": 1,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "",
"ExpectedReceiptDate": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 2,
"ItemCode": "A1H",
"OrderQty": 100,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 3,
"ItemCode": "A1P",
"OrderQty": 100,
"UOM": "BF",
"Cost": 25,
"CostUOM": "BF",
"DueDate": "",
"ExpectedShipDate": "2024-11-05",
"ExpectedReceiptDate": "2024-11-12",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 35,
"SellPriceUOM": "BF",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
}
],
"dtPurchaseOrderItemDimension": [
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "BF",
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"Cost": 25,
"CostUOM": "BF"
},
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "BF",
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"Cost": 25,
"CostUOM": "BF"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtPurchaseOrderHeader",
"AuditRecordIndex": "",
"AuditText": "Invalid Send PO Via. Order not created. (ID# 1449)"
},
{
"AuditSequence": 2,
"AuditType": "Warning",
"AuditTable": "dtPurchaseOrderHeader",
"AuditRecordIndex": "",
"AuditText": "Inactive suppliers are not allowed to be entered. (ID# 385)"
},
{
"AuditSequence": 3,
"AuditType": "Warning",
"AuditTable": "dtPurchaseOrderHeader",
"AuditRecordIndex": "",
"AuditText": "Invalid PO Label. Field left blank. (ID# 1448)"
}
]
}
},
"ReturnCode": 2,
"MessageText": "See audit results for failures/warnings"
}
}
Purpose
Validates the creation of a new purchase order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDItemCodefor each detailOrderQtyfor each detailShipFromSequencePurchaseTypeSendPOVia
Optional Inputs
- Remaining fields in the
dtPurchaseOrderHeader,PurchaseOrderHeaderNotes,dtPurchaseOrderItemRequest, anddtPurchaseOrderItemDimensionnot already referenced
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Refer to the Notes in the PurchaseOrderCreate method.
- Review the
dsAuditResultsto identify changes in the request in order for the validation to be successful. - A value is required for inputs
ShipFromSequenceandPurchaseTypewhen the branch supplier record does not have a default value defined. - A value is required for the input
SendPOViawhen included in the request. Valid values are Normal, EDI, and Don’t Send. A Supplier Reference record must exist to send the EDI value in the request. - When the input
SendPOViais not included in the request, this value defaults to EDI if a Supplier Reference record exists. Otherwise, it defaults to Normal. - Inputs for
dtPurchaseOrderHeaderset as required in Purchasing Parameters without a default defined value on the branch supplier record requires the purchase order to be updated.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Refer to the relationships section in the PurchaseOrderCreate method
Version Deployed
v612; new fields added in v613
PurchaseOrderDetailsCreate
Sample Request
{
"request": {
"PurchaseOrderID": 1000021539,
"PurchaseOrderDetailsCreateJSON": {
"dsPurchaseOrderItem": {
"dtPurchaseOrderItem": [
{
"Sequence": 1,
"ItemCode": "A1E",
"OrderQty": 1,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "",
"ExpectedReceiptDate": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 2,
"ItemCode": "A1H",
"OrderQty": 100,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 3,
"ItemCode": "A1P",
"OrderQty": 100,
"UOM": "BF",
"Cost": 25,
"CostUOM": "BF",
"DueDate": "",
"ExpectedShipDate": "2024-11-05",
"ExpectedReceiptDate": "2024-11-12",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 35,
"SellPriceUOM": "BF",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
}
],
"dtPurchaseOrderItemDimension": [
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "PC",
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"Cost": 2.0,
"CostUOM": "BF"
},
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "PC",
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"Cost": 2.0,
"CostUOM": "BF"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a new detail record on an existing purchase order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderIDItemCodefor each detailOrderQtyfor each detail
Optional Inputs
- Remaining fields in the
PurchaseOrderItemandPurchaseOrderItemDimensionnot already referenced
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- At least 1 item must be sent in.
- Each detail must have an
OrderQty> 0. - An item must be active in the branch to be able to add the item to the purchase order.
- 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. - If set on the Item Supplier record, the ‘Minimum order qty’ and ‘Min pack’ are not required to be met to create an item on a purchase order.
- A blank value sent in the request for character and date inputs results in that field on the Purchase Order Detail being blank. The default value for a field, if applicable, does not get applied. Default values apply when an input is not included in the request.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
ItemCodecome from ItemsList or ItemsInChunksList.
Version Deployed
v613
PurchaseOrderDetailsCreateValidate
Sample Request
{
"request": {
"PurchaseOrderID": 1000021539,
"PurchaseOrderDetailsCreateJSON": {
"dsPurchaseOrderItem": {
"dtPurchaseOrderItem": [
{
"Sequence": 1,
"ItemCode": "A1E",
"OrderQty": 1,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "",
"ExpectedReceiptDate": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 2,
"ItemCode": "A1H",
"OrderQty": 100,
"UOM": "EACH",
"Cost": 25,
"CostUOM": "EACH",
"DueDate": "",
"ExpectedShipDate": "2024-11-01",
"ExpectedReceiptDate": "2024-11-08",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 45,
"SellPriceUOM": "EACH",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
},
{
"Sequence": 3,
"ItemCode": "A1P",
"OrderQty": 100,
"UOM": "BF",
"Cost": 25,
"CostUOM": "BF",
"DueDate": "",
"ExpectedShipDate": "2024-11-05",
"ExpectedReceiptDate": "2024-11-12",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"GroupID": "",
"AddPermanentDetailGroupID": false,
"Description": "",
"ProposedSellPrice": 35,
"SellPriceUOM": "BF",
"Size": "",
"SupplierQuotedCost": false,
"SupplierQuoteID ": ""
}
],
"dtPurchaseOrderItemDimension": [
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "PC",
"Thickness": 2,
"Width": 4,
"Length": 8,
"PieceCount": 0,
"Cost": 2.0,
"CostUOM": "BF"
},
{
"Sequence": 3,
"OrderQty": 50,
"UOM": "PC",
"Thickness": 2,
"Width": 4,
"Length": 10,
"PieceCount": 0,
"Cost": 2.0,
"CostUOM": "BF"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Failure",
"AuditTable": "dtPurchaseOrderItemDimension",
"AuditRecordIndex": "Sequence: 4, Thickness: 2, Width: 4, Length: 8",
"AuditText": "Qty ordered is zero. Item not added to PO. (ID# 1493)"
},
{
"AuditSequence": 3,
"AuditType": "Failure",
"AuditTable": "dtPurchaseOrderItemDimension",
"AuditRecordIndex": "Sequence: 5, Thickness: 2, Width: 4, Length: 8",
"AuditText": "Invalid dimension of T=2 W=4 L=8 for A1SG. (ID# 1143)"
},
{
"AuditSequence": 7,
"AuditType": "Warning",
"AuditTable": "dtPurchaseOrderItem",
"AuditRecordIndex": "Sequence: 6, Item code: A1EWP",
"AuditText": "Item already exists on PO. Item was added to PO. (ID# 1488)"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Validates the creation of a new detail record on an existing purchase order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderIDItemCodefor each detailOrderQtyfor each detail
Optional Inputs
- Remaining fields in the
PurchaseOrderItemandPurchaseOrderItemDimensionnot already referenced
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Refer to the Notes in the PurchaseOrderDetailsCreate method.
- Review the
dsAuditResultsto identify changes in the request in order for validation to be successful.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Refer to the relationships section in the
PurchaseOrderCreatemethod
Version Deployed
v613
PurchaseOrderDetailsDelete
Sample Request
{
"request": {
"PurchaseOrderID": 1003450624,
"PurchaseOrderDetailsDeleteJSON": {
"dsDetailDeleteSettings": {
"dtDetailDeleteSettings": [
{
"DeleteDetails": true,
"KeepTranDetailTaggedForPO": true
}
]
},
"dsPurchaseOrderItem": {
"dtPurchaseOrderItem": [
{
"Sequence": 1
},
{
"Sequence": 5
},
{
"Sequence": 8
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes an existing detail record on an existing purchase order
Header
ContextIdBranchContent-Type= application/json
Required Inputs
PurchaseOrderIDDeleteDetailsKeepTranDetailTaggedForPO
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The
DeleteDetailsinput determines if the purchase order item detail is deleted or canceled. When the input value is ‘true’, the item detail is removed from the purchase order. When the input value is ‘false’, the item detail remains on the purchase order with a status of ‘Canceled’. TheDeleteDetailsinput defaults to ‘false’ when not included in the request. - The
KeepTranDetailTaggedforPOinput determines if the item detail on the linked transaction remains tagged to fill from a purchase order. When the input value is ‘true’, the item detail on the linked transaction remains tagged to fill from a purchase order. When the input value is ‘false’, the item detail on the linked transaction is no longer tagged to fill from a purchase order. - The
Sequenceinput value is associated with the sequence number in the ‘Tran seq #’ column on the purchase order.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v613
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": "1651"
}
}
Sample Response
{
"response": {
"PurchaseOrderResponse": {
"dsPurchaseOrderResponse": {
"dtPurchaseOrderHeader": [
{
"PurchaseOrderID": 1651,
"AcknowledgeDate": null,
"IncomingPOAckPurpose": "",
"IncomingPOAckStatus": "",
"AcknowledgeTime": "",
"AllowChanges": true,
"AutoTransfer": false,
"Buyer1": "BDutton",
"Buyer2": "",
"ConfirmedBy": "",
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "14:50:24",
"Currency": "USD",
"CustomerID": "DENTON",
"AllowChangesUntilDate": null,
"AllowChangesUntilTime": "",
"Dispatched": "",
"ExpectedReceiptDate": "2024-12-12",
"ExpectedShipDate": null,
"ExpectedReceiptTime": "",
"FreightTerms": "",
"OrderDate": "2024-12-10",
"OriginalSource": "",
"PaymentTermsCode": "",
"PickUpID": "",
"POLabel": "",
"ParentPOID": null,
"ParentPOFlag": "",
"POStatus": "Open",
"PurchaseType": "WH",
"Reference": "",
"SendPOVia": "EDI",
"ShipFromSequence": 1,
"ShipToSequence": 1,
"ShipVia": "",
"SupplierID": "JKH Supplier",
"TrackingDate": null,
"TransferPO": false,
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateLead": true,
"UpdateTime": "14:58:43",
"PODescription": "",
"VerbalPO": "",
"dtPurchaseOrderHeaderMessage": [
{
"PurchaseOrderID": 1651,
"MessageType": "H",
"MessageText": "All deliveries need to be made between 7am and 4pm Monday thru Friday."
},
{
"PurchaseOrderID": 1651,
"MessageType": "F",
"MessageText": "Please retain your invoice for your records."
}
]
}
],
"dtPurchaseOrderDetail": [
{
"PurchaseOrderID": 1651,
"Cost": 12,
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "14:50:24",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"CostUOM": "EA",
"DisplaySequence": 1,
"ExpectedReceiptDate": "2024-12-12",
"ExpectedReceiptDateOverride": false,
"ExpectedShipDate": null,
"ExpectedShipDateOverride": false,
"GroupID": "",
"ItemCode": "DuctTape",
"LandedCost": 12,
"OriginalItemCode": "",
"CostOverridden": true,
"DiscountOverridden": false,
"ItemDescription": "Black Duct Tape",
"POStatus": "Open",
"ProposedSellPrice": 0,
"Quantity": 2,
"ProposedSellPriceUOM": "EA",
"PurchaseOrderDetailSequence": 1,
"ReceivingSet": "",
"SIZE": "1.88x 60 yds",
"TallyUOM": "",
"QuantityUOM": "EA",
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateTime": "14:56:37",
"WOID": 0,
"dtPurchaseOrderDetailMessage": [
{
"PurchaseOrderID": 1651,
"Sequence": 1,
"MessageType": "D",
"MessageText": "Duct Tape: Sundry item"
}
]
},
{
"PurchaseOrderID": 1651,
"Cost": 32,
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "14:51:01",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"CostUOM": "BOX",
"DisplaySequence": 2,
"ExpectedReceiptDate": "2024-12-12",
"ExpectedReceiptDateOverride": false,
"ExpectedShipDate": null,
"ExpectedShipDateOverride": false,
"GroupID": "",
"ItemCode": "jp-c10_2",
"LandedCost": 32,
"OriginalItemCode": "",
"CostOverridden": true,
"DiscountOverridden": false,
"ItemDescription": "c10 description",
"POStatus": "Open",
"ProposedSellPrice": 0,
"Quantity": 2,
"ProposedSellPriceUOM": "BOX",
"PurchaseOrderDetailSequence": 2,
"ReceivingSet": "",
"SIZE": "10 gauge2",
"TallyUOM": "",
"QuantityUOM": "EA",
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateTime": "14:56:37",
"WOID": 0,
"dtPurchaseOrderDetailMessage": [
{
"PurchaseOrderID": 1651,
"Sequence": 2,
"MessageType": "D",
"MessageText": "JP item test"
}
]
}
]
}
},
"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
- A one-to-many Parent/Child relationship exists between
dtPurchaseOrderHeaderanddtPurchaseOrderHeaderMessagethroughOrderID. - A one-to-many Parent/Child relationship exists between
dtPurchaseOrderDetailanddtPurchaseOrderDetailMessagethroughSequence.
Version Deployed
v539
PurchaseOrderHeaderUpdate
Sample Request
{
"request": {
"PurchaseOrderID": 1000175221,
"PurchaseOrderHeaderUpdateJSON": {
"dsPurchaseOrderHeader": {
"dtPurchaseOrderHeader": [
{
"ExpectedShipDate": "2024-02-11",
"ExpectedReceiptDate": "2024-02-12",
"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",
"ShipFromSequence": 1,
"OverriddenCostDiscShipFromUpdate": "No",
"ApplyOrderMinShipFromUpdate ": "Yes",
"ApplyMinPackShipFromUpdate": "Yes",
"UseInactiveShipFromUpdate": "No"
}
]
}
}
}
}
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.
-
ShipFromSequencevalid values are read and updated if- PO is the Parent PO
- Supplier Ship from is valid for the branch
- PO is not partially received, completely received, or cancelled
- PO is not in the process of being received
- PO is not a transfer PO
- Supplier Ship from is not a branch transfer supplier
- User has necessary security
- The following fields are only read when the
ShipFromSequencefield is populated with a valid valueOverriddenCostDiscShipFromUpdateApplyOrderMinShipFromUpdateApplyMinPackShipFromUpdateUseInactiveShipFromUpdate
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v538; New ship-from fields added in v608
PurchaseOrderMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 12345,
"TranSeq": 1,
"MessageText": "Message Text Here",
"MessageType": "D",
"PrintOnForms": false,
"SendToWMS": true
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a purchase order transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnFormsSendToWMS
Response
- ReturnCode
MessageText
Notes
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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
ShippingTrackingUpdateBySupplierReturn
Sample Request
{
"request": {
"SupplierReturnID": 440061914,
"ShippingTrackingUpdateBySRJSON": {
"dsShipmentUpdateBySRSettings": {
"dtShipmentUpdateBySRSettings": [
{
"ShipVia": "Our Truck",
"ExpectedShipDate": "2022-10-02"
}
]
},
"dsTrackingDetailBySRRequest": {
"dtTrackingDetailBySRRequest": [
{
"TrackingNumber": "1F3Y0A70875015",
"ContainerWeight": 9.5,
"ContainerWeightUOM": "LB",
"ContainerLength": 18,
"ContainerWidth": 20,
"ContainerHeight": 26,
"dtTrackingDetailBySRItemRequest": [
{
"ItemCode": "90641",
"DetailSequence": 1,
"Quantity": 1,
"QtyUOM": "EA"
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 2,
"MessageText": "Nothing remains to be dispatched for this transaction. (ID# 4539)"
}
}
Purpose
Stores tracking information for the supplier return on an existing or auto-created dispatch transaction
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierReturnID
Optional Inputs
- Remaining fields in the
dtShipmentUpdateBySRSettings,dtTrackingDetailBySRRequest, anddtTrackingDetailBySRItemRequest
Response
- ReturnCode
MessageText
Notes
- This method contains a parent/child relationship between the
dsShipmentUpdateBySRSettingsand theSupplierReturnID. Please see the Parent/Child relationship topic for more information. - There is a many to one relationship between the
dsTrackingDetailBySRRequestandSupplierReturnIDas the method allows the input of multiple tracking numbers. - Valid values for
ContainerWeightUOM: LB, KG. If this field is not sent, the system defaults to a UOM of LB. - The following rules apply to the
ShipViatag:- If a valid ship via is sent in the request, the supplier return header ship via is updated with this value. If an invalid ship via is sent in the request, a failure occurs.
- If a blank value is sent for the ship via, no change occurs to the supplier return header ship via.
- If the
ShipViatag is not sent in the request, no change occurs to the supplier return header ship via.
- A dispatch transaction, is created for the supplier return if one does not already exist.
- When a
TrackingNumberis sent in with items specified in thedtTrackingDetailBySRRequest, dispatch details are created only for the supplier return items and quantities received. - When a
TrackingNumberis sent without items specified, dispatch details are created for all supplier return items and quantities, with no containers assigned at the item level.
- When a
- When tracking information is received for a supplier return that has already been dispatched, the existing dispatch transaction is updated.
- If a supplier return is assigned to more than one dispatch, the method fails
- If the
TrackingNumbersent is already assigned to the dispatch, the method fails. - If container information is assigned by detail on the existing dispatch, the request must be sent in with the
dtTrackingDetailBySRItemRequestfields. - When a
TrackingNumberis sent in withdtTrackingDetailBySRItemRequestfields, the quantity received for an item cannot be more than the accumulated total of what remains to be dispatched plus any dispatched quantities not previously assigned to a container for that supplier return.
- This method contains a parent/child relationship between the
dtTrackingDetailBySRRequestand theTrackingNumber. Please see the Parent/Child relationship topic for more information. - There is a many to one relationship between the
dtTrackingDetailBySRItemRequestand theTrackingNumberas the method allows you the option to specify item(s) for each tracking number. - When multiple
TrackingNumbersare sent in without thedtTrackingDetailBySRItemRequest, the tracking information is stored at the supplier return transaction level on the dispatch transaction. - When a single
TrackingNumberis sent in without thedtTrackingDetailBySRItemRequest, the tracking information is stored at the item level for all items on the supplier return. - When a
TrackingNumberis sent in withdtTrackingDetailBySRItemRequestfields, the tracking information is stored at the supplier return/item level on the dispatch. - When multiple
TrackingNumbersare sent in thedtTrackingDetailBySRItemRequest, only items on the supplier return that are specified in thedtTrackingDetailBySRItemRequestare saved with tracking information at the item level. - The following rules apply when sending multiple tracking numbers in a single request
- The
dtTrackingDetailBySRItemRequestmust be excluded from the request to save all tracking numbers at the supplier return level. - The
dtTrackingDetailBySRItemRequestmust be included for each tracking number to save all tracking numbers at the supplier return/item level. - The system does not allow some tracking numbers to include
dtTrackingDetailBySRItemRequestand others to excludedtTrackingDetailBySRItemRequesttags in a single request.
- The
Relationships
ContextIdandBranchcome from Login
Version Deployed
v601
SupplierReturnGet
Sample Request
{
"request": {
"SupplierReturnID": 440061839
}
}
Sample Response
{
"response": {
"SupplierReturnResponse": {
"dsSupplierReturnResponse": {
"dtSupplierReturnHeader": [
{
"SupplierReturnID": 1655,
"SRStatus": "Open",
"OrderDate": "2024-12-10",
"Dispatched": "",
"SupplierID": "JKH Supplier",
"ShipFromSequence": 1,
"Address1": "3301 N 210th St",
"Address2": "",
"Address3": "",
"City": "Elkhorn",
"State": "NE",
"Zip": "68022- ",
"Country": "USA",
"Currency": "USD",
"ContactName": "",
"ContactPhone": "",
"ContactEmail": "",
"CustomerID": "000000000127",
"ShipToSequence": 1,
"PaymentTermsCode": "",
"FreightTerms": "",
"PurchaseType": "WH",
"SRDescription": "",
"VerbalPO": "1234",
"Reference": "",
"POLabel": "",
"SendSRVia": "Normal",
"Buyer1": "LLH1",
"Buyer2": "",
"ExpectedShipDate": "2024-12-11",
"ShipVia": "cab",
"TrackingDate": null,
"OriginalSource": "",
"ConfirmedBy": "",
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "16:26:07",
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateTime": "16:29:16",
"dtSupplierReturnHeaderMessage": [
{
"SupplierReturnID": 1655,
"MessageType": "H",
"MessageText": "Your business is appreciated."
},
{
"SupplierReturnID": 1655,
"MessageType": "F",
"MessageText": "Please retain your invoice for your records."
}
]
}
],
"dtSupplierReturnDetail": [
{
"SupplierReturnID": 1655,
"ItemCode": "EK-10001",
"SupplierReturnDetailSequence": 1,
"DisplaySequence": 1,
"Size": "1\"",
"ItemDescription": "Boxes of (100) 10001 Wire Nuts",
"Quantity": -1,
"Cost": 10,
"CostUOM": "EA",
"OriginalItemCode": "EK-10001",
"POStatus": "Open",
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "16:26:21",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"LandedCost": 0,
"CostOverridden": false,
"DiscountOverridden": false,
"TallyUOM": "",
"QuantityUOM": "EA",
"ReasonCode": "Damaged",
"TotalWeight": 0,
"TotalLoad": 0,
"ExtendedCost": -10,
"ContainerLength": 0,
"ContainerWidth": 0,
"ContainerHeight": 0,
"HazmatFlag": false,
"MSDS": "",
"BolCode": "",
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateTime": "16:26:21",
"ItemMisc1Label": "MISC 1",
"ItemMisc1Value": "",
"ItemMisc2Label": "MISC 2",
"ItemMisc2Value": "",
"ItemMisc3Label": "MISC 3",
"ItemMisc3Value": "",
"ItemMisc4Label": "MISC 4",
"ItemMisc4Value": "",
"ItemMisc5Label": "MISC 5",
"ItemMisc5Value": "",
"ItemMisc6Label": "MISC 6",
"ItemMisc6Value": "",
"ItemMisc7Label": "MISC 7",
"ItemMisc7Value": "",
"ItemMisc8Label": "MISC 8",
"ItemMisc8Value": "",
"ItemMisc9Label": "MISC 9",
"ItemMisc9Value": "",
"ItemMisc10Label": "MISC 10",
"ItemMisc10Value": "",
"ItemMisc11Label": "MISC 11",
"ItemMisc11Value": "",
"ItemMisc12Label": "MISC 12",
"ItemMisc12Value": "",
"ItemMisc13Label": "MISC 13",
"ItemMisc13Value": "",
"ItemMisc14Label": "MISC 14",
"ItemMisc14Value": "",
"ItemMisc15Label": "MISC 15",
"ItemMisc15Value": "",
"ItemMisc16Label": "MISC 16",
"ItemMisc16Value": "",
"ItemMisc17Label": "MISC 17",
"ItemMisc17Value": "",
"ItemMisc18Label": "MISC 18",
"ItemMisc18Value": "",
"ItemMisc19Label": "MISC 19",
"ItemMisc19Value": "",
"ItemMisc20Label": "MISC 20",
"ItemMisc20Value": "",
"dtSupplierReturnDetailMessage": [
{
"SupplierReturnID": 1655,
"Sequence": 1,
"MessageType": "D",
"MessageText": "Item Message for SR"
},
{
"SupplierReturnID": 1655,
"Sequence": 1,
"MessageType": "D",
"MessageText": "Wrap and label."
}
]
},
{
"SupplierReturnID": 1655,
"ItemCode": "DuctTape",
"SupplierReturnDetailSequence": 2,
"DisplaySequence": 2,
"Size": "1.88x 60 yds",
"ItemDescription": "Black Duct Tape",
"Quantity": -1,
"Cost": 0,
"CostUOM": "EA",
"OriginalItemCode": "DuctTape",
"POStatus": "Open",
"CreatedBy": "jhughes",
"CreatedDate": "2024-12-10",
"CreatedTime": "16:26:31",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"LandedCost": 0,
"CostOverridden": false,
"DiscountOverridden": false,
"TallyUOM": "",
"QuantityUOM": "EA",
"ReasonCode": "Damaged",
"TotalWeight": 0,
"TotalLoad": 0,
"ExtendedCost": 0,
"ContainerLength": 0,
"ContainerWidth": 0,
"ContainerHeight": 0,
"HazmatFlag": false,
"MSDS": "",
"BolCode": "",
"UpdateBy": "jhughes",
"UpdateDate": "2024-12-10",
"UpdateTime": "16:26:31",
"ItemMisc1Label": "MISC 1",
"ItemMisc1Value": "",
"ItemMisc2Label": "MISC 2",
"ItemMisc2Value": "",
"ItemMisc3Label": "MISC 3",
"ItemMisc3Value": "",
"ItemMisc4Label": "MISC 4",
"ItemMisc4Value": "",
"ItemMisc5Label": "MISC 5",
"ItemMisc5Value": "",
"ItemMisc6Label": "MISC 6",
"ItemMisc6Value": "",
"ItemMisc7Label": "MISC 7",
"ItemMisc7Value": "",
"ItemMisc8Label": "MISC 8",
"ItemMisc8Value": "",
"ItemMisc9Label": "MISC 9",
"ItemMisc9Value": "",
"ItemMisc10Label": "MISC 10",
"ItemMisc10Value": "",
"ItemMisc11Label": "MISC 11",
"ItemMisc11Value": "",
"ItemMisc12Label": "MISC 12",
"ItemMisc12Value": "",
"ItemMisc13Label": "MISC 13",
"ItemMisc13Value": "",
"ItemMisc14Label": "MISC 14",
"ItemMisc14Value": "",
"ItemMisc15Label": "MISC 15",
"ItemMisc15Value": "",
"ItemMisc16Label": "MISC 16",
"ItemMisc16Value": "",
"ItemMisc17Label": "MISC 17",
"ItemMisc17Value": "",
"ItemMisc18Label": "MISC 18",
"ItemMisc18Value": "",
"ItemMisc19Label": "MISC 19",
"ItemMisc19Value": "",
"ItemMisc20Label": "MISC 20",
"ItemMisc20Value": "",
"dtSupplierReturnDetailMessage": [
{
"SupplierReturnID": 1655,
"Sequence": 2,
"MessageType": "D",
"MessageText": "Run Better."
}
]
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Retrieve Supplier Return header and detail information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierReturnID
Optional Inputs
- N/A
Response
- ReturnCode
MessageText- Supplier Return header and detail information
Notes
- The initial branch returned with the Login method indicates which branch that context is originally positioned in
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- A one-to-many Parent/Child relationship exists between
dtSupplierReturnHeaderanddtSupplierReturnHeaderMessagethroughOrderID. - A one-to-many Parent/Child relationship exists between
dtSupplierReturnDetailanddtSupplierReturnDetailMessagethroughSequence.
Version Deployed
v601
SupplierReturnMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 12345,
"TranSeq": 3,
"MessageText": "Message Text Here",
"MessageType": "Detail",
"PrintOnForms": true,
"SendToWMS": false
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a supplier return transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnFormsSendToWMS
Response
- ReturnCode
MessageText
Notes
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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
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
RemanInputDelete
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
RemanMessageCreate
Sample Request
{
"request": {
"MessageCreateJSON": {
"dsMessageCreate": {
"dtMessageCreate": [
{
"TranID": 12345,
"TranType": "RM",
"TranSeq": 3,
"MessageText": "Message Text Here",
"MessageType": "Header",
"PrintOnForms": true
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a reman transaction message in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDTranTypeMessageTextMessageTypeTranSeq(for detail transaction messages)
Optional Inputs
PrintOnForms
Response
- ReturnCode
MessageText
Notes
- Valid values for
TranTypeare RM, Reman header, RM-input, Reman input, RM-output, Reman output, RM-operation, and Reman operation 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 are set to print the new message
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
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:CostType,OrderQty,SupplierID,SupplierShipFromSequencefor each input,PrintOnWO
Optional Inputs
- Remaining fields in
dtInputRemanOperationRequest
Response
- ReturnCode
MessageText
Notes
Key, while not required, is used to tie the operations to a specific input and/or outputCostTypeis 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
RemanOperationDelete
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:Key,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 - 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
RemanOutputDelete
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",
"ProfName": "CORPORATE"
},
{
"BranchID": "OMAHA",
"CompanyName": "Omaha Branch",
"ProfName": "OMAHA"
}
]
}
},
"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
MessageTextBranchIDBranchProfName
Notes
N/A
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v534; ProfName added to response in v554
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 |
| ImageBinAuthenticate | Supports an internal login for the Image Bin process |
| 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": null
}
}
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": null,
"ExpectDateRangeEnd": null,
"RouteID": "",
"ChunkStartPointer": "",
"RecordFetchLimit": ""
}
}
Sample Response
{
"response": {
"PickFilesDisplayResponse": {
"dsPicksResponse": {
"dtPickResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300153611,
"PickIDList": "0000133076",
"ShipmentNumber": 1,
"CustomerID": "HAR01",
"ShipToSequence": 2,
"StopNumber": 0,
"CreatedBy": "lharris",
"CreatedDate": "2023-01-13",
"CreatedTime": "13:32:24",
"ExpectedDate": "2023-01-16",
"PayTermsCode": "COD",
"RouteID": "",
"SaleType": "wh",
"SOStatusFlag": "Partial",
"SOHeaderType": "SO",
"ShipVia": "Our Truck",
"TaxDescription": "IA|IA_GRUNDY|IA_GRUNDY_REINBECK|IA_GRUNDY__SILO",
"TaxTotalPercent": "6|1|0|0",
"PickTotal": 214,
"PickTaxAmount": 14,
"ShipToAddress1": "906 Park Street",
"ShipToAddress2": "Suite 234",
"ShipToAddress3": "P O Box 32211",
"ShipToCity": "Reinbeck",
"ShipToState": "IA",
"ShipToZip": "50669",
"ShipToCountry": "USA",
"ShipToName": "Harris Corporation S2",
"ShipToMisc1": "B Thomas",
"ShipToMisc2": "",
"ShipToMisc3": "",
"ShipToMisc4": "",
"ShipToMisc5": "",
"ShipToMisc6": "",
"ShipToMisc7": "42.3236° N",
"ShipToMisc8": "92.5994° W",
"ShipToMisc9": "",
"ShipToMisc10": "",
"ShipToMisc11": "",
"ShipToMisc12": "",
"ShipToMiscDate1": null,
"ShipToMiscDate2": null,
"ShipToPhone": "(402)-330-6620",
"ShipToShippingDate": "",
"ShipToTrackingNumber": "",
"PickCostTotal": 1198.45,
"PickCostType": "Item default",
"TotalWeight": 20,
"TotalLoad": 20,
"CustomerPO": "",
"ContactName": "1",
"ContactPhone": " ",
"ContactEmail": "",
"PickRecordSequence": 1,
"WMSPickHeaderStatusCode": "",
"WMSPickHeaderStatusDescription": "",
"FreightTermsCode": "",
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"ShippingTrackingDelvInstructions": "",
"ShippingTrackingSignatureReq": false,
"CustomerName": "Harris Corporation Internation",
"TransactionReference": "89347-PY",
"TransactionJob": "1435-PPL",
"OrderedBy": "Daniel Jacob",
"OrderDate": "2023-01-13",
"APISourceID": "",
"SalesAgentID1": "0524",
"SalesAgentName1": "AP Keaton",
"SalesAgent1PctOfOrder": 50,
"SalesAgentID2": "002",
"SalesAgentName2": "James Harrison",
"SalesAgent2PctOfOrder": 50,
"SalesAgentID3": "",
"SalesAgentName3": "",
"SalesAgent3PctOfOrder": 0,
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgent4PctOfOrder": 0,
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgent5PctOfOrder": 0,
"SalesAgentID6": "",
"SalesAgentName6": "",
"SalesAgent6PctOfOrder": 0,
"TaxCode": "IA_GRUNDY_REINBECK",
"Taxable": true,
"dtPickDetailResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300153611,
"PickID": 133076,
"ShipmentNumber": 1,
"DetailSequence": 1,
"ItemCode": "2827",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": "",
"PickStatus": "Open",
"TotalOrderedQuantity": 10,
"OrderedQuantityUOM": "BAG",
"TotalRequestedQuantity": 20,
"TotalAdjustedQuantity": 0,
"NetQuantity": 20,
"TotalPickedQuantity": 0,
"PickedQuantityUOM": "EA",
"AdjustmentType": "",
"Price": 10,
"PriceUOM": "EA",
"ExtendedPrice": 200,
"MSDS": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"ExtraDiscount1": 0,
"ExtraDiscount2": 0,
"ExtraDiscount3": 0,
"ExtWeight": 20,
"ExtLoad": 20,
"ExtCost": 1198.45,
"ItemSize": "",
"ItemDescription": "Zinc-Plated Hex Lag Screw Indoor/Outdoor",
"DispatchID": "",
"Picker": "",
"PickRecordSequence": 1,
"WMSPickDetailStatusCode": "",
"WMSPickDetailStatusDescription": "",
"TotalWMSPickedQuantity": 0,
"HazMatFlag": false,
"ContainerLength": 0,
"ContainerWidth": 0,
"ContainerHeight": 0
}
]
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 1,
"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
ContainerLength,ContainerWidthandContainerHeightare retrieved from the primary item supplier recordHazMatFlagis based on the BOL code assigned to the item in Item Maintenance
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
OrderIDcome from SalesOrderList - Valid 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, ShippingService fields added in v555; ShippingTrackingSignatureReq field added in v600
PODSignatureCreate
Sample Request
{
"request": {
"PODSignatureCreateJSON": {
"dsPODSignatureCreate": {
"dtPODSignatureCreate": [
{
"TranType": "SO",
"TranID": 12345,
"ShipmentNum": "1",
"ImageData": "/9j/4AAQAD/tihT/b4L/CrU4xC+IDi++/9k=",
"ImageInfo": "John Hancock"
}
]
}
}
}
}
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 from a Proof of Delivery (POD) app
Header
ContextIdBranchContent-Type= application/json
Required Inputs
- Following fields in
SignatureCreateJSON:TranID,TranType,ImageDatasignature image converted to Base64),PODSignature,ShipmentNum(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
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v554
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",
"ShipmentStatusFlag": "L"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates specific fields related to shipment information
Header
ContextIdBranchContent-Type= application/json
Required Inputs
OrderIDShipmentNumberUpdateAllPickFiles
Optional Inputs
UpdateSalesOrderRouteIDStopNumberShipDateRequestedDeliveryDateShipmentStatusFlag
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- With Agility v553, to update sales order header fields instead of a specific shipment,
ShipmentNumbermust be set to 0 and the sales order cannot have a staged status
- With Agility v553, to update sales order header fields instead of a specific shipment,
ShipmentStatusFlagcan be entered in either of the following formats:- Loaded or L
- Staged or S
- En Route or E
- Delivered of D
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- Valid values for
OrderIDand/orShipmentNumbercome from ShipmentsList
Version Deployed
v534; ShipmentStatusFlag added v553
ShipmentsList
Sample Request
{
"request": {
"dsShipmentDisplayRequest": {
"dtShipmentDisplayRequest": [
{
"OrderID": 283958,
"ShipmentNumber": 1,
"CustomerID": "12345",
"ShipToSequence": 1,
"ExpectDateRangeStart": null,
"ExpectDateRangeEnd": null,
"RouteID": "",
"StatusFlagList": "",
"ChunkStartPointer": 0,
"RecordFetchLimit": 0
}
]
}
}
}
Sample Response
{
"response": {
"ShipmentDisplayResponse": {
"dsShipmentDisplayResponse": {
"dtShipmentDisplayResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"CustomerID": "HAR01",
"ShipToSequence": 1,
"StopNum": 0,
"CreatedBy": "lharris",
"CreatedDate": "2022-02-23",
"CreatedTime": "17:44:36",
"ExpectedDate": "2022-02-24",
"InvoiceDate": null,
"PayTermsCode": "eas",
"RouteID": "",
"SaleType": "wh",
"ShipDate": "2022-02-23",
"StatusFlag": "Staged",
"ShipHdrType": "SO",
"ShipVia": "Our Truck",
"TaxDescription": "",
"TaxTotPercent": "",
"ShipmentCharges": 26.5,
"ShipmentTotal": 3256.5,
"ShipmentTaxAmount": 0,
"ShipmentAfterDeductFreightAmt": 0,
"ShipToAddress1": "111 SW Avenue",
"ShipToAddress2": "Suite 111",
"ShipToAddress3": "P O Box 11111",
"ShipToCity": "Omaha",
"ShipToState": "NE",
"ShipToZip": "68046 1111",
"ShipToCountry": "USA",
"ShipToName": "Harris Corporation S1",
"ShipToMisc1": "B Thomas",
"ShipToMisc2": "",
"ShipToMisc3": "",
"ShipToMisc4": "",
"ShipToMisc5": "",
"ShipToMisc6": "",
"ShipToMisc7": "41.2524° N",
"ShipToMisc8": "95.9980° W",
"ShipToMisc9": "",
"ShipToMisc10": "",
"ShipToMisc11": "",
"ShipToMisc12": "",
"ShipToMiscDate1": null,
"ShipToMiscDate2": null,
"ShipToPhone": "(402)-330-6620",
"ShipToShippingDate": "",
"ShipToTrackingNumber": "",
"ShipmentCostTotal": 801.38,
"ShipmentCostType": "Item default",
"TotalWeight": 225,
"TotalLoad": 265,
"CustomerPO": "",
"ContactName": "Mr. Frankenstein the Monster!!",
"ContactPhone": " ",
"ContactEmail": "",
"ShippingTrackingSignatureReq": false,
"ShippingTrackingDelvInstructions": "",
"ShippingTrackingInsuranceReq": false,
"ShippingTrackingSaturdayDelivery": false,
"ShippingTrackingSundayDelivery": false,
"PricedPickDelivery": false,
"ShipmentTotalDue": 0,
"FreightTerms": "",
"CustomerName": "Harris Corporation",
"TransactionReference": "",
"TransactionJob": "",
"OrderedBy": "",
"OrderDate": "2022-02-23",
"APISourceID": "",
"SalesAgentID1": "026",
"SalesAgentName1": "Frank Pike",
"SalesAgent1PctOfOrder": 0,
"SalesAgentID2": "",
"SalesAgentName2": "",
"SalesAgent2PctOfOrder": 0,
"SalesAgentID3": "testdmsi",
"SalesAgentName3": "John Smith",
"SalesAgent3PctOfOrder": 0,
"SalesAgentID4": "",
"SalesAgentName4": "",
"SalesAgent4PctOfOrder": 0,
"SalesAgentID5": "",
"SalesAgentName5": "",
"SalesAgent5PctOfOrder": 0,
"SalesAgentID6": "",
"SalesAgentName6": "",
"SalesAgent6PctOfOrder": 0,
"TaxCode": "",
"Taxable": false,
"dtTrackingHeaderResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 1,
"DispatchID": 333025556,
"TrackingNumber": "3",
"ContainerWeight": 200,
"ContainerWeightUOM": "LB",
"ContainerLength": 7,
"ContainerWidth": 8,
"ContainerHeight": 5
},
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 2,
"DispatchID": 333025556,
"TrackingNumber": "7",
"ContainerWeight": 25,
"ContainerWeightUOM": "LB",
"ContainerLength": 8,
"ContainerWidth": 9,
"ContainerHeight": 10
}
],
"dtShipmentHeaderMessageResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"MessageType": "H",
"MessageText": "No Sunday deliveries allowed."
},
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"MessageType": "H",
"MessageText": "Footer / Last Page / Payment Receipt Only"
}
],
"dtShipmentDisplayResponseDetail": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 1,
"ItemCode": "90645",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": "",
"TotalOrderedQuantity": 5,
"OrderedQuantityUOM": "BOX",
"TotalStagedQuantity": 5,
"StagedQuantityUOM": "BOX",
"Price": 62,
"PriceUOM": "EA",
"ExtendedPrice": 2480,
"MSDS": "MSDSA",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"ExtraDiscount1": 0,
"ExtraDiscount2": 0,
"ExtraDiscount3": 0,
"ExtWeight": 200,
"ExtLoad": 240,
"ExtCost": 408,
"ItemSize": "70” x 60” x 8”",
"ItemDescription": "Swimline Pool Pizza Slice Inflatable",
"CustomerPOLineNumber": "000001",
"HazMatFlag": false,
"OriginalPrice": 62,
"OriginalPriceUOM": "EA",
"OriginalOrderedQty": 5,
"OriginalOrderedQtyUOM": "BOX",
"ExtendedDescription": "1 person float\nPizza design\nCan be connected to second slice",
"PartNumber": "90645-HAR01-All",
"PrimarySupplierContainerLength": 12,
"PrimarySupplierContainerWidth": 10,
"PrimarySupplierContainerHeight": 5,
"ItemXrefUsedToOrder": "",
"dtSerialNumberDetailResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 1,
"Quantity": 0,
"SerialNumber": "8-98",
"SerialNumber2": ""
}
],
"dtShipmentDetailMessageResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 1,
"MessageType": "D",
"MessageText": "Limited Time Item!"
}
]
},
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 2,
"ItemCode": "90641",
"ItemMisc1Label": "",
"ItemMisc1Value": "",
"ItemMisc2Label": "",
"ItemMisc2Value": "",
"ItemMisc3Label": "",
"ItemMisc3Value": "",
"ItemMisc4Label": "",
"ItemMisc4Value": "",
"ItemMisc5Label": "",
"ItemMisc5Value": "",
"ItemMisc6Label": "",
"ItemMisc6Value": "",
"ItemMisc7Label": "",
"ItemMisc7Value": "",
"ItemMisc8Label": "",
"ItemMisc8Value": "",
"ItemMisc9Label": "",
"ItemMisc9Value": "",
"ItemMisc10Label": "",
"ItemMisc10Value": "",
"ItemMisc11Label": "",
"ItemMisc11Value": "",
"ItemMisc12Label": "",
"ItemMisc12Value": "",
"ItemMisc13Label": "",
"ItemMisc13Value": "",
"ItemMisc14Label": "",
"ItemMisc14Value": "",
"ItemMisc15Label": "",
"ItemMisc15Value": "",
"ItemMisc16Label": "",
"ItemMisc16Value": "",
"ItemMisc17Label": "",
"ItemMisc17Value": "",
"ItemMisc18Label": "",
"ItemMisc18Value": "",
"ItemMisc19Label": "",
"ItemMisc19Value": "",
"ItemMisc20Label": "",
"ItemMisc20Value": "",
"TotalOrderedQuantity": 5,
"OrderedQuantityUOM": "BOX",
"TotalStagedQuantity": 5,
"StagedQuantityUOM": "BOX",
"Price": 30,
"PriceUOM": "EA",
"ExtendedPrice": 750,
"MSDS": "",
"Discount1": 0,
"Discount2": 0,
"Discount3": 0,
"ExtraDiscount1": 0,
"ExtraDiscount2": 0,
"ExtraDiscount3": 0,
"ExtWeight": 25,
"ExtLoad": 25,
"ExtCost": 393.38,
"ItemSize": "70” x 60” x 8”",
"ItemDescription": "Swimline Pool Swan inflatable",
"CustomerPOLineNumber": "000002",
"HazMatFlag": true,
"OriginalPrice": 30,
"OriginalPriceUOM": "EA",
"OriginalOrderedQty": 5,
"OriginalOrderedQtyUOM": "BOX",
"ExtendedDescription": "2 person float\nSwan design\nCan be connected to second slice",
"PartNumber": "90641-HAR01-CUST-UPC",
"PrimarySupplierContainerLength": 453,
"PrimarySupplierContainerWidth": 65,
"PrimarySupplierContainerHeight": 652.99,
"ItemXrefUsedToOrder": "",
"dtSerialNumberDetailResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 2,
"Quantity": 0,
"SerialNumber": "458+3",
"SerialNumber2": ""
}
],
"dtShipmentDetailMessageResponse": [
{
"BranchID": "CENTRALBRNCH",
"OrderID": 300152594,
"ShipmentNum": 1,
"Sequence": 2,
"MessageType": "D",
"MessageText": "Summertime sale!"
}
]
}
]
}
]
}
},
"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
One or more of the following are required for a valid request: CustomerID, OrderID, RouteID, or ExpectDateRangeStart and ExpectDateRangeEnd
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
- The
ShipmentTotalDuereturned in thedtShipmentDisplayResponseis populated only for C.O.D. orders where the ‘Priced pick & delivery’ field is set. - The following rule applies when displaying shipping tracking information:
- When the Sequence = 0, the tracking information is stored on the shipment header
- When the Sequence is not 0, the tracking information is stored on the shipment detail sequence specified
- The system displays tracking information at the lowest level. For example, if a tracking number exists at the shipment header and another exists at the shipment detail, the system only displays the detail tracking number. If tracking numbers only exist at the shipment header, then the system displays these tracking numbers.
- The
PartNumberdisplays the part number stored on the so_detail. If this is blank, then the system searches for the related cross reference. If a single dimension was placed on the order, the dimension cross reference will be returned.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
- There is a Parent/Child relationship between
dtShipmentanddtShipmentDetailthroughOrderIDandShipmentNumber - The
ItemXrefUsedToOrderdisplays the item cross reference field from the Sales order detail. - A one to many Parent/Child relationship exists between
dtShipmentDisplayResponseanddtTrackingHeaderResponsethroughOrderID. - A one to many Parent/Child relationship exists between
dtShipmentDisplayResponseanddtShipmentHeaderMessageResponsethroughOrderID. - A one to many Parent/Child relationship exists between
dtShipmentDisplayResponseDetail anddtSerialNumberDetailResponsethroughSequence. - A one to many Parent/Child relationship exists between
dtShipmentDisplayResponseDetailanddtShipmentDetailMessageResponsethroughSequence.
Version Deployed
v534; tracking fields added in v556; additional tracking fields added in v600
ShippingHistoryCreate
Sample Request
{
"request": {
"TranType": "DP",
"TranID": 333027154,
"ShipmentStage": "Ready",
"ShippingHistoryCreateJSON": {
"dsShippingHistoryCreate": {
"dtShippingHistoryCreate": [
{
"TranDispatchID": 333027163,
"ShipmentNumber": 2,
"AutoAssignDateTimeBy": false,
"StageBy": "RKE",
"StageDate": "2024-10-25",
"StageTime": "09:21",
"StageTimeZone": "CST",
"CurrentStage": true
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates shipping history record for various transaction types
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranTypeTranIDShipmentStage
Optional Inputs
TranDispatchIDShipmentNumberAutoAssignDateTimeByStageByStageDateStageTimeStageTimeZoneCurrentStage
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Valid TranType values
- DP
- SO
- PO
- SR
- RI
- RO
- CM
ShipmentStagevalue must be a valid Shipment Stage in Agility- Shipping history record may be created for a standalone dispatch, standalone transaction, or a transaction associated with a dispatch. Once a transaction is associated with a dispatch, you cannot create a shipping history record for the standalone transaction.
ShipmentNumbertag is required when creating a record for a transaction associated with a shipment on a dispatch or when the transaction is a reman input (RI) or reman output (RO). If creating for a standalone transaction (not on a dispatch, reman input, or reman output) theShipmentNumberwill be ignored.- If a transaction is associated with a dispatch, the optional
TranDispatchIDtag must be included - Do not include the
TranDispatchIDtag when creating a record for a standalone dispatch or standalone transaction - Include the
TranDispatchIDtag when creating a for a transaction associated with a dispatch - API fails if the StageTime tag is sent and the
StageDatetag is not sent - If the
StageDate,StageTime, andStageBytags are sent, the values will be used to create the record even if theAutoAssignDateTimeBytag is ‘true’ StageTimevalue must be military time between 00:00 and 24:00- The
StageDate,StageTimeandStageTimeZonevalues will be converted and stored based on the server’s time zone and displayed in the branch’s time zone in the Shipping History window in Agility
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v612
ShippingHistoryDelete
Sample Request
{
"request": {
"TranType": "PO",
"TranID": 440063254,
"ShipmentStage": "Delivered",
"ShippingHistoryDeleteJSON": {
"dsShippingHistoryDelete": {
"dtShippingHistoryDelete": [
{
"TranDispatchID": 333027151,
"ShipmentNumber": 0
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": null,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Deletes an existing shipping history record for various transaction types
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranTypeTranIDShipmentStage
Optional Inputs
TranDispatchIDShipmentNumber
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Valid TranType values
- DP
- SO
- PO
- SR
- RI
- RO
- CM
ShipmentStagevalue must be a valid Shipment Stage in Agility- For a single shipping history record for the dispatch/transaction sent, delete that record
- The shipping history record cannot be deleted if there are multiple shipping history records for the dispatch/transaction and the Current stage is set to ‘Yes’ for the record being deleted
ShipmentNumbertag is required when deleting a record for a transaction associated with a shipment on a dispatch or when the transaction is a reman input (RI) or reman output (RO). If deleting for a standalone transaction (not on a dispatch, reman input, or reman output) theShipmentNumberwill be ignored.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v612
ShippingHistoryGet
Sample Request
{
"request": {
"TranType": "PO",
"TranID": 440063254,
"ShippingHistoryGetJSON": {
"dsShippingHistoryRequest": {
"dtShippingHistoryRequest": [
{
"TranDispatchID": 333027151,
"ShipmentNumber": 0
}
]
}
}
}
}
Sample Response
{
"response": {
"ShippingHistoryResponse": {
"dsShippingHistoryResponse": {
"dtShippingHistoryResponse": [
{
"TranBranch": "CENTRALBRNCH",
"DispatchBranch": "CENTRALBRNCH",
"TranType": "PO",
"TranID": 440063254,
"ShipmentStage": "Acknowledged",
"TranDispatchID": 333027151,
"ShipmentNumber": 0,
"StageBy": "123456789012345678901234567890",
"StageDate": "2024-10-21",
"StageTime": "04:00",
"StageTimeZone": "CST",
"CurrentStage": true
},
{
"TranBranch": "CENTRALBRNCH",
"DispatchBranch": "CENTRALBRNCH",
"TranType": "PO",
"TranID": 440063254,
"ShipmentNumber": 0,
"TranDispatchID": 333027151,
"ShipmentStage": "Delivered",
"StageBy": "123456789012345678901234567890",
"StageDate": "2024-10-21",
"StageTime": "04:00",
"StageTimeZone": "CST",
"CurrentStage": true
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
View shipping history records for various transaction types
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranTypeTranID
Optional Inputs
TranDispatchIDShipmentNumber
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Valid TranType values
- DP
- SO
- PO
- SR
- RI
- RO
- CM
TranDispatchIDtag is required to return a record where a transaction is associated with a dispatch
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v612
ShippingHistoryUpdate
Sample Request
{
"request": {
"TranType": "SO",
"TranID": 300164822,
"ShipmentStage": "Enroute",
"ShippingHistoryUpdateJSON": {
"dsShippingHistoryUpdate": {
"dtShippingHistoryUpdate": [
{
"TranDispatchID": 333027164,
"ShipmentNumber": 0,
"AutoAssignDateTimeBy": true,
"StageBy": "",
"StageDate": "",
"StageTime": "",
"StageTimeZone": "",
"CurrentStage": true
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates an existing shipping history record for various transaction types
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranTypeTranIDShipmentStage
Optional Inputs
TranDispatchIDShipmentNumberAutoAssignDateTimeByStageByStageDateStageTimeStageTimeZoneCurrentStage
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Valid TranType values
- DP
- SO
- PO
- SR
- RI
- RO
- CM
ShipmentStagevalue must be a valid Shipment Stage in Agility- Shipping history record may be updated for a standalone dispatch, standalone transaction, or transaction associated with a dispatch that is already created.
- One shipping history record can be updated per request
ShipmentNumbertag is required when updating a record for a transaction associated with a shipment on a dispatch or when the transaction is a reman input (RI) or reman output (RO). If updating for a standalone transaction (not on a dispatch, reman input, or reman output) theShipmentNumberwill be ignored.- If a transaction is associated with a dispatch, the optional
TranDispatchIDtag must be included - Do not include the
TranDispatchIDtag when updating a record for a standalone dispatch or standalone transaction - Include the
TranDispatchIDtag when updating a for a transaction associated with a dispatch - API fails if the
StageTimetag is sent and theStageDatetag is not sent - If the
StageDate,StageTime, andStageBytags are sent, the values will be used to update the record even if theAutoAssignDateTimeBytag is ‘true’ - The
StageDate,StageTimeandTimeZonevalues will be converted and stored based on the server’s time zone and displayed in the branch’s time zone in the Shipping History window in Agility
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v612
ShippingStatusGet
Sample Request
{
"request": {
"SalesOrderID": 3171,
"ShipmentNum": 1
}
}
Sample Response
{
"response": {
"ShippingStatusResponse": {
"dsShippingStatus": {
"dtShippingStatus": [
{
"ShippingStatus": "Shipment"
}
]
}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns status of sales order shipment
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderIDShipmentNum
Optional Inputs
- N/A
Response
ShippingStatus- ReturnCode
MessageText
Notes
Returns the status of the sales order shipment
- Pickfile
- Shipment
Relationships
ContextIdandBranchcome from Login
Version Deployed
v600
ShippingTrackingDelete
Sample Request
{
"request": {
"TranID": 440061845,
"TranType": "SR",
"ShipmentNumber": 0,
"TrackingDeleteRequestJSON": {
"dsTrackingDeleteRequest": {
"dtTrackingDeleteRequest": [
{
"TrackingNumber": "Container A"
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Delete shipping tracking information assigned to a sales order shipment or supplier return
Header
ContextIdBranchContent-Type= application/json
Required Inputs
TranIDTranTypeShipmentNumberTrackingNumber
Optional Inputs
- Remaining fields in the
dtTrackingDeleteRequest
Response
- ReturnCode
MessageText
Notes
- Valid input values for the
TranTypefield include 'SO' and 'SR' - When deleting tracking information for a supplier return ('SR'), the
ShipmentNumberin the request must be set to zero. - The following rules apply to deleting shipment tracking information
- If the requesting transaction is invoiced or canceled, a failure occurs
- If the requesting sales order shipment is invoiced, a failure occurs
- If an open dispatch is not found for the sales order shipment or supplier return, a failure occurs
- If the requesting transaction is found on multiple dispatch transactions, a failure occurs
- If the tracking number isn’t assigned to any details and more than one transaction is on the same dispatch, a failure occurs
- If the tracking number is assigned to transaction details for multiple transactions on the same dispatch, a failure occurs
- When the carrier assigned to the dispatch transaction is the default carrier assigned in Branch Parameters, and all containers are removed from the dispatch, and there are no other transactions on the dispatch the dispatch is deleted. If the carrier is not the default carrier assigned in Branch Parameters the dispatch is canceled.
Relationships
ContextIdandBranchcome from Login- Valid values for
SalesOrderIDandShipmentNumbercome from ShipmentsList
Version Deployed
v600
ShippingTrackingUpdateByPick
Sample Request
{
"request": {
"SalesOrderID": 2527,
"PickID": 182,
"ShippingTrackingUpdateJSON": {
"dsShipmentUpdateSettings": {
"dtShipmentUpdateSettings": [
{
"ShipVia": "FedEx",
"ShipDate": "2022-02-27",
"ShipmentStatusFlag": "E",
"ShipmentCharge": 75,
"ShipmentCost": 60
}
]
},
"dsTrackingDetailRequest": {
"dtTrackingDetailRequest": [
{
"TrackingNumber": "1Z63Y0A70343875012",
"ContainerWeight": 9.1,
"ContainerWeightUOM": "LB",
"ContainerLength": 24,
"ContainerWidth": 18,
"ContainerHeight": 12,
"dtTrackingDetailItemRequest": [
{
"ItemCode": "PB4-60",
"DetailSequence": 1,
"Quantity": 1,
"QtyUOM": "EA"
}
]
},
{
"TrackingNumber": "1Z81R9840347017040",
"ContainerWeight": 87.25,
"ContainerWeightUOM": "LB",
"ContainerLength": 1,
"ContainerWidth": 2,
"ContainerHeight": 3,
"dtTrackingDetailItemRequest": [
{
"ItemCode": "EC-160301",
"DetailSequence": 2,
"Quantity": 1,
"QtyUOM": "EA"
},
{
"ItemCode": "W3T-CELL",
"DetailSequence": 3,
"Quantity": 3,
"QtyUOM": "BAG"
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a shipments based off a resolved pick ID and stores tracking information for the shipment on an auto-created dispatch transaction
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderIDPickIDTrackingNumber
Optional Inputs
- Remaining fields in the
dtShipmentUpdateSettings,dtTrackingDetailRequest, anddtTrackingDetailItemRequest
Response
- ReturnCode
MessageText
Notes
- A sales order shipment is created and a dispatch transaction for the shipment is auto generated when the following criteria are met:
- Items for the tracking number are fully resolved in the pick file
Dispatchis not assigned to the pick ID or sales order- A default carrier is assigned in Branch parameters
TrackingNumberdoes not exceed 30 characters- Sales order is not on credit hold or has credit approval pending
- Order is ship complete and has multiple pick files
- In the event Transaction Criteria Order Restriction Exception records exist for items in the pick file, the date range specified on the exception record must include the current date
- This method contains a parent/child relationship between the
dsTrackingDetailRequestand theSalesOrderandPickID. Please see Parent/Child relationship topic for more information - There is a many to one relationship between the
dsTrackingDetailRequestandSalesOrderIDandPickIDas the method allows the input of multiple tracking numbers. - Valid values for
ContainerWeightUOM: LB, KG. If this field is not sent, the system defaults to a UOM of LB. - The
PickIDvalue cannot contain any leading zeroes. The following rules apply to the
ShipViatag:- If a valid ship via is sent in the request, the sales order header ship via is updated with this value on creating the shipment. Because the ship via change may trigger other changes on the order, such as a change in tax calculations, review any order information as needed.
- If an invalid or inactive ship via is sent in the request, a failure occurs.
- If a blank value is sent for the ship via, no change occurs to the sales order header ship via.
- If the
ShipViatag is not sent in the request, no change occurs to the sales order header ship via.
The following rules apply to the valid values for
ShipmentStatusFlagtag: - The shipment status is updated based on the following valid values forShipmentStatusFlag:- Loaded or L
- Staged or S
- En Route or E
- Delivered or D - If an invalid or blank value is sent for the
ShipmentStatusFlagor if theShipmentStatusFlagis not sent, the system reads the customer branch ship-to Shipment Status setting. If a customer branch ship-to does not exist, then the system reads the customer ship-to Shipment Status setting.
A customer charge or order cost are applied to the shipment when the following criteria are met:
ShipmentChargeandShipmentCostmust be a positive amount.- Shipping/Tracking service on the
ShipViasent or on the order’s Ship Via when theShipViais not sent matches the Shipping/Tracking service on a customer charge or order cost. - Applies per on the customer charge or order cost is set to Order.
- If more than one customer charge or order cost applies, the system uses the customer charge or order cost with the specified sale type.
- If more than one customer charge or order cost applies with the same sale type setting, the system uses the first record alphanumerically.
- If the same customer charge or order cost already exists on a prior shipment, the total amount for the order is increased and the prior shipment is unaffected.
This method contains a parent/child relationship between the
dtTrackingDetailItemRequestand theTrackingNumber. Please see Parent/Child relationship topic for more informationThere is a many to one relationship between the
dtTrackingDetailItemRequestand theTrackingNumberas the method allows you the option to specify items for each tracking number. - When multipleTrackingNumbersare sent in without thedtTrackingDetailItemRequest, the tracking information is stored at the shipment level on the auto generated dispatch transaction. - When a singleTrackingNumberis sent in without thedtTrackingDetailItemRequest, the tracking information is stored at the item level for all items within the pick file. - When aTrackingNumberis sent in withdtTrackingDetailItemRequestfields, the tracking information is stored at the shipment/item level on the auto generated dispatch transaction.- Each item within the pick file must be specified in the
dtTrackingDetailItemRequestin order to save tracking information at the item level.
- Each item within the pick file must be specified in the
The following rules apply when sending multiple tracking numbers in a single request
- The
dtTrackingDetailItemRequestmust be excluded from the request to save all tracking numbers at the shipment level. - The
dtTrackingDetailItemRequestmust be included for each tracking number to save all tracking numbers at the shipment/item level. - The system does not allow some tracking numbers to include
dtTrackingItemDetailRequestand others to excludedtTrackingItemDetailRequesttags in a single request
- The
If multiple resolved pick files exist on the sales order specified in the request, the system updates the
ShipmentNumberon the sales order’s remaining resolved pick files. Use the PickFileList in this scenario to capture the most currentShipmentNumberassociated with anPickID.An S856 ASN is auto created when the customer ship-to is set to send S856 ASNs.
If the customer ship-to is not set to use the S856 ASN, a printed ASN report is auto created if the customer ship-to record is set to ‘Auto send ASN with WMS shipment and shipping tracking API’s’.
Relationships
ContextIdandBranchcome from Login- Valid values for
OrderId,PickIDand fields within thedtTrackingDetailItemRequestcome from PickFileList
Version Deployed
v555
ShippingTrackingUpdateByShipment
Sample Request
{
"request": {
"SalesOrderID": 300153494,
"ShipmentNumber": 8,
"ShippingTrackingUpdateByShipJSON": {
"dsShipmentUpdateByShipSettings": {
"dtShipmentUpdateByShipSettings": [
{
"ShipVia": "BUS",
"ShipDate": "2022-07-14",
"ShipmentStatusFlag": "D",
"ShipmentCost": 10,
"ShipmentCharge": 20
}
]
},
"dsTrackingDetailByShipRequest": {
"dtTrackingDetailByShipRequest": [
{
"TrackingNumber": "1S7V5470",
"ContainerWeight": 32.75,
"ContainerWeightUOM": "LB",
"ContainerLength": 17,
"ContainerWidth": 24,
"ContainerHeight": 24,
"dtTrackingDtlByShipItemRequest": [
{
"ItemCode": "90641",
"DetailSequence": 1,
"Quantity": 1,
"QtyUOM": "EA"
}
]
},
{
"TrackingNumber": "1EZ6338750",
"ContainerWeight": 9.5,
"ContainerWeightUOM": "LB",
"ContainerLength": 18,
"ContainerWidth": 18,
"ContainerHeight": 18,
"dtTrackingDtlByShipItemRequest": [
{
"ItemCode": "90641",
"DetailSequence": 1,
"Quantity": 1,
"QtyUOM": "ea"
}
]
}
]
}
}
}
}
Sample Response
{
"response": {
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Allow updates to container/tracking information for a shipment
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SalesOrderIDShipmentNumberTrackingNumber
Optional Inputs
- Remaining fields in the
dtShipmentUpdateByShipSettings,dtTrackingDetailByShipRequest, anddtTrackingDtlByShipItemRequest
Response
- ReturnCode
MessageText
Notes
- This method contains a parent/child relationship between the
dsTrackingDetailByShipRequestand theSalesOrderIDandShipmentNumber. Please see Parent/Child relationship topic for more information - There is a many to one relationship between the
dsTrackingDetailByShipRequestandSalesOrderIDandShipmentNumberas the method allows the input of multiple tracking numbers. - Valid values for
ContainerWeightUOM: LB, KG. If this field is not sent, the system defaults to a UOM of LB. - The following rules apply to the
ShipViatag:- If a valid ship via is sent in the request, the sales order header ship via is updated with this value. Because the ship via change may trigger other changes on the order, such as a change in tax calculations, review any order information as needed.
- If an invalid or inactive ship via is sent in the request, a failure occurs.
- If a blank value is sent for the ship via, no change occurs to the sales order header ship via.
- If the
ShipViatag is not sent in the request, no change occurs to the sales order header ship via.
- The following rules apply to the valid values for
ShipmentStatusFlagtag:- The shipment status is updated based on receiving one of the following values in the
ShipmentStatusFlagrequest field: - Loaded or L
- Staged or S
- En Route or E
- Delivered or D
- If an invalid value is sent in the
ShipmentStatusFlagrequest, a failure occurs.
- The shipment status is updated based on receiving one of the following values in the
- A customer charge or order cost is applied to the shipment when the following criteria are met:
- If the
ShipmentChargeand/orShipmentCostis a positive amount - If a Shipping/Tracking service assigned to the Ship via assigned to the sales order header matches the Shipping/Tracking service assigned to a customer charge or order cost within Agility.
- Applies per on the customer charge or order cost is set to Order.
- If more than one customer charge or order cost applies, the system uses the customer charge or order cost with the specified sale type.
- If more than one customer charge or order cost applies with the same sale type setting, the system uses the first record found.
- If the same customer charge or order cost already exists on the shipment, the charge and/or cost amount is overridden with the new value received.
- If the
- A dispatch transaction, is created for the shipment if one does not already exist.
- When a
TrackingNumberis sent in with items specified in thedtTrackingDtlByShipItemRequest, dispatch details are created only for the shipment items and quantities received. - When a
TrackingNumberis sent without items specified, dispatch details are created for all shipment items and quantities, with no containers assigned at the item level. - When creating a new dispatch transaction an EDI S856 ASN is auto generated for the dispatch transaction if set to generate on the EDI Customer Reference Maintenance screen.
- The system does not auto process for the EDI ASN when updating an existing dispatch transaction.
- When a
- When tracking information is received for a shipment that has already been dispatched, the existing dispatch transaction is updated.
- If a shipment is assigned to more than one dispatch, the method fails
- If the
TrackingNumbersent is already assigned to the dispatch, the method fails. - If container information is assigned by detail on the existing dispatch, the request must be sent in with the
dtTrackingDtlByShipItemRequestfields. - When a
TrackingNumberis sent in withdtTrackingDtlByShipItemRequestfields, the quantity received for an item cannot be more than the accumulated total of what remains to be dispatched plus any dispatched quantities not previously assigned to a container for that shipment.
- This method contains a parent/child relationship between the
dtTrackingDetailByShipRequestand theTrackingNumber. Please see Parent/Child relationship topic for more information. - There is a many to one relationship between the
dtTrackingDtlByShipItemRequestand theTrackingNumberas the method allows you the option to specify item(s) for each tracking number. - When multiple
TrackingNumbersare sent in without thedtTrackingDtlByShipItemRequest, the tracking information is stored at the shipment level on the dispatch transaction. - When a single
TrackingNumberis sent in without thedtTrackingDtlByShiptemRequest, the tracking information is stored at the item level for all items on the shipment. - When a
TrackingNumberis sent in withdtTrackingDtlByShipItemRequestfields, the tracking information is stored at the shipment/item level on the dispatch. - When multiple
TrackingNumbersare sent in thedtTrackingDtlByShipItemRequest, only items on the shipment that are specified in thedtTrackingDtlByShipItemRequestare saved with tracking information at the item level. - The following rules apply when sending multiple tracking numbers in a single request
- The
dtTrackingDtlByShipItemRequestmust be excluded from the request to save all tracking numbers at the shipment level. - The
dtTrackingDtlByShipitemRequestmust be included for each tracking number to save all tracking numbers at the shipment/item level. - The system does not allow some tracking numbers to include
dtTrackingDtlByShipItemRequestand others to excludedtTrackingDtlByShipItemRequesttags in a single request.
- The
- An S856 ASN is auto created when the customer ship-to is set to send S856 ASNs.
- If the customer ship-to is not set to use the S856 ASN, a printed ASN report is auto created if the customer ship-to record is set to ‘Auto send ASN with WMS shipment and shipping tracking API’s’.
Relationships
ContextIdandBranchcome from Login
Version Deployed
v600
AgilityPublic/Supplier Service
This AgilityPublic service contains methods related to supplier information.
SupplierBranchCreate
Sample Request
{
"request": {
"SupplierID": "CLA22",
"SupplierBranchJSON": {
"dsSupplierBranch": {
"dtSupplierBranch": [
{
"ShipVia": "Truck",
"FreightTerms": "COD",
"Buyer": "Buy01",
"Buyer2": "Buy02",
"PurchaseType": "wh",
"ECommercePurchaseType": "wh",
"CutOffPOChangesDay": "Monday",
"CutOffPOChangesTime": "12:34",
"PrimaryShipFrom": 1,
"Region": "East",
"DistributorNumber": "12-909",
"ExpenseGLAccount": "040.00.50022",
"ExpenseGLComponent": "",
"ExpenseGLComponentLevel": 1,
"GiveFreightNotSpecifiedQuestion": "Both",
"OrderMinimumCost": 1000,
"OrderMinimumWeight": 100,
"OrderMinimumLoad": 100,
"FreightMinimumCost": 250,
"FreightMinimumWeight": 100,
"FreightMinimumLoad": 250,
"WMSIncludeLinkedOrders": "true",
"WMSIncludeVerbalPO": "true",
"CombineLikeItemsOnPrintedPO": "false"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Create new supplier branch records
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierID
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - For the
ExpenseGLComponentrequest field, you must use an X or # as the placeholder character for spaces if the account or component begins with or contains spaces. - Supplier branch records are created in the branch specified in the API header
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierBranchUpdate
Sample Request
{
"request": {
"SupplierID": "CLA22",
"SupplierBranchJSON": {
"dsSupplierBranch": {
"dtSupplierBranch": [
{
"ShipVia": "Truck",
"FreightTerms": "COD",
"Buyer": "",
"Buyer2": "",
"PurchaseType": "wh",
"ECommercePurchaseType": "wh",
"CutOffPOChangesDay": "Monday",
"CutOffPOChangesTime": "10:45",
"PrimaryShipFrom": 1,
"Region": "EAST",
"DistributorNumber": "IA-22",
"ExpenseGLAccount": "",
"ExpenseGLComponent": "xxx.00.50023",
"ExpenseGLComponentLevel": 2,
"GiveFreightNotSpecifiedQuestion": "Both",
"OrderMinimumCost": 1000,
"OrderMinimumWeight": 240,
"OrderMinimumLoad": 250,
"FreightMinimumCost": 200,
"FreightMinimumWeight": 260,
"FreightMinimumLoad": 300,
"WMSIncludeLinkedOrders": true,
"WMSIncludeVerbalPO": false,
"CombineLikeItemsOnPrintedPO": false
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates existing supplier branch records
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierID
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - For the
ExpenseGLComponentrequest fields, you must use an X or # as the placeholder character for spaces if the account or component begins with or contains spaces. - Supplier branch records are updated in the branch specified in the request header
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierContact
Sample Request
{
"request": {
"SupplierID": "1618T",
"ContactName": "Jolene Doe",
"ContactType": "Primary",
"ContactJSON": {
"dsSupplierContact": {
"dtSupplierContact": [
{
"Primary": true,
"Address1": "333 Main St.",
"Address2": "Ste 300",
"Address3": "PO BOX 300",
"City": "Omaha",
"State": "NE",
"ZIP": "68164",
"Country": "USA",
"Phone1": "8281112222",
"Phone2": "8282222333",
"OtherPhone": "8283334444",
"MobilePhone": "8284445555",
"Fax": "8285556666",
"EmailAddress": "jdoe@gmail.com",
"ContactTitle": "Owner",
"Salutation": "Mrs.",
"OtherData": "",
"Remarks": "Call mobile first"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates a supplier contact
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDContactNameContactTypeContactJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier must exist
- The country code must exist
- There must be one primary supplier contact record
- The contact name and contact type cannot be updated, only created
- Any fields not included in the
ContactJSONassume the default values of the new or existing supplier contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierCreate
Sample Request
{
"request": {
"SupplierID": "REDSUPP",
"SupplierJSON": {
"dsSupplier": {
"dtSupplier": [
{
"Name": "REDLAND SUPPLY",
"Address1": "1121 Russell Slade Blvd",
"Address2": "",
"Address3": "",
"City": "Ames",
"State": "IA",
"ZIP": "50011",
"Country": "USA",
"Phone": "3193456767",
"PhoneFormat": "USA",
"Fax": "3198907874",
"Website": "",
"DivisionID": "100",
"GroupID": "",
"Currency": "USD",
"PrintCurrency": "Symbol",
"Active": true,
"Temporary": false,
"CarrierSupplier": true,
"CarrierType": "Rail",
"WMSIncludeLinkedOrders": false,
"WMSIncludeVerbalOrders": false,
"HistoryDisposition": "",
"HistoryStartDate": "2023-01-01",
"HistoryDateFirstOrder": "2023-02-12",
"HistoryCompanyCode": "",
"InvoiceDefaultVoucherStatus": "Ready for payment",
"InvoiceStandardDiscount": 0,
"InvoicePaymentMethod": "Credit Card",
"InvoiceDaysToClear": 9,
"InvoicePaymentTermsCode": "1%flat",
"InvoiceCreditPaymentTermsCode": "2%flat",
"InvoiceCostType": "PO",
"InvoiceXrefRequiredBySupplier": "None",
"InvoiceCashGLAccount": null,
"InvoiceCashGLComponent": "XXX.00.50021",
"InvoiceCashGLComponentLevel": 2,
"InvoiceAllowDuplicates": true,
"InvoiceRejectIfDupInvoiceAndDate": true,
"InvoiceSuppCheckDupMonths": 5,
"InvoiceSuppRejectDupMonths": 9,
"Misc1": "",
"Misc2": "",
"Misc3": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a supplier
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDSupplierNameInvoiceCostType
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- Creating a supplier also creates default remit-to and ship-from records with a sequence of 1.
- When the ‘Auto assign supplier ID’ option in Branch Controls is set, the
SupplierIDfield is not a required input. If theSupplierIDinput is not populated, the next available sequence number is used. - Any fields not included in the
SupplierJSONassume the default values of a new supplier. - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - For the
InvoiceCashGLComponentrequest field, you must use an X or # as the placeholder character for spaces if the account or component begins with or contains spaces.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierGLCreate
Sample Request
{
"request": {
"SuppierID": "0312 TEST",
"SupplierGLJSON": {
"dsSupplierGL": {
"dtSupplierGL": [
{
"GLAccount": "",
"GLComponent": "XXX.11.50021",
"GLComponentLevel": 1
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Create a supplier G/L record in the current branch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDSupplierGLJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier must exist
- The G/L Account branch for the new record comes from the branch defined in the header
- For the
GLComponentrequest field, you must use an X or # as the placeholder character for spaces if the component begins with or contains spaces. - Any fields not included in the
SupplierGLJSONassume the default values of the new or existing supplier G/L record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierGLDelete
Sample Request
{
"request": {
"SuppierID": "WIN01",
"SupplierGLJSON": {
"dsSupplierGL": {
"dtSupplierGL": [
{
"GLAccount": "",
"GLComponent": "XXX.11.50021",
"GLComponentLevel": 1
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Delete a supplier G/L record in the current branch
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDSupplierGLJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier must exist
- The G/L Account must be valid in the branch defined in the header
- If the supplier GL account was created with a full G/L account it can only be deleted with the full G/L account sent in the request. If the supplier G/L account was created with a component and component level, it can only be deleted by entering the component and component level in the request tags.
- For the
GLComponentrequest field, you must use an X or # as the placeholder character for spaces if the component begins with or contains spaces. - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SupplierRemittoContact
Sample Request
{
"request": {
"SupplierID": "1618T",
"RemittoSequence": 1,
"ContactName": "Joann Doe",
"ContactType": "Secondary",
"ContactJSON": {
"dsSupplierRemittoContact": {
"dtSupplierRemittoContact": [
{
"Primary": false,
"Address1": "333 Main St.",
"Address2": "Ste 300",
"Address3": "PO BOX 300",
"City": "Omaha",
"State": "NE",
"ZIP": "68164",
"Country": "USA",
"Phone1": "8281112222",
"Phone2": "8282222333",
"OtherPhone": "8283334444",
"MobilePhone": "8284445555",
"Fax": "8285556666",
"EmailAddress": "j.doe@gmail.com",
"ReceiveAPRemittance": true,
"ContactTitle": "Supervisor",
"Salutation": "Ms.",
"OtherData": "",
"Remarks": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates a supplier remit-to contact
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDRemittoSequenceContactNameContactTypeContactJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier and remit-to must exist
- The country code must exist
- There must be one primary supplier remit-to contact record
- The contact name and contact type cannot be updated, only created
- There must be an email included in the call or on the existing contact for the ‘Receive AP Remittance’ flag to be set on the record.
- Any fields not included in the
ContactJSONassume the default values of the new or existing supplier remit-to contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierRemittoCreate
Sample Request
{
"request": {
"SupplierID": "0410-1",
"SupplierRemittoJSON": {
"dsSupplierRemitto": {
"dtSupplierRemitto": [
{
"RemittoSequence": 73,
"RemittoName": "Supplier International",
"Address1": "11650 Miracle Hills Dr ",
"Address2": "Suite 100",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "68104",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "402-555-5645",
"AccountNumber": "SME-0312",
"Active": true,
"Primary": true,
"PrintOneCheckPerInvoice": false,
"ACHDetailType": "CTX",
"ACHCTXQualifier": "CX",
"ACHCTXMailboxID": "12450698",
"ACHCTXVersion": "004010",
"ACHCTXUsageIndicator": "TEST",
"APInterfaceInvoicePaymentTerms": "Supplier Default",
"APInterfaceCreditPaymentTerms": "Purchase Order",
"APInterfaceDefaultToHoldInvoice": false,
"APInterfaceBranchToApplyInvoice": "WESTONBRANCH",
"CalculateTaxInInvoiceEntry": true,
"TaxCode": "NE",
"APHandlingCode": "ATTN",
"APHandlingCodeAdditionalInfo": "PickUp",
"Misc1Value": "",
"Misc2Value": "",
"Misc3Value": "",
"Requires1099": true,
"Payment1099TypeCode": "Exp",
"TaxID1099": "123546",
"LegalID1099": "88-123456789",
"LegalName1099": "Supplier International",
"AmountThisYear1099": 100,
"AmountLastYear1099": 120,
"BankAccountType": "Checking",
"BankRoutingNum": "123456",
"BankAccountNum": "123456789"
}
]
}
}
}
}
Sample Response
{
"response": {
"RemittoSequence": 73,
"AuditResults": {
"dsAuditResults": {
"dtAuditResults": [
{
"AuditSequence": 1,
"AuditType": "Warning",
"AuditText": "An existing remit-to record’s primary flag was unset"
}
]
}
},
"ReturnCode": 2,
"MessageText": "Supplier Remit-to cannot be created. Supplier Remit-to already exists. (ID# 3316)"
}
}
Purpose
Create Supplier Remit-to record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDSupplierRemittoJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The Supplier record must exist before creating a Supplier Remit-to
- Any fields not included in the
SupplierRemittoJSONassume the default values of a new supplier remit-to - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - If an existing sequence is sent in, then the call will fail as this API is only creating remit-to records
- If no sequence value is sent in, the system auto-assigns the next sequence number for the supplier
- If an existing remit-to record has the Primary option set in Agility and a new remit-to is created with the Primary tag set to true, the system automatically unsets the Primary option on the existing remit-to record
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierRemittosList
Sample Request
{
"request": {
"SearchBy": "Remit-to Address 1",
"SearchValue": "904",
"AdditionalSearchCriteriaJSON": {
"dsSupplierRemittoSearchRequest": {
"dtSupplierRemittoSearchRequest": [
{
"SupplierID": "NEL01",
"RemittoSequence": "",
"FetchOnlyChangedSince": null,
"ChunkStartPointer": null,
"RecordFetchLimit": 100,
"IncludeInactive": false
}
]
}
}
}
}
Sample Response
{
"response": {
"SupplierRemittoResponse": {
"dsSupplierRemittoResponse": {
"dtSupplierRemittoResponse": [
{
"SupplierID": "NEL01",
"SupplierName": "Nelson Supply",
"RemittoName": "Nelson Supply",
"RemittoSequence": 1,
"Address1": "904 Park Street",
"Address2": "Suite 4200",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "68118",
"Country": "USA",
"Phone": "(402)-189-0788",
"Primary": true,
"Active": true,
"LastChanged": "2024-02-09T12:14:09.000",
"Misc1Label": "Remit-to 1",
"Misc1Value": "",
"Misc2Label": "Remit-to 2",
"Misc2Value": "",
"Misc3Label": "Remit-to 3",
"Misc3Value": "",
"Requires1099": false,
"LegalID1099": "230-898984",
"LegalName1099": "Nelson Corporation LLC",
"Payment1099TypeCode": "Exp",
"TaxID1099": "NE-040124",
"AmountThisYear1099": 255.01,
"AmountLastYear1099": 200.99,
"BankAccountType": "Checking",
"BankRoutingNumber": "453198",
"BankAccountNumber": "100173216",
"PhoneFormat": USA,
"AccountNumber": "984069",
"PrintOneCheckPerInvoice": true,
"ACHDetailType": "CTX",
"ACHCTXQualifier": "00",
"ACHCTXMailboxID": "169",
"ACHCTXVersion": "004010",
"ACHCTXUsageIndicator": "Prod",
"APInterfaceInvoicePaymentTerms": "Invoice",
"APInterfaceCreditPaymentTerms": "Credit Invoice",
"APInterfaceDefaultToHoldInvoice": false,
"APInterfaceBranchToApplyInvoice": "WESTONBRANCH",
"CalculateTaxInInvoiceEntry": false,
"TaxCode": "NE_Omaha_Douglas",
"APHandlingCode": "",
"APHandlingCodeAdditionalInfo": ""
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of supplier remit-tos available in the branch the user is logged into
Header
ContextIdBranchContent-Type= application/json
Required Inputs
N/A
Optional Inputs
SearchBySearchValueSupplierIDRemittoSequenceFetchOnlyChangedSinceChunkStartPointerRecordFetchLimitIncludeInactive
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- List of supplier remit-to records
Notes
- This method allows a user to request supplier remit-tos that have changed since a particular date and time.
- This method allows the user to search for specific supplier remit-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
- 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 a list without specific supplier criteria specified.
- Valid SearchBy values:
- Remit-to name
- Remit-to Address 1
- Remit-to Address 2
- Remit-to City
- Remit-to State
- Remit-to Zip
- Remit-to Phone
- Tax ID
- When SearchBy = Tax ID, the
SearchValueneeds to be an exact match for the value in Agility. - The
TaxID1099andBankAccountNumberare stored as encrypted values; these values are are decrypted before being sent in the response - If the input value sent for
IncludeInactiveis blank or null, the system saves the value as false - If the ‘View 1099 Information’ security action is denied for the API user, values for these fields will not be returned in the response
Requires1099LegalID1099LegalName1099PaymentType1099CodeTaxID1099
- If the ‘Update Bank Information’ security action is denied for the API user, values for these fields will not be returned in the response
BankAccountTypeBankRoutingNumberBankAccountNumber
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v609; fields added in v610; JSON structure changed and field added in v612
SupplierRemittoUpdate
Sample Request
{
"request": {
"SupplierID": "0410-1",
"SupplierRemittoJSON": {
"dsSupplierRemitto": {
"dtSupplierRemitto": [
{
"RemittoSequence": 1,
"RemittoName": "Supplier International",
"Address1": "11650 Miracle Hills Dr ",
"Address2": "Suite 100",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "68104",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "402-555-5645",
"AccountNumber": "SME-0312",
"Active": true,
"Primary": true,
"PrintOneCheckPerInvoice": false,
"ACHDetailType": "CTX",
"ACHCTXQualifier": "CX",
"ACHCTXMailboxID": "12450698",
"ACHCTXVersion": "004010",
"ACHCTXUsageIndicator": "TEST",
"APInterfaceInvoicePaymentTerms": "Supplier Default",
"APInterfaceCreditPaymentTerms": "Purchase Order",
"APInterfaceDefaultToHoldInvoice": false,
"APInterfaceBranchToApplyInvoice": "WESTONBRANCH",
"CalculateTaxInInvoiceEntry": true,
"TaxCode": "NE",
"APHandlingCode": "ATTN",
"APHandlingCodeAdditionalInfo": "PickUp",
"Misc1Value": "",
"Misc2Value": "",
"Misc3Value": "",
"Requires1099": true,
"Payment1099TypeCode": "Exp",
"TaxID1099": "123546",
"LegalID1099": "88-123456789",
"LegalName1099": "Supplier International",
"AmountThisYear1099": 100,
"AmountLastYear1099": 120,
"BankAccountType": "Checking",
"BankRoutingNum": "123456",
"BankAccountNum": "123456789"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Update existing Supplier Remit-to records
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDSupplierRemittoSequenceSupplierRemittoJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The remit-to supplier must exist
- Any fields not included in the
SupplierRemittoJSONassume the default values of the existing supplier remit-to record - The Primary option is unset on an existing remit-to record in Agility if updating another remit-to record as the Primary
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierShipfromBranchCreate
Sample Request
{
"request": {
"SupplierID": "DID",
"ShipfromSequence": 6,
"SupplierShipfromBranchJSON": {
"dsSupplierShipfromBranch": {
"dtSupplierShipfromBranch": [
{
"EnableMiscSettingFlags": true,
"UpdateLead": true,
"EnableLoadUnloadFlags": true,
"LoadUnloadCallForAppointment": false,
"LoadUnloadFromHours": "09:30",
"LoadUnloadToHours": "10:24"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a supplier ship-from branch record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDShipfromSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier and ship-from must exist before creating a ship-from branch record
- Any fields not included in the
SupplierShipfromBranchJSONassume the default values of a new supplier ship-from branch record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - The
UpdateLeadtag is processed only when theEnableMiscSettingFlagstag is set totrue - The
LoadUnloadCallForAppointment,LoadUnloadFromHours, andLoadUnloadToHourstags are processed only when theEnableLoadUnloadFlagsis set totrue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SupplierShipfromBranchUpdate
Sample Request
{
"request": {
"SupplierID": "DID",
"ShipfromSequence": 6,
"SupplierShipfromBranchJSON": {
"dsSupplierShipfromBranch": {
"dtSupplierShipfromBranch": [
{
"EnableMiscSettingFlags": true,
"UpdateLead": true,
"EnableLoadUnloadFlags": true,
"LoadUnloadCallForAppointment": false,
"LoadUnloadFromHours": "09:30",
"LoadUnloadToHours": "10:24"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates an existing supplier ship-from branch record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDShipfromSequence
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - Supplier ship-from branch records are updated in the branch specified in the request header.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SupplierShipfromContact
Sample Request
{
"request": {
"SupplierID": "1618T",
"ShipfromSequence": 1,
"ContactName": "Jane Doe",
"ContactType": "Secondary",
"ContactJSON": {
"dsSupplierShipfromContact": {
"dtSupplierShipfromContact": [
{
"Primary": false,
"Address1": "333 Main St.",
"Address2": "Ste 300",
"Address3": "PO BOX 300",
"City": "Omaha",
"State": "NE",
"ZIP": "68164",
"Country": "USA",
"Phone1": "8281112222",
"Phone2": "8282222333",
"OtherPhone": "8283334444",
"MobilePhone": "8284445555",
"Fax": "8285556666",
"EmailAddress": "jdoe@gmail.com",
"ContactTitle": "Manager",
"Salutation": "Miss",
"OtherData": "",
"Remarks": "Call mobile first"
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates a supplier ship-from contact
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDShipfromSequenceContactNameContactTypeContactJSON
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier and ship-from must exist
- The country code must exist
- There must be one primary supplier ship-from contact record
- The contact name and contact type cannot be updated, only created
- Any fields not included in the
ContactJSONassume the default values of the new or existing supplier ship-from contact record - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierShipfromCreate
Sample Request
{
"request": {
"SupplierID": "cla22",
"SupplierShipfromJSON": {
"dsSupplierShipfrom": {
"dtSupplierShipfrom": [
{
"ShipfromSequence": 99,
"GrantAccessToAllBranchesOnCreate": false,
"ShipfromName": "Clarksons Supply",
"Address1": "22 Hawkeye Road",
"Address2": "",
"Address3": "",
"City": "Coralville",
"State": "IA",
"ZIP": "50689",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "4021112222",
"Fax": "4028881212",
"Memo": "",
"AssignAsDescToTallyRecords": true,
"Primary": true,
"NewItemSuppForNewPrimaryShipfrom": false,
"Active": true,
"UpdateLead": true,
"AutoRecvAutoDisplayInvoiceEntry": true,
"APReconBalanceBy": "P",
"LoadUnloadCallForAppointment": true,
"LoadUnloadFromHours": "1000",
"LoadUnloadToHours": "1200",
"Misc1Value": "Unload in dock 14A ",
"Misc2Value": "",
"Misc3Value": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"ShipfromSequence": 99,
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates a ship-from supplier record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierID
Optional Inputs
ShipfromSequence
Response
- ReturnCode
MessageTextShipfromSequencedsAuditResults
Notes
- The supplier must exist before creating a ship-from supplier
- Any fields not included in the
SupplierShipfromJSONassume the default values of a new supplier ship-from - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - The system auto assigns the next sequential number as the ship-from sequence if the
ShipfromSequencetag is not included in the request. - For the
GrantAccessToAllBranchesOnCreatefield, if any branch shares supplier ship-froms with the branch sent in the API header and shares item suppliers with other branches, access will be granted to all branches whether a true or false value is sent - If an existing ship-from record has the
Primaryoption set in Agility and a new ship-from is created with thePrimarytag set to true, the system will automatically unset thePrimaryoption on the existing ship-from record
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SupplierShipfromLaserControls
Sample Request
{
"request": {
"SupplierID": "did",
"ShipfromSequence": 10,
"FormType": "PO",
"PrinterSequence": 1,
"LaserControlJSON": {
"dsSupplierShipfromLaserControls": {
"dtSupplierShipfromLaserControls": [
{
"PrinterName": "EMAIL",
"FaxEmailToSource": "Primary Remit-to contact",
"Fax": "",
"Email": "",
"Copies": 1,
"FormFooter": "Customer Copy "
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Creates or updates supplier ship-from laser controls
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDShipfromSequenceFormTypePrinterSequenceLaserControlJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The supplier ship-from must exist
- Any fields not included in the
LaserControlJSONassume the default values of the new or existing supplier ship-from laser control record. - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SupplierShipfromsList
Sample Request
{
"request": {
"SearchBy": "Ship-from Address 1",
"SearchValue": "2222",
"AdditionalSearchCriteriaJSON": {
"dsSupplierShipfromSearchRequest": {
"dtSupplierShipfromSearchRequest": [
{
"SupplierID": "cla22",
"ShipfromSequence": null,
"FetchOnlyChangedSince": "2024-02-08T10:00:00.000",
"ChunkStartPointer": 0,
"RecordFetchLimit": 50,
"IncludeInactive": false
}
]
}
}
}
}
Sample Response
{
"response": {
"SupplierShipfromResponse": {
"dsSupplierShipfromResponse": {
"dtSupplierShipfromResponse": [
{
"SupplierID": "CLA22",
"SupplierName": "CLARK SUPPLY",
"ShipfromName": "Clark Supply",
"ShipfromSequence": 1,
"Address1": "2222 Hawkeye Rd",
"Address2": "",
"Address3": "",
"City": "Coralville",
"State": "IA",
"ZIP": "50678",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "(319) 366-1222",
"Fax": "(319) 344-2999",
"Memo": "",
"AssignAsDescToTallyRecords": true,
"Primary": true,
"Active": true,
"UpdateLead": true,
"AutoRecvAutoDisplayInvoiceEntry": false,
"APReconBalanceBy": "Purchase Order",
"LoadUnloadCallForAppointment": false,
"LoadUnloadFromHours": "10:00",
"LoadUnloadToHours": "12:00",
"Misc1Label": "Misc 1",
"Misc1Value": "",
"Misc2Label": "Misc 2",
"Misc2Value": "",
"Misc3Label": "Misc 3",
"Misc3Value": "",
"LastChanged": "2024-05-16T11:51:47.000"
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 1,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of supplier ship-from records
Header
ContextIdBranchContent-Type= application/json
Required Inputs
N/A
Optional Inputs
SearchBySearchValueSupplierIDShipfromSequenceFetchOnlyChangedSinceChunkStartPointerRecordFetchLimitIncludeInactive
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- List of supplier ship-from records
Notes
- This method allows the user to search for specific supplier ship-froms with limited criteria. Please see the
Searchbytopic for more information - This method allows a user to request supplier ship-froms that have changed since a particular date and time.
- 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 a list without specific supplier criteria specified.
- If the input value sent for
IncludeInactiveis blank or null, the system saves the value as false - Valid
SearchByvalues:- Ship-from Name
- Ship-from Address 1
- Ship-from Address 2
- Ship-from City
- Ship-from State
- Ship-from Zip
- Ship-from Phone
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611; JSON structure changed and field added in v612
SupplierShipfromUpdate
Sample Request
{
"request": {
"SupplierID": "cla22",
"SupplierShipfromJSON": {
"dsSupplierShipfrom": {
"dtSupplierShipfrom": [
{
"ShipfromSequence": 9,
"ShipfromName": "Clark Supply",
"Address1": "1090 Hawkeye Rd",
"Address2": "",
"Address3": "",
"City": "Coralville",
"State": "IA",
"ZIP": "50678",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "3193661222",
"Fax": "3193442999",
"Memo": "",
"AssignAsDescToTallyRecords": true,
"Primary": false,
"NewItemSuppForNewPrimaryShipfrom": false,
"Active": true,
"UpdateLead": true,
"AutoRecvAutoDisplayInvoiceEntry": false,
"APReconBalanceBy": "Purchase Order",
"LoadUnloadCallForAppointment": false,
"LoadUnloadFromHours": "1000",
"LoadUnloadToHours": "1200",
"Misc1Value": "",
"Misc2Value": "",
"Misc3Value": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Updates an existing supplier ship-from record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierIDShipfromSequenceSupplierShipfromJSON
Optional Inputs
- N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- The ship-from supplier record must exist
- Any fields not included in the
SupplierShipfromJSONassume the default values of the existing supplier ship-from record - The
Primaryoption will be unset on an existing ship-from record in Agility if updating another ship-from record as thePrimary - DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v611
SuppliersList
Sample Request
{
"request": {
"SearchBy": "Supplier State",
"SearchValue": "NE",
"AdditionalSearchCriteriaJSON": {
"dsSupplierSearchRequest": {
"dtSupplierSearchRequest": [
{
"IncludeInactive": true,
"FetchOnlyChangedSince": "2024-04-24T08:39:32",
"ChunkStartPointer": 0,
"RecordFetchLimit": 50
}
]
}
}
}
}
Sample Response
{
"response": {
"SupplierResponse": {
"dsSupplierResponse": {
"dtSupplierResponse": [
{
"SupplierID": "333-2",
"SupplierName": "JF Supply 2",
"Address1": "123 Chicken Rd.",
"Address2": "",
"Address3": "",
"City": "Omaha",
"State": "NE",
"ZIP": "12345",
"Country": "USA",
"PhoneFormat": "USA",
"Phone": "(402) 137-1240",
"Fax": "",
"Website": "",
"GroupID": "Laminate",
"DivisionID": "100",
"Currency": "USD",
"PrintCurrency": "Symbol",
"Temporary": true,
"CarrierSupplier": true,
"CarrierType": "AMCAR",
"WMSIncludeLinkedOrders": true,
"WMSIncludeVerbalOrders": true,
"HistoryDisposition": "d",
"HistoryStartDate": "2020-01-22",
"HistoryDateFirstOrder": "2024-04-25",
"HistoryCompanyCode": "f",
"InvoiceDefaultVoucherStatus": "Ready for Payment",
"InvoiceStandardDiscount": 1,
"InvoicePaymentMethod": "ACH",
"InvoiceDaysToClear": 5,
"InvoicePaymentTermsCode": "eas",
"InvoiceCreditPaymentTermsCode": "katiou",
"InvoiceCostType": "PO",
"InvoiceXRefRequiredBySupplier": "X",
"InvoiceCashGLAccount": "",
"InvoiceCashGLComponent": "",
"InvoiceAllowDuplicates": true,
"InvoiceRejectDupInvoiceAndDate": true,
"InvoiceSuppCheckDupMonths": 3,
"InvoiceSuppRejectDupMonts": 5,
"Active": true,
"Misc1Label": "Misc 1",
"Misc1Value": "m1",
"Misc2Label": "Misc 2",
"Misc2Value": "m2",
"Misc3Label": "Misc 3",
"Misc3Value": "m3",
"LastChanged": "2024-04-24T11:45:12.000"
}
]
}
},
"MoreResultsAvailable": false,
"NextChunkStartPointer": 2,
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Returns a list of suppliers available to the user
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SearchBySearchValue
Optional Inputs
FetchOnlyChangedSinceChunkStartPointerRecordFetchLimitIncludeInactive
Response
- ReturnCode
MessageTextMoreResultsAvailableNextChunkStartPointer- List of supplier records
Notes
- The
FetchOnlyChangedSinceparameter allows the user to determine if they would like records returned that have been modified since a particular date/time. This parameter is evaluated against the update date/time on the record. - This method allows a user to request a specific number of records. Please see the Chunking topic for more information
- Valid
SearchByoptions:- Supplier Name
- Supplier ID
- Supplier Address 1
- Supplier Address 2
- Supplier City
- Supplier State
- Supplier ZIP
- Supplier Phone
- Supplier Group ID
- Supplier Division ID
- A value of <all> can be specified in
SearchValue - If the input value sent for
IncludeInactiveis blank or null, the system saves the value as false
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
SupplierUpdate
Sample Request
{
"request": {
"SupplierID": "CLASUP",
"SupplierJSON": {
"dsSupplier": {
"dtSupplier": [
{
"Name": "CLARK SUPPLY",
"Address1": "890 Hawkeye Rd",
"Address2": "Suite A",
"Address3": "PO Box 890",
"City": "Coralville",
"State": "IA",
"ZIP": "78945",
"Country": "USA",
"Phone": "3193374908",
"PhoneFormat": "1",
"Fax": "3193372222",
"Website": "",
"DivisionID": "200",
"GroupID": "EXP-UNIFORMS",
"Currency": "USD",
"PrintCurrency": "Symbol",
"Active": true,
"UpdShipFromActiveWhenSetActive": false,
"Temporary": false,
"CarrierSupplier": true,
"CarrierType": "Rail",
"WMSIncludeLinkedOrders": false,
"WMSIncludeVerbalOrders": false,
"HistoryDisposition": "Open",
"HistoryStartDate": "2024-12-12",
"HistoryDateFirstOrder": "2022-12-12",
"HistoryCompanyCode": "CLARK",
"InvoiceDefaultVoucherStatus": "On hold",
"UpdOpenVoucherWithStatusChange": false,
"InvoicePaymentMethod": "ACH",
"InvoiceDaysToClear": 4,
"InvoicePaymentTermsCode": "eas",
"InvoiceCreditPaymentTermsCode": "eas",
"InvoiceCostType": "PO",
"InvoiceXrefRequiredBySupplier": "u",
"InvoiceCashGLAccount": "",
"InvoiceCashGLComponent": "xxx.0050021",
"InvoiceCashGLComponentLevel": 3,
"InvoiceAllowDuplicates": "true",
"InvoiceRejectIfDupInvoiceAndDate": false,
"InvoiceSuppCheckDupMonths": 1,
"InvoiceSuppRejectDupMonths": 1,
"Misc1Value": "",
"Misc2Value": "",
"Misc3Value": ""
}
]
}
}
}
}
Sample Response
{
"response": {
"AuditResults": {
"dsAuditResults": {}
},
"ReturnCode": 0,
"MessageText": ""
}
}
Purpose
Update existing supplier record
Header
ContextIdBranchContent-Type= application/json
Required Inputs
SupplierID
Optional Inputs
N/A
Response
- ReturnCode
MessageTextdsAuditResults
Notes
- DMSi strongly recommends reviewing
dsAuditResultsregardless of theReturnCodevalue - For the
InvoiceCashGLComponentrequest field, you must use an X or # as the placeholder character for spaces if the account or component begins with or contains spaces. - The
UpdShipFromActiveWhenSetActiverequest field allows you to set all ship-from records as active when setting the supplier record as active. - The
UpdOpenVoucherWithStatusChangerequest field allows you to update all open vouchers for the updated supplier with the updated invoice voucher status.
Relationships
ContextIdandBranchcome from Login- Alternate branches come from BranchList
Version Deployed
v610
Agility API Technical Information
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
Purpose
Changes the branch associated with a specified context id
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
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
Purpose
Creates transaction messages in the branch the user is logged into
RemanCreateHeader
Purpose
Creates a new reman order
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
Purpose
Creates signatures for sales order shipments and credit memo transactions in the branch the user is logged into
