REST APIs
REST API Authentication
Every REST API call is required to be authenticated and there are two methods of authentications outlined below.
Authenticating with JSON Web Tokens (JWT)
This is the preferred authentication method.
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.
JWTs provide many additional benefits over accessing the APIs with simple tokens.
- Multiple, different JWTs can be generated and active at the same time
- An individual JWT can be reset at anytime
- Each JWT contains a specific expiration date and time
- A JWT can be blacklisted at any time regardless of the original set expiration date and time
- Each JWT has fine grained access permissions
- Restrict which APIs are accessible
- Restrict which methods on the API are allowed
- Detailed API auditing by JWT
To access a REST API using JWT
- Acquire a JWT
- Set the
x-access-token
HTTP header with a valid JWT - Call the REST API
Authenticating with customerid and customercode Tokens (CCT)
Using the customerid
and customercode
tokens (CCT) is the original, although now legacy but still supported, way of authenticating the REST APIs.
While using simple tokens, similar to our CCT, are still a common authentication strategy employed by many software vendors it does have some disadvantages. Within our system, the CCT represents full administrator access to all of the REST APIs. If multiple development teams are using the same CCT auditing becomes more difficult in determining which team called which API. Reseting the CCT requires all systems to be update with the new values in order to continue accessing the REST APIs.
To access a REST API using CCT simply requires passing valid customerid
and customercode
values as query parameters to any of the API URLs.
GET /seiapi/v3/trans/Account/${AccountNum}?customerid=xxxx&customercode=xxxx
POST vs PUT Operations
A PUT operation preforms an upsert (update or insert) operation that will either insert the object (if it does not exist in the system) or update the object if it already exists. An update of an existing object will replace the entire object with the new object.
A POST operation is used to insert a new object into the system and have the system return the ID associated with the new object. Please refer to the individual API documentation as not all APIs support the POST operation.
Available REST APIs
Standard REST APIs
- Account Location REST API
- Account Locations REST API
- Account Pricing REST API
- Account REST API
- Activity REST API
- [Depreciated]Activity REST API
- Alert Template REST API
- Appointment Search REST API
- Assets REST API
- Authorization Settings REST API
- Book Job REST API
- Create JWT REST API
- Concessions REST API
- DataImport REST API
- Deployment Group REST API
- Developer JWT REST API
- DiagData REST API
- DiagScript REST API
- FlexAttribute REST API
- Flex-Form REST API
- Standard Inventory Count REST API
- Inventory Load REST API
- Inventory REST API
- IVR REST API
- Mobile Application Configuration REST API
- Mobile Application Resources REST API
- Parts Locator REST API
- Parts Ordering REST API
- Payment Transaction Token REST API
- Price List REST API
- Process Template REST API
- Products REST API
- Role REST API
- Service Area REST API
- Service Area Teams REST API
- Service Code REST API
- Service Contract REST API
- Service Team REST API
- Service Team Users REST API
- Stock Level Recommendation REST API
- System Category REST API
- System Category Mapping REST API
- APIs TaxRate REST API
- Template REST API
- Tier Pricing REST API
- Timecard REST API
- UI Template REST API
- User REST API
- Validation REST API
- Warranty Constraints REST API
- Work Order REST API
- Work Order Alert REST API
- Work Order Dispatch REST API
- Work Order Estimate REST API
- Work Order Estimate History REST API
- Work Order Invoice REST API
- Work Order Photos REST API
- Work Order TechNotes REST API
- Work Order Videos REST API
Query REST APIs
- AccountLocations Query API
- Accounts Query API
- Assets Query API
- Audit Query API
- Asset History Query API
- Entity Query API
- Permissions Query API
- PriceList Query API
- Process Template Query API
- Products Query API
- ServiceAreas Query API
- ServiceTeams Query API
- Shipments (Inventory Load) Query API 1
- StorageLocations Query API
- Site History Query API
- TimeEntries Query API
- TimeSheetSummary Query API
- UserAudit Query API
- Users Query API
- WorkOrders Query API
- Shipments (Inventory Load) Query API