up Version >= 2.2

Inventory Status Download

Once authorised, a client can download the Inventory Status of any of its sites via the TWeb Public API. The Inventory Status is returned in a JSON list. The process of downloading the Inventory Status only involves one request to the Public API:

  1. A request to get the Inventory Status of all tanks for a particular site or all site(s)

Step 1 - Requesting inventory status

Endpoint Version:

The endpoint depends on the server used by your company to login to TWeb:

T-WEB Server T-WEB Login URL API Authorisation Endpoint
www https://www.tweb.com.au/v2/ https://publicapi.tweb.com.au/v1.1/Inventory
www2 https://www2.tweb.com.au/v2/ https://publicapi2.tweb.com.au/v1.1/Inventory
gt https://gt.tweb.ttfuel.com/v2/ https://publicapi.gt.tweb.ttfuel.com/v1.1/Inventory
uae https://uae.tweb.ttfuel.com/v2/ https://publicapi.uae.tweb.ttfuel.com/v1.1/Inventory

The endpoint only accepts HTTP POST requests. The following POST parameters must be included with the request:

accessToken

Note that the Access Token may be submitted as a POST parameter or as a HTTP Cookie.

The following POST parameters may optionally be submitted with the request:

targetID
filterSiteNumber

For details regarding the Target ID, please refer to the following article: https://help.tweb.com.au/TWebPublicAPI/en/Authorisation/Execute#heading_request

filterSiteNumber is an optional POST parameter. This parameter specifies the site whose Inventory Status is to be returned. Site Numbers are allocated to all sites by TT. A list is available via TWeb. This filter has the following validation rule specifications:

Rule Specification
Format /[0-9]{6}/, eg. 123456
Default When this parameter is not specified then the Inventory Status for all sites will be returned

Request Examples

A request for the Inventory Status that includes the Access Token from the file where it was stored during authorisation:

curl -b cookiejar.txt -skX POST -d "targetID=abc123&filterSiteNumber=123456" https://publicapi.tweb.com.au/v1.1/Inventory

A request for the Inventory Status that includes the Access Token as a POST parameter in the body:

curl -skX POST -d "accessToken=0123456789ABCDEF0123456789ABCDEF01234567&targetID=abc123&filterSiteNumber=123456" https://publicapi.tweb.com.au/v1.1/Inventory

Step 1 - Response

The response from the Inventory Status endpoint has the following JSON format:

{
    "Data": {
        "Meta": {
            "Title": "Public API: Download Inventory",
            "Endpoint": "/v1.1/Inventory",
            "SubmittedFilters": {
                "filterSiteNumber": "123456"
            }
        },
        "Items": [
            {
                "SiteNumber": "123456",
                "TankNumber": 1,
                "Volume": 50000,
                "Capacity": 50000,
                "MeasurementDate": "2017-09-01T00:00:00",
                "Ullage": 0,
                "WaterHeight": 0,
                "Grade": {
                    "GradeNum": 1,
                    "Name": "Unleaded"
                },
                "MeasurementSource": 0
            },
            {
                "SiteNumber": "123456",
                "TankNumber": 2,
                "Volume": 20000,
                "Capacity": 50000,
                "MeasurementDate": "2017-09-01T00:00:00",
                "Ullage": 30000,
                "WaterHeight": 0,
                "Grade": {
                    "GradeNum": 2,
                    "Name": "Premium ULP"
                },
                "MeasurementSource": 1
            }
        ]
    },
    "Error": {
        "Code": 0,
        "Status": "OK"
    }
}

The Inventory Status is returned as a list of objects in Data.Items. Each of the properties of that object are described in the following table:

Property Description
SiteNumber The Controller's Site ID.
TankNumber The Tank Number.
Volume The volume in the tank during the measurement, to the nearest 1 decimal place.
Capacity The capacity of the tank, no decimal places.
MeasurementDate The measurement date and time, formatted as yyyy-MM-ddTHH:mm:ss, where T is always the literal character T.
Ullage The ullage volume in the tank, to the nearest 1 decimal place.
WaterHeight The water height in the tank, to the nearest 1 decimal place.
Grade.GradeNum The grade number of the fuel.
Grade.Name The name of the fuel.
MeasurementSource An integer representing the source of the inventory dip data. Available options are:
  1. Manual - data originating from a manual dip, delivery receipt, etc. Manually entered into the T-WEB GUI, TransSequel or the controller keypad.
  2. ATG - automatic tank gauge data that entered T-WEB via the controller.
  3. N/A
  4. N/A
  5. External - data that did not pass through the controller or the T-WEB GUI.
  6. Theoretical - a controller calculated measurement.

The Error JSON property is included in all responses from the TWeb Public API. The possible responses when requesting the Inventory Status are:

Error Code Error Name Explanation
0 OK Inventory data have been returned without any error
1 Server Error This issue either does not fit any of the other codes or is due to a bug in the Public API code.
4000 Rate Limit Exceeded This is the second request within a 1 second period.
4002 Account Inactive Account Inactive.
4003 Session Expired Session Expired.
4008 Invalid Access Token The Access Token was not valid.
4012 Insufficient API Privileges Account does not has sufficient privilege for this endpoint.
4300 Unable to Get Inventory Status Data There was an error while attempting to download the Inventory Status.