Welcome.

Typhoon is a proprietary system that TIG uses to manage various asset management services, including procurement, technical support, ticketing, and more.

The Typhoon API provides secure access to data stored in Typhoon, as well as functions that can be used to request service. Using the API, developers can easily integrate Typhoon with help desk, ticketing, and workflow systems, dashboards, and more.

This documentation is provided so that developers can explore and learn about the API.


Sending API Requests

The Typhoon API is an RPC style API. Requests are sent using the HTTP POST request method, with JSON-encoded request bodies. All API requests are sent to: https://api.typhoon.tig.com/

API requests are authenticated using an API key, which is passed using the "API_Key" parameter in the request body. To obtain an API key, please contact your TIG point of contact.


Errors

If, for any reason, a request cannot be processed, the API will return a JSON-encoded response with an "error" element describing the issue.

For example, a request sent with an invalid API key will result in this response.

{
  "error": {
    "code": 130,
    "message": "The API Key is invalid.",
    "details": null
  }
}

Similarly, a request sent that specifies an invalid function, or a function for which the account is not authorized, will result in this response.

{
  "error": {
    "code": 180,
    "message": "The account is not authorized to perform the requested operation on the given resource.",
    "details": null
  }
}

The error information should help you to resolve the issue. However, if you need assistance, please request technical support from TIG. See below for more information.


Accounts

Each Typhoon API account is configured with unique permissions, giving it access to one or more Typhoon instances, as well as specific API functions within each instance.

Additionally, there are two types of Typhoon API accounts: Production and Development. The account type is taken into consideration when certain API functions are used, such as submitting Tickets. See below for details.

API-Account-Select

For information about the Typhoon instances and functions that an account has been granted access to, send an "API-Account-Select" request.

Here's an example request.

{
  "API_Key": "*** Your API KEY ***",
  "Function": "API-Account-Select"
}

Here's a sample response.

{
  "comment": "Acme account for ServiceNow integration.",
  "typhoonCustomerID": "D245B77A-12387-123213-A95F-23213",
  "accountType": "Development",
  "databases": [
    {
      "name": "Typhoon",
      "functions": [
        "Tickets-Insert",
        "Tickets-Select"
      ]
    }
  ]
}

Tickets

Typhoon refers to service requests as Tickets. The Typhoon API provides functions for creating and retrieving Tickets.

Tickets-Insert

To create a Ticket, you send a request that specifies "Tickets-Insert" as the Function, as well as an array of Values describing the ticket.

Here's an example request.

{
  "API_Key": "*** Your API KEY ***",
  "Function": "Tickets-Insert",
  "Values": {
    "External_Ticket_Number": "T1000",
    "Ticket_Type": "Advanced Exchange",
    "Location": "Midwest HQ",
    "End_User": "John Doe",
    "Email": "johndoe@test.com",
    "Phone_Number": "555-555-5555",
    "Address_Line_1": "100 Main Street",
    "Address_Line_2": "Suite A",
    "City": "Columbus",
    "State_Region": "OH",
    "Postal_Code": "99999",
    "Country": "US",
    "Current_Device": "Model 1",
    "Device_Model": "Model 2",
    "Serial_Number": "555-55-5555",
    "Accessories_Requested": "External Mouse",
    "Additional_Comments": "This is a test.",
    "Problems_Reported": "Unit will not power on.",
    "Damage_Type": "Accidental",
    "Damage_Cause": "Unit was dropped while traveling.",
    "Image_Type": "Win-10-Pro",
    "Employee_Start_Date": "12/31/2019"
  }
}

Note that tickets created by "Development" accounts are flagged in Typhoon as being test tickets, and will not be processed. The API_Environment attribute of a ticket can be used to indicate if a ticket is a Production or Development type.

