Keystone Online Customer Portal REST API: Difference between revisions
No edit summary |
m (1 revision imported) |
Latest revision as of 12:58, 14 July 2023
Overview
The Keystone REST Server exposes a REST API which is used by the Keystone Online Customer Portal website.
See: Keystone_REST_Server_(KServer) for more on KServer.
Example URIs:
http://127.0.0.1:8211/rest/kOLcpapi/v1/connection
Connection Test API
ROOT: /rest/kOLcpapi/v1
connection
connection
- tests connection with the server
{ "kOLcpapi/v1": { "request_status": { "status": "200", "msg": "Keystone Online Customer Portal REST Server." } } }
API v1
ROOT: /rest/kdiapi/v1
Keystone Contact Functions
ContactInfo
ContactInfo/{Id}
- returns Keystone contact information for specified contact Id
{ "ContactInfo": [ { "CustId": "ALLEN", "Name": "Allen Construction", "Email": "Banders@anywhere.com" } ] }
ContactList
ContactList/{CustId}
- returns list of active Keystone contacts that have web portal access for specified CustId
{ "ContactList": [ { "Id": 1, "Email": "Janders@anywhere.com" }, { "Id": 2, "Email": "Banders@anywhere.com" } ] }
ContactLookup
ContactLookup/{Email}
- returns Keystone contact information for specified email address
{ "ContactLookup": [ { "Id": 2, "CustId": "ALLEN", "Name": "Allen Construction" } ] }
Customer Portal Functions
CustomerInvoices
CustomerInvoices/{ContactId}/{AgingDateLo1}/{AgingDateLo2}/{AgingDateHi2}/{AgingDateLo3}/{AgingDateHi3}/{AgingDateLo4}/{AgingDateHi4}/{AgingDateHi5}
?AgeByDate=0|1 (0=Invoice Date, 1=Due Date)
?IncPaid=N|Y (N=Open Invoices only, Y=All Invoices)
- returns invoices and aging for customer associated with the specified ContactId
- uses monthly aging based on today's date if aging dates not specified
{ "CustomerAging": [ { "Aging1": 0, "Aging2": 0, "Aging3": 0, "Aging4": 0, "Aging5": 203410.79 } ], "CustomerInvoices": [ { "CustId": "ALLEN", "InvoiceNo": 19502, "InvoiceType": "I", "InvoiceDate": "2009-05-09T00:00:00.000Z", "DueDate": "2009-05-09T00:00:00.000Z", "JobId": "ECHO VALLEY", "DebitAmt": 1300, "CreditAmt": 869.5, "InvoiceKey": "4759K35", "UMTotals": [ { "ProdUM": "CY", "QtyTotal": 20 } ] }, { "CustId": "ALLEN", "InvoiceNo": 19503, "InvoiceType": "I", "InvoiceDate": "2009-05-09T00:00:00.000Z", "DueDate": "2009-05-09T00:00:00.000Z", "JobId": "ECHO VALLEY", "DebitAmt": 14700, "CreditAmt": 0, "InvoiceKey": "4759K38", "UMTotals": [ { "ProdUM": "CY", "QtyTotal": 220 } ] } ] }
CustomerJobs
CustomerJobs/{ContactId}
- returns list of open jobs for customer associated with the specified ContactId
{ "CustomerJobs": [ { "JobId": "108 NORTHSIDE" }, { "JobId": "ECCO VALLEY" }, { "JobId": "ECHO VALLEY" }, { "JobId": "MEIJER" }, { "JobId": "PARK-N-RIDE" }, { "JobId": "VALE DO ECO" } ] }
InvoiceHistory
InvoiceHistory/{Id}
- returns invoice history (tickets and payments) for the specified Id (where Id is <session#>K<trans#>)
LoadGpsLocation
LoadGpsLocation/{Id}
- returns load gps location information for the specified Id (where Id is <session#>K<trans#>K<load#>)
OrdReqJobInfo
OrdReqJobInfo/{ContactId}/{JobId}
- returns job information and job products for specified JobId for customer associated with the specified ContactId
{ "OrdReqJobInfo": [ { "latitude": 40.0097883, "longitude": -83.0683519, "slump": 3, "spacing": 45, "shipTo1": "ECHO VALLEY Estates", "shipTo2": "345 W Adams St", "shipTo3": "Columbus,OH 43221", "delvInst1": "I 70 W to Exit 24 turn left", "delvInst2": "Go 6 miles to Brewister St", "delvInst3": "Turn Rt .75 mile on left", "products": [ { "prodId": "2510-05", "prodDesc": "2500 PSI w/ 57 Stone", "prodUM": "CY", "prodType": "M", "jobProd": true }, { "prodId": "FUEL-05", "prodDesc": "Fuel Charge", "prodUM": "EA", "prodType": "D", "jobProd": true } ] } ] }
OrdReqJobs
OrdReqJobs/{ContactId}
- returns list of active jobs for customer associated with the specified ContactId
{ "OrdReqJobs": [ { "JobId": "WALMART" }, { "JobId": "ECHO VALLEY" }, { "JobId": "I95 BRIDGE" } ] }
OrderRequest [POST]
OrderRequest
- submits an order request to Keystone
Request Content: [ { "customerId": "ALL100", "jobId": "WALMART", "delvDt": "2022-02-23T09:00Z", "spacing": 100, "slump": 3.5, "customerPo": "12345", "phoneNumber": "4135551212", "willCall": true, "latitude": 40.004076385875194, "longitude": -82.86115726470949, "shipTo1": "Ship To Line 1", "shipTo2": "Ship To Line 2", "shipTo3": "Ship To Line 3", "shipTo4": "Ship To Line 4", "delvInst1": "Delivery Instruction Line 1", "delvInst2": "Delivery Instruction Line 2", "delvInst3": "Delivery Instruction Line 3", "delvInst4": "Delivery Instruction Line 4", "dispatchNotes": "a place for the user to put miscellaneous notes for the dispatcher", "products": [ // mix product (prodType M) first { "jobProd": true, "prodId": "3010-01", "prodType": "M", "qtyOrd": 50, "loadSize": 10 }, // additives (prodType X) second { "jobProd": true, "prodId": "F-01", "prodType": "X" }, // addons (all other prodType including NULL) last { "jobProd": false, "prodId": "REBAR-01", "prodType": "Z", "qtyOrd": 25 }, { "jobProd": false, "prodId": "GLOVES", "qtyOrd": 4 } ] } ]
ScheduleOrders
ScheduleOrders/{ContactId}/{BegSchedDT}/{EndSchedDT}/{ActiveCarryHrs}/{UndelvCarryHrs}/{NTLLookAheadHrs}/{OrdselRangeHrs}
?IncComplete=true|false
?SlsId={SlsId}
?PlantId={PlantId}
- returns schedule order information for customer associated with the specified ContactId
- includes completed orders if IncComplete is true
- restrict to salesperson SlsId if specified
- restrict to plant PlantId if specified
{ "ScheduleOrders": [ { "OrderId": "2732", "TgtDepartDt": "2019-07-28T16:59:00.000Z", "CustId": "ALLEN", "CustName": "Allen Construction", "ProdId": "3010-01", "ProdDesc": "3000 PSI w/ 1\" Stone", "LdsActive": 0, "LdsCompleted": 0, "QtyOrd": 20, "QtyDel": 0, "OrderKey": "17491K1", "OrderStatus": "O", "DeliveryDt": "2019-07-28T17:15:00.000Z", "WillCall": false, "Plus": false, "Completed": false }, { "OrderId": "2733", "TgtDepartDt": "2019-07-28T18:34:00.000Z", "CustId": "ALLEN", "CustName": "Allen Construction", "ProdId": "2510-01", "ProdDesc": "2500 PSI w/ 57 Stone", "LdsActive": 0, "LdsCompleted": 0, "QtyOrd": 15, "QtyDel": 0, "OrderKey": "17491K5", "OrderStatus": "O", "DeliveryDt": "2019-07-28T19:00:00.000Z", "WillCall": false, "Plus": false, "Completed": false } ], "Totals": [ { "LdsOrd": 7, "LdsDel": 0, "LdsRem": 7, "LdsWc": 0, "QtyOrd": 35, "QtyDel": 0, "QtyRem": 35, "QtyWc": 0 } ] }
ScheduleOrderLoads
ScheduleOrderLoads/{Id}
?IncComplete=true|false
- returns schedule order load information (active & completed loads) for the specified Id (where Id is <session#>K<trans#>)
- includes completed orders if IncComplete is true
Ticket
Ticket/{Id}
- returns ticket, products and batch weights information for the specified Id (where Id is <session#>K<trans#>)
Payment Processor Functions
CustomerPayments [POST]
CustomerPayments/{Id}
- handles the payment processor "capture" process (where Id is the payment processor identifier, currently "1" for CardConnect)
PPSettlement [POST]
PPSettlement/{Id}
- handles the payment processor "settlement" process (where Id is the payment processor identifier, currently "1" for CardConnect)
Request Content: [ { "respproc": "RPCT", "hostbatch": "0000000136", "refundtotal": "0.00", "batchid": "128", "chargetotal": "136784.68", "hoststat": "GB", "merchid": "830000000058", "txns": [ { "setlamount": "1231.00", "setlstat": "Y", "salesdoc": "3862", "retref": "033326134033" }, { "setlamount": "120.00", "setlstat": "Y", "salesdoc": "3862", "retref": "033765135734" }, { "setlamount": "123123.00", "setlstat": "Y", "salesdoc": "3862", "retref": "033168137483" }, { "setlamount": "9.00", "setlstat": "Y", "salesdoc": "4787", "retref": "033229740140" }, { "setlamount": "19.33", "setlstat": "Y", "salesdoc": "4787", "retref": "033371047518" }, { "setlamount": "26.50", "setlstat": "Y", "salesdoc": "4787", "retref": "033472747941" }, { "setlamount": "13.85", "setlstat": "Y", "salesdoc": "4787", "retref": "033049148127" }, { "setlamount": "12121.00", "setlstat": "Y", "salesdoc": "3862", "retref": "033753750784" }, { "setlamount": "121.00", "setlstat": "Y", "salesdoc": "3862", "retref": "033472152392" } ] }, { "respproc": "RPCT", "hostbatch": "0000000136", "refundtotal": "0.00", "batchid": "129", "chargetotal": "5.00", "hoststat": "GB", "merchid": "830000000058", "txns": [ { "setlamount": "5.00", "setlstat": "Y", "salesdoc": "129879", "retref": "033124734715" } ] } ]