Keystone Quote REST API
Overview
The Keystone REST Server exposes a REST API which is used by Keystone Quoting to communicate with the Keystone Application Server.
Keystone Quoting is accessed from Keystone Cloud applications.
See:
- Keystone_REST_Server_(KServer) for more on KServer.
- Interface Spec: File:BCQCI V3.pdf
Example URIs:
http://127.0.0.1:8211/rest/kqtapi1/connection
Connection Test API
ROOT: /rest/kqtapi1
connection
connection
- tests connection with the server
{ "kqtapi": { "request_status": { "status": "200", "msg": "Keystone Quote REST Server." } } }
API v1
ROOT: /rest/kqtapi1
Quote Endpoints
Quote [GET]
Quote/{Id}
- returns quote information for the specified Id (where Id is <session#>K<trans#>)
{ "Quote": [ { "Id": "161K1", "ProspId": "BLA100", "JobId": "RIVERFRONT", "BatchJobId": "RIVERFRONT", "InvoiceDesc": "RIVERFRONT", "SlsId": "DS", "JobClassId": "1", "ZoneId": "20", "TaxAuthId": "MA", "CustomerPO": "12345", "QuoteDate": "2009-02-11T00:00:00.000Z", "PurgeDate": "2009-05-11T00:00:00.000Z", "LastRevisedDate": "2009-02-11T00:00:00.000Z", "FollowUpDate": "2009-04-01T00:00:00.000Z", "ExpirationDate": "2009-05-11T00:00:00.000Z", "JobStartDate": "2009-06-01T00:00:00.000Z", "JobEndDate": "2009-06-30T00:00:00.000Z", "WonLostDate": "2009-02-11T00:00:00.000Z", "BookDate": "2009-02-11T00:00:00.000Z", "Status": "L", // (O)pen, (W)on, (L)ost, (C)losed "Potential": "1", "Rating": "20", "ReasonId": "P", "ReasonDesc": "Price", "Competitor": "Joe Schmoe Concrete", "Conditions": "Standard minimum load charges apply.\r\n", "ProspType": "C", // (C)ustomer, (P)rospect "Booked": false, "CompetitorBid": 31000, "GpsLat": 39.9950582, "GpsLong": -82.8542814, "GpsRadius": 0.048199685699016, "QuoteSubTotal": 525.50, "QuoteTaxTotal": 27.24, "ShipTo1": "Ship To Address 1", "ShipTo2": "Ship To Address 2", "ShipTo3": "Ship To Address 3", "ShipTo4": "Ship To Address 4", "DelvInst1": "Delivery Instruction 1", "DelvInst2": "Delivery Instruction 2", "DelvInst3": "Delivery Instruction 3", "DelvInst4": "Delivery Instruction 4", "Products": [ { "Id": "161K1K1", "ProdId": "4416-21", "Description": "4x4x16 Solid", "ProdUM": "EA", "QtyOrd": 60000, "UnitPrice": 0.415 }, { "Id": "161K1K2", "ProdId": "34-11", "Description": "3\/4\" Stone", "ProdUM": "TN", "QtyOrd": 800, "UnitPrice": 8.75 } ], "Contacts": [ { "Id": 37, "Name": "Don Tupak", "Title": "President", "Phone": "614-310-1234", "PhoneMobile": "614-310-2345", "Email": "Dtupak@anywhere.com", "EmailOption": "Y", // (Y)es, (N)o, (C)c, (B)cc "ContactType": "C" // (C)ustomer, (P)rospect, (Q)uote }, { "Id": 38, "Name": "Bill Cummins", "Title": "Vice President", "Phone": "614-310-5678", "PhoneMobile": "614-310-6789", "Email": "Bcummins@anywhere.com", "EmailOption": "C", "ContactType": "Q" // (Q)uote } ] } ] }
Quote [POST]
Quote
- adds a new quote and returns the GET Quote result
Request Content: { "Quote": [ { "ProspId": "BLA100", "JobId": "RIVERFRONT", "BatchJobId": "RIVERFRONT", "InvoiceDesc": "RIVERFRONT", "SlsId": "DS", "JobClassId": "1", "ZoneId": "20", "TaxAuthId": "MA", "CustomerPO": "12345", "QuoteDate": "2009-02-11T00:00:00.000Z", "PurgeDate": "2009-05-11T00:00:00.000Z", "LastRevisedDate": "2009-02-11T00:00:00.000Z", "FollowUpDate": "2009-04-01T00:00:00.000Z", "ExpirationDate": "2009-05-11T00:00:00.000Z", "JobStartDate": "2009-06-01T00:00:00.000Z", "JobEndDate": "2009-06-30T00:00:00.000Z", "WonLostDate": "2009-02-11T00:00:00.000Z", "BookDate": "2009-02-11T00:00:00.000Z", "Status": "L", // (O)pen, (W)on, (L)ost, (C)losed "Potential": "1", "Rating": "20", "ReasonId": "P", "ReasonDesc": "Price", "Competitor": "Joe Schmoe Concrete", "Conditions": "Standard minimum load charges apply.\r\n", "ProspType": "C", // (C)ustomer, (P)rospect "Booked": false, "CompetitorBid": 31000, "GpsLat": 39.9950582, "GpsLong": -82.8542814, "GpsRadius": 0.048199685699016, "ShipTo1": "Ship To Address 1", "ShipTo2": "Ship To Address 2", "ShipTo3": "Ship To Address 3", "ShipTo4": "Ship To Address 4", "DelvInst1": "Delivery Instruction 1", "DelvInst2": "Delivery Instruction 2", "DelvInst3": "Delivery Instruction 3", "DelvInst4": "Delivery Instruction 4", "Products": [ { "ProdId": "4416-21", "Description": "4x4x16 Solid", "ProdUM": "EA", "QtyOrd": 60000, "UnitPrice": 0.415 }, { "ProdId": "34-11", "Description": "3\/4\" Stone", "ProdUM": "TN", "QtyOrd": 800, "UnitPrice": 8.75 } ], "Contacts": [ { "Name": "Don Tupak", "Title": "President", "Phone": "614-310-1234", "PhoneMobile": "614-310-2345", "Email": "Dtupak@anywhere.com", "EmailOption": "Y", // (Y)es, (N)o, (C)c, (B)cc "ContactType": "C" // (C)ustomer, (P)rospect, (Q)uote }, { "Name": "Bill Cummins", "Title": "Vice President", "Phone": "614-310-5678", "PhoneMobile": "614-310-6789", "Email": "Bcummins@anywhere.com", "EmailOption": "C", "ContactType": "Q" // (Q)uote } ] } ] }
Quote [PUT]
Quote/{Id}
- updates an existing quote for the specified Quote Id (where Id is <session#>K<trans#>)
Request Content: { "Quote": [ { "ProspId": "BLA100", "JobId": "RIVERFRONT", "BatchJobId": "RIVERFRONT", "InvoiceDesc": "RIVERFRONT", "SlsId": "DS", "JobClassId": "1", "ZoneId": "20", "TaxAuthId": "MA", "CustomerPO": "12345", "QuoteDate": "2009-02-11T00:00:00.000Z", "PurgeDate": "2009-05-11T00:00:00.000Z", "LastRevisedDate": "2009-02-11T00:00:00.000Z", "FollowUpDate": "2009-04-01T00:00:00.000Z", "ExpirationDate": "2009-05-11T00:00:00.000Z", "JobStartDate": "2009-06-01T00:00:00.000Z", "JobEndDate": "2009-06-30T00:00:00.000Z", "WonLostDate": "2009-02-11T00:00:00.000Z", "BookDate": "2009-02-11T00:00:00.000Z", "Status": "L", // (O)pen, (W)on, (L)ost, (C)losed "Potential": "1", "Rating": "20", "ReasonId": "P", "ReasonDesc": "Price", "Competitor": "Joe Schmoe Concrete", "Conditions": "Standard minimum load charges apply.\r\n", "ProspType": "C", // (C)ustomer, (P)rospect "Booked": false, "CompetitorBid": 31000, "GpsLat": 39.9950582, "GpsLong": -82.8542814, "GpsRadius": 0.048199685699016, "ShipTo1": "Ship To Address 1", "ShipTo2": "Ship To Address 2", "ShipTo3": "Ship To Address 3", "ShipTo4": "Ship To Address 4", "DelvInst1": "Delivery Instruction 1", "DelvInst2": "Delivery Instruction 2", "DelvInst3": "Delivery Instruction 3", "DelvInst4": "Delivery Instruction 4", } ] }
Quote Product [GET]
Quote/{Id}/Products/{PId}
- returns quote product information for the specified Quote Id (where Id is <session#>K<trans#>) and PId (where PId is <session#>K<trans#>K<line#>)
{ "Products": [ { "Id": "161K1K1", "ProdId": "4416-21", "Description": "4x4x16 Solid", "ProdUM": "EA", "QtyOrd": 60000, "UnitPrice": 0.415 } ] }
Quote Product [POST]
Quote/{Id}/Products
- adds a new quote product and returns the GET Quote Product result
Request Content: { "Products": [ { "ProdId": "4416-21", "Description": "4x4x16 Solid", "ProdUM": "EA", "QtyOrd": 60000, "UnitPrice": 0.415 } ] }
Quote Product [PUT]
Quote/{Id}/Products/{PId}
- updates quote product information for the specified Quote Id (where Id is <session#>K<trans#>) and PId (where PId is <session#>K<trans#>K<line#>)
Request Content: { "Products": [ { "ProdId": "4416-21", "Description": "4x4x16 Solid", "ProdUM": "EA", "QtyOrd": 60000, "UnitPrice": 0.415 } ] }
Quote Product [DELETE]
Quote/{Id}/Products/{PId}
- deletes quote product information for the specified Quote Id (where Id is <session#>K<trans#>) and PId (where PId is <session#>K<trans#>K<line#>)
Quote Contact [GET]
Quote/{Id}/Contacts/{CId}
- returns quote contact information for the specified Quote Id (where Id is <session#>K<trans#>) and CId (where CId is <reckey>)
{ "Contacts": [ { "Id": 37, "Name": "Don Tupak", "Title": "President", "Phone": "614-310-1234", "PhoneMobile": "614-310-2345", "Email": "Dtupak@anywhere.com", "EmailOption": "C", "ContactType": "Q" // (Q)uote } ] }
Quote Contact [POST]
Quote/{Id}/Contacts
- adds a new quote contact and returns the GET Quote Contact result
Request Content: { "Contacts": [ { "Name": "Don Tupak", "Title": "President", "Phone": "614-310-1234", "PhoneMobile": "614-310-2345", "Email": "Dtupak@anywhere.com", "EmailOption": "C" } ] }
Quote Contact [PUT]
Quote/{Id}/Contacts/{CId}
- updates quote contact information for the specified Quote Id (where Id is <session#>K<trans#>) and CId (where CId is <reckey>)
Request Content: { "Contacts": [ { "Name": "Don Tupak", "Title": "President", "Phone": "614-310-1234", "PhoneMobile": "614-310-2345", "Email": "Dtupak@anywhere.com", "EmailOption": "C" } ] }
Quote Contact [DELETE]
Quote/{Id}/Contacts/{CId}
- deletes quote contact information for the specified Quote Id (where Id is <session#>K<trans#>) and CId (where CId is <reckey>)
QuoteCount
QuoteCount/{SlsId}
?prospid=xxx
?status=x
?booked=true|false
?begfupdate=yyyy-mm-dd
?endfupdate=yyyy-mm-dd
?begexpdate=yyyy-mm-dd
?endexpdate=yyyy-mm-dd
?begbookdate=yyyy-mm-dd
?endbookdate=yyyy-mm-dd
?begwonlostdate=yyyy-mm-dd
?endwonlostdate=yyyy-mm-dd
- returns count of active, non-closed quotes
- use prospid to include quotes for the specified prospect
- use status to include quotes for the specified status ([O]pen, [C]losed, [W]on, [L]ost) (Keystone 3.2.8.3+)
- use booked to include quotes that are booked/not booked (Keystone 3.2.8.3+)
- use begfupdate to include quotes with no follow-up date or where the follow-up date >= begfupdate (Keystone 3.2.8.2+)
- use both begfupdate and endfupdate to include quotes with no follow-up date or where the follow-up date is between begfupdate and endfupdate (Keystone 3.2.8.2+)
- use begexpdate to include quotes with no expiration date or where the expiration date >= begexpdate (Keystone 3.2.8.1+)
- use both begexpdate and endexpdate to include quotes that have an expiration date between begexpdate and endexpdate (Keystone 3.2.8.1+)
- use begbookdate to include quotes with no book date or where the book date >= begbookdate (Keystone 3.2.8.4+)
- use both begbookdate and endbookdate to include quotes that have a book date between begbookdate and endbookdate (Keystone 3.2.8.4+)
- use begwonlostdate to include quotes with no won/lost date or where the won/lost date >= begwonlostdate (Keystone 3.2.8.4+)
- use both begwonlostdate and endwonlostdate to include quotes that have a won/lost date between begwonlostdate and endwonlostdate (Keystone 3.2.8.4+)
{ "QuoteCount": [ { "Count": 24 } ] }
QuoteCountWonLost
QuoteCountWonLost/{SlsId}
?prospid=xxx
?begwonlostdate=yyyy-mm-dd
?endwonlostdate=yyyy-mm-dd
- returns list of active quotes that have a status of Won or Lost
- use prospid to include quotes for the specified prospect
- use begwonlostdate to include quotes with no won/lost date or where the won/lost date >= begwonlostdate (Keystone 3.2.8.4+)
- use both begwonlostdate and endwonlostdate to include quotes that have a won/lost date between begwonlostdate and endwonlostdate (Keystone 3.2.8.4+)
{ "QuoteCountWonLost": [ { "WonLost": "L", "WonLostMo": 2, "WonLostYr": 2009, "QuoteCount": 1, "QuoteTotal": 59500, "QuoteCost": 0 }, { "WonLost": "L", "WonLostMo": 3, "WonLostYr": 2009, "QuoteCount": 1, "QuoteTotal": 14750, "QuoteCost": 0 }, { "WonLost": "W", "WonLostMo": 1, "WonLostYr": 2009, "QuoteCount": 2, "QuoteTotal": 632707, "QuoteCost": 366489 }, { "WonLost": "W", "WonLostMo": 2, "WonLostYr": 2009, "QuoteCount": 1, "QuoteTotal": 30500, "QuoteCost": 0 }, { "WonLost": "W", "WonLostMo": 3, "WonLostYr": 2009, "QuoteCount": 5, "QuoteTotal": 616820, "QuoteCost": 0 } ] }
QuoteList
QuoteList/{SlsId}
?prospid=xxx
?status=x
?booked=true|false
?begfupdate=yyyy-mm-dd
?endfupdate=yyyy-mm-dd
?begexpdate=yyyy-mm-dd
?endexpdate=yyyy-mm-dd
?begbookdate=yyyy-mm-dd
?endbookdate=yyyy-mm-dd
?begwonlostdate=yyyy-mm-dd
?endwonlostdate=yyyy-mm-dd
?beglastreviseddate=yyyy-mm-dd
?endlastreviseddate=yyyy-mm-dd
- returns list of active, non-closed quotes
- use prospid to include quotes for the specified prospect
- use status to include quotes for the specified status ([O]pen, [C]losed, [W]on, [L]ost) (Keystone 3.2.8.3+)
- use booked to include quotes that are booked/not booked (Keystone 3.2.8.3+)
- use begfupdate to include quotes with no follow-up date or where the follow-up date >= begfupdate (Keystone 3.2.8.2+)
- use both begfupdate and endfupdate to include quotes with no follow-up date or where the follow-up date is between begfupdate and endfupdate (Keystone 3.2.8.2+)
- use begexpdate to include quotes with no expiration date or where the expiration date >= begexpdate (Keystone 3.2.8.1+)
- use both begexpdate and endexpdate to include quotes that have an expiration date between begexpdate and endexpdate (Keystone 3.2.8.1+)
- use begbookdate to include quotes with no book date or where the book date >= begbookdate (Keystone 3.2.8.4+)
- use both begbookdate and endbookdate to include quotes that have a book date between begbookdate and endbookdate (Keystone 3.2.8.4+)
- use begwonlostdate to include quotes with no won/lost date or where the won/lost date >= begwonlostdate (Keystone 3.2.8.4+)
- use both begwonlostdate and endwonlostdate to include quotes that have a won/lost date between begwonlostdate and endwonlostdate (Keystone 3.2.8.4+)
- use beglastreviseddate to include quotes with no last revised date or where the last revised date >= beglastreviseddate (Keystone 3.6.6.5+)
- use both beglastreviseddate and endlastreviseddate to include quotes that have a last revised date between beglastreviseddate and endlastreviseddate (Keystone 3.6.6.5+)
{ "QuoteList": [ { "ProspId": "ALLEN", "JobId": "1", "SlsId": "BA", "JobClassId": "SJ", "ZoneId": "10", "QuoteDate": "2010-02-11T00:00:00.000Z", "FollowUpDate": "2010-04-30T00:00:00.000Z", "ExpirationDate": "2011-03-18T00:00:00.000Z", "WonLostDate": "2010-02-28T00:00:00.000Z", "BookDate": "2010-02-28T00:00:00.000Z", "LastRevisedDate": "2010-02-11T00:00:00.000Z", "Status": "W", // Won "Booked": true, "Rating": "100", "Potential": "A", "ReasonId": "", // Reason Code if quote status = Lost "ReasonDesc": "", // Reason Desc if quote status = Lost "Id": "5748K1", "ProspType": "C" // Customer }, { "ProspId": "ALLEN", "JobId": "TEST", "SlsId": "BA", "QuoteDate": "2013-10-11T00:00:00.000Z", "FollowUpDate": "2013-11-30T00:00:00.000Z", "ExpirationDate": "2014-10-15T00:00:00.000Z", "LastRevisedDate": "2013-10-11T00:00:00.000Z", "Status": "O", // Open "QuoteSubTotal": 79840, "Id": "6930K1", "ProspType": "C", // Customer "Booked": false }, { "ProspId": "ALLEN", "JobId": "TEST 2", "SlsId": "BA", "QuoteDate": "2018-01-11T00:00:00.000Z", "FollowUpDate": "2018-02-28T00:00:00.000Z", "ExpirationDate": "2019-01-10T00:00:00.000Z", "LastRevisedDate": "2018-01-11T00:00:00.000Z", "Status": "O", // Open "QuoteSubTotal": 13107.6, "Id": "6998K1", "ProspType": "C", // Customer "Booked": false } ] }
ApprovedQuoteList
ApprovedQuoteList/{UserId}
- returns list of active, approved quotes for a user
{ "ApprovedQuoteList": [ { "ProspId": "ALLEN", "JobId": "1", "SlsId": "BA", "JobClassId": "SJ", "ZoneId": "10", "QuoteDate": "2010-02-11T00:00:00.000Z", "FollowUpDate": "2010-04-30T00:00:00.000Z", "ExpirationDate": "2011-03-18T00:00:00.000Z", "WonLostDate": "2010-02-28T00:00:00.000Z", "BookDate": "2010-02-28T00:00:00.000Z", "Status": "W", // Won "Booked": true, "Rating": "100", "Potential": "A", "ReasonId": "", // Reason Code if quote status = Lost "ReasonDesc": "", // Reason Desc if quote status = Lost "Id": "5748K1", "ProspType": "C" // Customer }, { "ProspId": "ALLEN", "JobId": "TEST", "SlsId": "BA", "QuoteDate": "2013-10-11T00:00:00.000Z", "FollowUpDate": "2013-11-30T00:00:00.000Z", "ExpirationDate": "2014-10-15T00:00:00.000Z", "Status": "O", // Open "QuoteSubTotal": 79840, "Id": "6930K1", "ProspType": "C", // Customer "Booked": false }, { "ProspId": "ALLEN", "JobId": "TEST 2", "SlsId": "BA", "QuoteDate": "2018-01-11T00:00:00.000Z", "FollowUpDate": "2018-02-28T00:00:00.000Z", "ExpirationDate": "2019-01-10T00:00:00.000Z", "Status": "O", // Open "QuoteSubTotal": 13107.6, "Id": "6998K1", "ProspType": "C", // Customer "Booked": false } ] }
ReviseQuote [PUT]
ReviseQuote/{Id}
- sets LastRevisedDate for the specified Quote Id to the current date (where Id is <session#>K<trans#>)
Prospect Endpoints
Prospect
Prospect/{Id}
- returns all essential data for one customer/prospect
{ "Prospect": [ { "ProspId": "ALLEN", "Name": "Allen Construction", "Address1": "3454 Riverside Drive", "Address2": "PO Box 676", "City": "Springfield", "State": "MA", "Zip": "01108-0676", "Phone": "(413) 486-5555", "Fax": "(413) 486-5556", "Contact": "William Smith", "SlsId": "BA", "CustomerClassId": "CC", "StartDate": "2009-02-08T00:00:00.000Z", "ChargeCode": "Y", "TaxAuthId": "MA", "TaxCode": "Y", "Cod": "N", "CreditLimit": 0, "ArBalance": 203410.79, "CreditTermsId": "1", "PoRequired": "N", "ProspType": "C", // Customer "Contacts": [ { "Id": 1, "Name": "Jay Anders", "Email": "Janders@anywhere.com", "EmailQuote": false }, { "Id": 2, "Name": "Bob Anders", "Email": "Banders@anywhere.com", "EmailQuote": false } ] } ] }
ProspectList
ProspectList
- returns combined list of active customers and prospects
{ "ProspectList": [ { "ProspId": "ALLEN", "Name": "Allen Construction", "Address1": "3454 Riverside Drive", "Address2": "PO Box 676", "City": "Springfield", "State": "MA", "Zip": "01108-0676", "Phone": "(413) 486-5555", "SlsId": "BA", "CustomerClassId": "CC", "ProspType": "C" // Customer }, { "ProspId": "BER100", "Name": "Berkshire Power", "Address1": "1295 Stockbridge Ave.", "City": "Pittsfield", "State": "MA", "Zip": "01201", "Phone": "(413) 499-2100", "SlsId": "JE", "CustomerClassId": "P", "ProspType": "C" // Customer }, { "ProspId": "PIO100", "Name": "Pioneer Valley Homes", "Address1": "147 School St.", "City": "Hatfield", "State": "MA", "Zip": "01047", "Phone": "(413) 252-3492", "SlsId": "BA", "CustomerClassId": "GC", "ProspType": "P" // Prospect } ] }
Lookup List Endpoints
CreditTermsList
CreditTermsList
- returns list of active credit terms (defines due date and discount date)
{ "CreditTermsList": [ { "CreditTermsId": "1D", "Description": "DISC. EXPIRES 10 DAYS" }, { "CreditTermsId": "1T", "Description": "DISC. EXPIRES ON 10TH" }, { "CreditTermsId": "15", "Description": "DISC. EXPIRES 15 DAYS", "Notes": "Here are some notes for Disc Expires 15 Days" }, { "CreditTermsId": "20", "Description": "DISC. EXPIRES 20 DAYS" }, { "CreditTermsId": "1", "Description": "NET 30 DAYS", "Notes": "Here are some notes for Net 30" }, { "CreditTermsId": "C", "Description": "Cash Only" } ] }
SalespersonList
SalespersonList
- returns list of active salespeople
{ "SalespersonList": [ { "SlsId": "JE", "Name": "Jim Evans" }, { "SlsId": "BA", "Name": "Bob Archer", "Notes": "Top salesperson of the year 2016." }, { "SlsId": "DS", "Name": "Doug Sheehan" }, { "SlsId": "TC", "Name": "Tom Cross" }, { "SlsId": "H", "Name": "House Account" } ] }
ReasonList
ReasonList
- returns list of active reasons a quote is won or lost
{ "ReasonList": [ { "ReasonId": "C", "Description": "Capacity (pouring)" }, { "ReasonId": "D", "Description": "Delivery Radius" }, { "ReasonId": "P", "Description": "Price", "Notes": "We beat the competition (or they beat us!)" } ] }
CustomerClassList
CustomerClassList
- returns list of active customer classes (indicates type of customer/prospect - e.g. contractor, government, etc.)
{ "CustomerClassList": [ { "CustomerClassId": "GC", "Description": "General Contractor" }, { "CustomerClassId": "CC", "Description": "Commercial Contractor" }, { "CustomerClassId": "G", "Description": "Government Agency", "Notes": "Must obtain a federal ID #." }, { "CustomerClassId": "NP", "Description": "Non-Profit" }, { "CustomerClassId": "XX", "Description": "Delinquent Accounts" }, { "CustomerClassId": "L", "Description": "Landscaper" }, { "CustomerClassId": "P", "Description": "Private Company\/Individual" }, { "CustomerClassId": "C", "Description": "COD Customer" } ] }
TaxAuthorityList
TaxAuthorityList
- returns list of active tax authorities
{ "TaxAuthorityList": [ { "TaxAuthId": "1901", "Description": "Cle Elum" }, { "TaxAuthId": "CT", "Description": "Connecticut Sales Tax" }, { "TaxAuthId": "MA", "Description": "Massachusetts Sales Tax" }, { "TaxAuthId": "NH", "Description": "New Hampshire" }, { "TaxAuthId": "VT", "Description": "Vermont Sales Tax" } ] }
ZoneList
ZoneList
- returns list of active delivery zones
{ "ZoneList": [ { "ZoneId": "05", "Description": "05 Minutes" }, { "ZoneId": "10", "Description": "10 Minutes" }, { "ZoneId": "15", "Description": "15 Minutes" }, { "ZoneId": "20", "Description": "20 Minutes" } ] }
PlantList
PlantList
- returns list of active plants
{ "PlantList": [ { "PlantId": "01", "Name": "GH Concrete Co., Inc.", "PlantTypeId": "D" // Dispatch - Concrete }, { "PlantId": "02", "Name": "GH Concrete Co., Inc.", "PlantTypeId": "D" }, { "PlantId": "11", "Name": "Springfield Sand & Gravel", "PlantTypeId": "A" // Aggregate }, { "PlantId": "12", "Name": "Hartford Sand & Gravel Co.", "PlantTypeId": "A" }, { "PlantId": "20", "Name": "ASPHALT PLANT", "PlantTypeId": "S" // Asphalt }, { "PlantId": "21", "Name": "GH Concrete Co., Inc.", "PlantTypeId": "B" // Concrete } ] }
UsageList
UsageList
- returns list of active usage classes
{ "UsageList": [ { "UsageId": "BA", "Description": "BASEMENT" }, { "UsageId": "BD", "Description": "BRIDGE DECK" }, { "UsageId": "C", "Description": "CURBS" }, { "UsageId": "F", "Description": "FOOTING" }, { "UsageId": "S", "Description": "STEPS" }, { "UsageId": "W", "Description": "WALLS" } ] }
ProductList
ProductList
?PlantId=xxx
?ProdType=x
?IngType=x
?Sellable=true|false
- returns list of active products
- use PlantId to include products for the specified plant
- use ProdType to include products of the specified type
- use IngType to include products of the specified ingredient type
- use Sellable to include products that are sellable/non-sellable (default = True)
{ "ProductList": [ { "ProdId": "10416-21", "Description1": "10x4x16 Solid", "PlantId": "21" }, { "ProdId": "12416-21", "Description1": "12x4x16 Solid", "PlantId": "21" }, { "ProdId": "2510-01", "Description1": "2500 PSI w\/ 57 Stone", "PlantId": "01" }, { "ProdId": "2510-02", "Description1": "2500 PSI w\/ 57 Stone", "PlantId": "02" }, { "ProdId": "2510-03", "Description1": "2500 PSI w\/ 57 Stone", "PlantId": "03" } ] }
TaxExemptList
TaxExemptList
- returns list of active tax exempt reasons
{ "TaxExemptList": [ { "ExemptId": "1", "Description": "Reseller" }, { "ExemptId": "2", "Description": "Transportation" }, { "ExemptId": "3", "Description": "Government" }, { "ExemptId": "9", "Description": "Service Charge" } ] }
PlantMixList
PlantMixList
- returns list of plant mix types
{ "PlantMixList": [ { "PlantMixId": "D", "Description": "Dry" }, { "PlantMixId": "W", "Description": "Wet" }, { "PlantMixId": "", "Description": "<Default>" } ] }
StatusList
StatusList
- returns list of quote statuses
{ "StatusList": [ { "StatusId": "O", "Description": "Open" }, { "StatusId": "W", "Description": "Won" }, { "StatusId": "L", "Description": "Lost" }, { "StatusId": "C", "Description": "Closed" } ] }
ShowJobProdList
ShowJobProdList
- returns list of show job products codes
{ "ShowJobProdList": [ { "ShowJobProdId": "0", "Description": "Active Plant Products" }, { "ShowJobProdId": "1", "Description": "Quoted & Active Plant Products" }, { "ShowJobProdId": "2", "Description": "Quoted Products Only" }, { "ShowJobProdId": "3", "Description": "Quoted Products Only Line 1" }, { "ShowJobProdId": "", "Description": "<Default>" } ] }
ApprovalCodeList
ApprovalCodeList/{UserId}
- returns list of active approval codes for a user
{ "ApprovalCodeList": [ { "ApprovalId": "100", "Description": "Code 100", "RoleId": "SLSPN" }, { "ApprovalId": "205", "Description": "Code 205", "RoleId": "BOSS" }, { "ApprovalId": "207", "Description": "Code 207", "RoleId": "BOSS" }, { "ApprovalId": "500", "Description": "Code 500", "RoleId": "BOSS" } ] }
JobClassList
JobClassList
- returns list of active job classes
{ "JobClassList": [ { "JobClassId": "ST", "Description": "State Job" }, { "JobClassId": "GC", "Description": "General Contractor Job" } ] }
Action Endpoints
GetProductPrice
GetProductPrice/{Id}
?ProspId=xxx
?ZoneId=xxx
?TaxAuthId=xxx
?PlantId=xxx
?QtySold=xxx.xx
- returns product price for the specified Id
- ProspId specifies the prospect
- ZoneId specifies the zone
- TaxAuthId specifies the Tax Authority
- PlantId specifies the Plant
- QtySold specifies the quantity sold
{ "GetProductPrice": [ { "Source": "C", "UnitPrice": 89, "UnitPctDisc": "2%", "ProdUM": "CY", "Description": "2500 PSI w/ Pea (FA)", "TaxCode1": "Y", "TaxCode2": "Y", "TaxCode3": "Y" } ] }