{
  "records": [
    {
      "mod-id": "0",
      "record-id": "7137",
      "relatedset": [
        {
          "count": "0",
          "table": "AED_TicketsLineItems"
        },
        {
          "count": "0",
          "table": "AED_Ticket to Location"
        }
      ],
      "fields": {
        "Ticket_Number": "4405",
        "Customers_Ticket_Number": "T1000",
        "Location": "Midwest HQ",
        "End_User": "John Doe",
        "Outbound_Tracking_Number": [],
        "Return_Tracking_Number": [],
        "Request_Date": "01\/08\/2020",
        "Ship_Date": [],
        "Ticket_Type": "ADVANCED EXCHANGE",
        "fk_ID_Customers": "D245B77A-12387-123213-A95F-23213",
        "AED_Tickets_Customers::pk_Customer": "Acme",
        "DateTime_Outbound_Pickup": [],
        "DateTime_Outbound_Delivery": [],
        "DateTime_Return_Pickup": [],
        "DateTime_Return_Delivery": [],
        "AdrLine1": "100 Main Street",
        "AdrLine2": "Suite A",
        "AdrCity": "Columbus",
        "AdrStateRegion": "OH",
        "AdrPostalCode": "99999",
        "AdrPhoneNumber": "555-555-5555",
        "End_User_Email": "johndoe@test.com",
        "AdrCountry": "US",
        "API_Accessories_Requested": "External Mouse",
        "API_Additional_Comments": "This is a test.",
        "API_Damage_Cause": "Unit was dropped while traveling.",
        "API_Damage_Type": "Accidental",
        "API_Current_Device": "Model 1",
        "API_Device_Model": "Model 2",
        "API_Image_Type": "Win-10-Pro",
        "API_Problems_Reported": "Unit will not power on.",
        "API_Serial_Number": "555-55-5555",
        "API_Status_Ticket_Accepted": [],
        "API_Status_Ticket_Canceled": [],
        "API_Status_Ticket_Canceled_Reason": [],
        "API_Status_Ticket_Outbound_Received": [],
        "API_Status_Ticket_Outbound_Shipped": [],
        "API_Status_Ticket_Processed": [],
        "API_Status_Ticket_Received": "01\/08\/2020 11:41:53",
        "API_Status_Ticket_Rejected": [],
        "API_Status_Ticket_Rejected_Reason": [],
        "API_Status_Ticket_Return_Received": [],
        "API_Status_Ticket_Return_Shipped": [],
        "API_Environment": "Development"
      }
    }
  ]
}

If the request is successful, the API will respond by returning a JSON representation of the ticket that was created. For example...

The Values supported by the Tickets-Insert function are described below.

Name Description Type Required
External_Ticket_Number The number or ID that the external uses to refer to the ticket. Text Yes
Ticket_Type Describes the type of service being requested. Supported values are Advanced Exchange, Deployment, On-Boarding, Other, PC Refresh, and ITAM Request. Text Yes
Location The location of the user who has requested service. Text No
End_User The name of the user who has requested service. Text No
Email The email address of the user who has requested service. Text No
Phone_Number The user's phone number. Text No
Address_Line_1 The user's street address. (Line 1) Text No
Address_Line_2 The user's street address. (Line 2) Text No
City The user's city. Text No
State_Region The user's state or region. Text No
Postal_Code The user's postal or zip code. Text No
Country The user's country. Text No
Current_Device The type of device that the user current has. Text No
Device_Model The model of the device for which service has been requested. Text No
Serial_Number The serial number of the device for which service has been requested. Text No
Accessories_Requested Used to specify any accessories that the user has requested. Text No
Additional_Comments Any additional comments or information that will help to provide service. Text No
Problems_Reported A description of any problems that the user is experiencing. Text No
Damage_Type A brief description of any damage that has been done to the unit. Text No
Damage_Cause A brief description of how the unit was damaged. Text No
Image_Type For units that need to be imaged, this is a description of the image. Text No
Employee_Start_Date The start date for the employee associated with the request. Text No

Tickets-Select

To retrieve a Ticket, you send a request that specifies "Tickets-Select" as the Function, and specify either your system's ticket number (the External_Ticket_Number value that was used to created a ticket) or Typhoon's internal ticket number (the Ticket_Number value that was assigned by Typhoon when the ticket was create).

Here's an example request, where an External_Ticket_Number was specified.

{
  "API_Key": "*** Your API KEY ***",
  "Function": "Tickets-Select",
  "Filters": {
    "External_Ticket_Number": "T1000"
  }
}

If the request is successful, the API will respond by returning a JSON representation of the ticket. For example...

{
  "found_count": "1",
  "offset": 0,
  "limit": "1",
  "records": [
    {
      "mod-id": "0",
      "record-id": "7137",
      "fields": {
        "Ticket_Number": "4405",
        "Customers_Ticket_Number": "T1000",
        "Location": "Midwest HQ",
        "End_User": "John Doe",
        "Outbound_Tracking_Number": null,
        "Return_Tracking_Number": null,
        "Request_Date": "01\/08\/2020",
        "Ship_Date": null,
        "Ticket_Type": "ADVANCED EXCHANGE",
        "fk_ID_Customers": "D245B77A-12387-123213-A95F-232136",
        "AED_Tickets_Customers_pk_Customer": "Acme",
        "DateTime_Outbound_Pickup": null,
        "DateTime_Outbound_Delivery": null,
        "DateTime_Return_Pickup": null,
        "DateTime_Return_Delivery": null,
        "AdrLine1": "100 Main Street",
        "AdrLine2": "Suite A",
        "AdrCity": "Columbus",
        "AdrStateRegion": "OH",
        "AdrPostalCode": "99999",
        "AdrPhoneNumber": "555-555-5555",
        "End_User_Email": "johndoe@test.com",
        "AdrCountry": "US",
        "API_Accessories_Requested": "External Mouse",
        "API_Additional_Comments": "This is a test.",
        "API_Damage_Cause": "Unit was dropped while traveling.",
        "API_Damage_Type": "Accidental",
        "API_Device_Model": "Model 1000",
        "API_Image_Type": "Win-10-Pro",
        "API_Problems_Reported": "Unit will not power on.",
        "API_Serial_Number": "555-55-5555",
        "API_Status_Ticket_Accepted": null,
        "API_Status_Ticket_Canceled": null,
        "API_Status_Ticket_Canceled_Reason": null,
        "API_Status_Ticket_Outbound_Received": null,
        "API_Status_Ticket_Outbound_Shipped": null,
        "API_Status_Ticket_Processed": null,
        "API_Status_Ticket_Received": "01\/08\/2020 11:41:53",
        "API_Status_Ticket_Rejected": null,
        "API_Status_Ticket_Rejected_Reason": null,
        "API_Status_Ticket_Return_Received": null,
        "API_Status_Ticket_Return_Shipped": null,
        "API_Environment": "Development",
        "API_Caller_IP_Address": "127.0.0.1",
        "API_Caller_User_Agent": "Paw\/3.1.8 (Macintosh; OS X\/10.14.6) GCDHTTPRequest",
        "API_Current_Device": "Model 1"
      },
      "related_record_sets": {
        "AED_TicketsLineItems": [],
        "AED_Ticket_to_Location": []
      }
    }
  ]
}

