DIS Parts Store API - Test Report
Date: 2026-01-06 Environment: cl2342.disprism.com (Production) API Key: REDACTED - stored in environment variables
DIS Parts Store API - Test Report
Date: 2026-01-06 Environment: cl2342.disprism.com (Production) API Key: [REDACTED - stored in environment variables]
WARNING: Test Orders Created
During testing, the following orders were accidentally created in DIS production:
| Order # | Status | Action Required |
|---|---|---|
| IE93166 | ACCEPTED | Contact DIS to void |
| IE93167 | ACCEPTED | Contact DIS to void |
| IE93168 | ACCEPTED | Contact DIS to void |
| IE93169 | ACCEPTED | Contact DIS to void |
Customer: CASHC (default cash customer) Part: A4020055 HYDRAULIC MOTOR Names Used: TEST USER, JOHN DOE
Action: Contact DIS team to cancel/void these test orders before production integration.
Future Testing: Use identifiable names like "appdev-v" or "Vova.pirotskiy" for test orders.
Executive Summary
Three Parts Store endpoints tested successfully. 34 of 87 Quantum API endpoints accessible. Critical issues found in tax calculation logic requiring clarification before production integration.
Test Environment
| Parameter | Value |
|---|---|
| Base URL | https://cl2342.disprism.com |
| Parts Store Path | /report-api/api/partsStore/ |
| Quantum API Path | /api/ |
| Authentication | X-API-KEY header |
| DealerId | C |
Parts Store API Results
Endpoint Status
| Endpoint | Method | Status | Response Time |
|---|---|---|---|
| /partsInquiry | POST | 200 OK | <1s |
| /taxLookup | POST | 200 OK | <1s |
| /pushOrder | POST | 200 OK | <1s |
partsInquiry
Working:
- Single and multiple part queries
- Returns price, availability, quantity on hand
- Customer ID passthrough (KComCustId, DBSCustId)
Issues:
- Non-existent parts silently omitted from response (no error indicator)
- Invalid DealerId returns HTTP 500 (expected: 400)
- Invalid API key returns HTTP 500 (expected: 401/403)
Sample Request:
{
"DealerId": "C",
"Parts": [{"ManufacturerCode": "KUH", "PartNumber": "A4020055"}]
}Sample Response:
{
"Parts": [{"ManufacturerCode": "KUH", "PartNumber": "A4020055", "Price": 2721.33, "Available": false, "QtyOnHand": 0}],
"DealerId": "C"
}taxLookup
Working:
- Basic tax calculation for valid US addresses
- Multiple cart items supported
- ShipAmount included in calculation
Issues:
| Issue | Severity | Details |
|---|---|---|
| Oregon returns tax | Critical | Oregon (97201) has no sales tax but returns $238.12 |
| TaxExemptions fails | Critical | Returns HTTP 500 when TaxExemptions array included |
| NonTaxable ignored | Medium | Flag does not reduce calculated tax |
| DeliveryFee missing | Medium | Not returned for Colorado (per documentation) |
| Invalid location | Low | Returns HTTP 500 (expected: 400) |
Tax Calculation Test Results:
| Location | Expected Behavior | Actual Result |
|---|---|---|
| Iowa (52732) | Standard tax | $238.12 |
| California (90210) | Higher tax | $242.49 |
| Oregon (97201) | Zero tax | $238.12 (INCORRECT) |
| Colorado (80202) | Tax + DeliveryFee | $9.63, no DeliveryFee |
pushOrder
Working:
- Order creation with ACCEPTED status
- Duplicate order detection (returns ERROR status)
- Credit Card and Pay on Pickup payment methods
- Multiple line items
Issues:
| Issue | Severity | Details |
|---|---|---|
| DBSCustId ignored | Medium | Always returns " CASHC" regardless of input |
| Response Message format | Low | Contains "null:null" (Provider:Method?) |
| Empty LineItems | Low | Returns HTTP 500 (expected: 400) |
Sample Response:
{
"OrderNumber": "WEB-TEST-003",
"Status": "ACCEPTED",
"Message": "CC- ... KCOM Order: WEB-TEST-003 ...",
"DBSCustId": " CASHC"
}Quantum API Results
Accessible Endpoints (34 of 87)
| Endpoint | Records | Status |
|---|---|---|
| products | 103,915 | 200 |
| inventories | 94,530 | 200 |
| workOrderHeaders | 76,445 | 200 |
| addresses | 52,256 | 200 |
| equipment | 38,794 | 200 |
| customers | 27,473 | 200 |
| manufacturers | 1,101 | 200 |
| branches | 1 | 200 |
Additional working endpoints: agreementGroups, agreements, departments, equipmentFinancials, laborCodes, laborTimeTypes, operations, periodicMaintenances, periodicMaintenanceSchedules, scheduleEvents, signatures, standardJobCodes, standardJobCodeNames, standardJobCodeManufacturers, standardJobCodeManufacturerStructures, standardJobCodeManufacturerStructureFieldNames, stockAreas, technicianClocks, timeCards, timeCardLines, trucks, webUsers, workInProcesses, workOrderLines, workOrderSegments, workOrderTechnicians.
Inaccessible Endpoints (53 of 87)
All return HTTP 404. Notable: invoices, contacts, vendors, suppliers, documents, checklists, generalLedgerAccounts.
Questions for DIS Team
Critical (Blocking Integration)
-
Tax Calculation Method Oregon (no sales tax state) returns $238.12. Is tax calculated by shipping destination or dealer origin location?
-
TaxExemptions Implementation Including TaxExemptions array returns HTTP 500. Is this feature implemented? Required format?
-
Customer Mapping DBSCustId always returns " CASHC". How to link web orders to existing Quantum customers?
Important
-
Parts Not Found Can response include flag for parts not found vs parts not in inventory?
-
NonTaxable Flag Is CartItem.NonTaxable supported?
-
DeliveryFee Documentation indicates DeliveryFee returned for Colorado. Not observed in testing.
-
HTTP Status Codes Validation errors return 500 instead of 400. Expected behavior?
Clarification
-
ManufacturerCode Values Is manufacturer.internalId the code for partsInquiry requests?
-
API Endpoint Access Are 404 endpoints intentionally disabled or not configured for this API key?
-
Rate Limits Any request limits per minute/hour?
Test Commands Reference
# Parts Inquiry
curl -X POST "https://cl2342.disprism.com/report-api/api/partsStore/partsInquiry" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $DIS_API_KEY" \
-d '{"DealerId":"C","Parts":[{"ManufacturerCode":"KUH","PartNumber":"A4020055"}]}'
# Tax Lookup
curl -X POST "https://cl2342.disprism.com/report-api/api/partsStore/taxLookup" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $DIS_API_KEY" \
-d '{"DealerId":"C","ShippingLocation":{"PostalCode":"52732","Region":"IA","Country":"US"},"CartItems":[{"ManufacturerCode":"KUH","PartNumber":"A4020055","Qty":1,"Price":2721.33}],"ShipAmount":0,"CartSessionId":"test"}'
# Push Order
curl -X POST "https://cl2342.disprism.com/report-api/api/partsStore/pushOrder" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $DIS_API_KEY" \
-d '{"DealerId":"C","KComCustId":"WEB001","OrderNumber":"ORDER-001","DatePlaced":"2026-01-06","Contact":{"EmailAddress":"test@example.com"},"Delivery":{"DeliveryMethod":"Will Call"},"Billing":{"FirstName":"Test","LastName":"User","Address1":"123 St","City":"Clinton","Region":"IA","PostalCode":"52732","Country":"US"},"Shipping":{"FirstName":"Test","LastName":"User","Address1":"123 St","City":"Clinton","Region":"IA","PostalCode":"52732","Country":"US"},"Payment":{"PaymentMethod":"Pay on Pickup"},"LineItems":[{"ManufacturerCode":"KUH","PartNumber":"A4020055","PartName":"Part","Qty":"1","Price":"100"}],"ShipAmount":0,"TaxAmount":0,"CartSessionId":"test"}'
# Quantum API (example)
curl "https://cl2342.disprism.com/api/customers?size=10" \
-H "X-API-KEY: $DIS_API_KEY"Conclusion
Parts Store API is functional for basic operations. Integration can proceed with awareness of documented issues. Tax calculation logic requires clarification before production deployment due to potential incorrect tax amounts for no-tax states.
Recommended Actions:
- Obtain clarification on tax calculation method
- Confirm TaxExemptions feature status
- Define customer mapping strategy for order linking