The fields that are returned by the Tickets-Select function are described below.

Name Description Type
Ticket_Number The ticket number that Typhoon assigned to the ticket. Text
Customers_Ticket_Number The customer's ticket number. Text
Location The location of the user who has requested service. Text
End_User The name of the user who has requested service. Text
Outbound_Tracking_Number The tracking number of a shipment that was made to fulfill the request. Text
Return_Tracking_Number The tracking number of a shipment that was used to return a unit to TIG. Text
Request_Date The date that the ticket was created. Date (mm/dd/yyyy)
Ship_Date The date that an outbound shipment was made. Date (mm/dd/yyyy)
Ticket_Type Describes the type of service being requested. Supported values are Advanced Exchange, Deployment, On-Boarding, Other, and PC Refresh. Text
fk_ID_Customers The Customer ID that typhoon has assigned to the customer. Text
AED_Tickets_Customers_pk_Customer The Customer's name. Text
DateTime_Outbound_Pickup The date and time that the outbound shipment was picked up by the carrier. Timestamp
DateTime_Outbound_Delivery The date and time that the outbound shipment was delivered by the carrier. Timestamp
DateTime_Return_Pickup The date and time that the inbound (return) shipment was picked up by the carrier. Timestamp
DateTime_Return_Delivery The date and time that the inbound (return) shipment was received by TIG. Timestamp
AdrLine1 The user's street address. Text
AdrLine2 The user's street address. (Line 2) Text
AdrCity The user's city. Text
AdrStateRegion The user's state / region. Text
AdrPostalCode The user's postal / zip code. Text
AdrPhoneNumber The user's phone number. Text
End_User_Email The user's email address. Text
AdrCountry The user's country. Text
API_Accessories_Requested Accessories that were requested. Text
API_Additional_Comments Any additional comments or note that were provided when the ticket was created. Text
API_Damage_Cause A brief description of how the unit was damaged. Text
API_Damage_Type A brief description of any damage that has been done to the unit. Text
API_Device_Model The model of the device for which service has been requested. Text
API_Image_Type For units that need to be imaged, this is a description of the image. Text
API_Problems_Reported A description of any problems that the user is experiencing. Text
API_Serial_Number The serial number of the device for which service has been requested. Text
API_Status_Ticket_Accepted The date and time that the ticket was accepted. Timestamp
API_Status_Ticket_Canceled The date and time that the ticket was canceled. Timestamp
API_Status_Ticket_Canceled_Reason The reason that the ticket was canceled. Text
API_Status_Ticket_Outbound_Received The date and time that the outbound shipment was delivered by the carrier. Timestamp
API_Status_Ticket_Outbound_Shipped The date and time that the outbound shipment was picked up by the carrier. Timestamp
API_Status_Ticket_Processed The date and time that the ticket was processed. Timestamp
API_Status_Ticket_Received The date and time that the ticket was received. Timestamp
API_Status_Ticket_Rejected The date and time that the ticket was rejected. Timestamp
API_Status_Ticket_Rejected_Reason The reason that the ticket was rejected. Timestamp
API_Status_Ticket_Return_Received The date and time that the inbound (return) shipment was received by TIG. Timestamp
API_Status_Ticket_Return_Shipped The date and time that the inbound (return) shipment was picked up by the carrier. Timestamp
API_Environment Indicates whether the ticket was entered using a Production or Development account. Text
API_Caller_IP_Address For tickets created via the API, this is the IP address of the user or system from which the API request originated. Text
API_Caller_User_Agent For tickets created via the API, this is the the user agent that the user or system that was used to submit the request. Text
API_Current_Device The type of device that the user had when the ticket was submitted. Text
© 2020 Technology Integration Group.