Request
T-WEB Server | T-WEB Login URL | API Endpoint |
www | https://www.tweb.com.au/v2/ |
https://publicapi.tweb.com.au/v1/FinalizePaymentWithFuelCard |
www2 | https://www2.tweb.com.au/v2/ |
https://publicapi2.tweb.com.au/v1/FinalizePaymentWithFuelCard |
test | https://test.tweb.ttfuel.com/v2/ |
https://test-publicapi.tweb.ttfuel.com/v1/FinalizePaymentWithFuelCard |
Parameters
The endpoint only accepts HTTP POST requests. The following POST parameters must be included with the request:
Field | Type | Required Field | Description |
CardNumber | string | Yes | The Track 2 Primary Account Number (PAN). Positioned between the Start Sentinel and the Field Separator/or the End Sentinel (when there is no Field Separator). (19 digits max.) |
Track2Data | string | Yes | The entire track 2 data including the start sentinel and the end sentinel (37 characters max.) |
AuthorizationReference | string | Yes | The terminal's unique authorization reference (50 characters max.) |
AuthorizationCode | string | Yes | Payment gateway's authorization code |
LocationID | integer | Yes | The refuelling site's location Id |
TargetID | string | No | Optional client reference Id (100 characters max.) Must only contain characters a-z, A-Z, 0-9 and _ |
Transaction.Date | string | Yes | A date in the format 'yyyy-mmdd hh:mm:ss' |
Transaction.ID | string | No | The FDC's transaction reference number |
Transaction.ReceiptReference | string | Yes | The terminal's receipt reference number (20 characters max.) |
Transaction.PumpNumber | integer | Yes | The pump number |
Transaction.HoseNumber | integer | Yes | The hose number |
Transaction.FuelGrade | integer | Yes | The fuel grade dispensed by the customer (An integer in the range 1..48) |
Transaction.Quantity | decimal | Yes | The quantity of fuel dispensed with 3 decimal places precision |
Transaction.UnitCode | string | Yes | Three character unit of measurement code (i.e. 'LTR' for litres, and 'USG' for US Gallons) |
Transaction.UnitPrice | decimal | Yes | The unit price of the fuel with 3 decimal places precision |
Transaction.Amount | decimal | Yes | The final amount with 3 decimal places precision (quantity * unit price - discounted amount) |
Transaction.ApprovedAmount | decimal | No | The approved amount with 3 decimal places precision |
Transaction.Discounts.DiscountedAmount | decimal | No | The discounted amount with 2 decimal places precision |
Transaction.Discounts.DiscountType | string | No | The type of discount, expressed as the fractional unit of the main currency per volume unit, e.g. 'cents/Litre', cents/gallon' or as a percentage of the final amount, e.g. 'percent' |
Transaction.Discounts.DiscountRate | decimal | No | The discount rate with 1 decimal place precision |
Transaction.CurrencyCode | string | Yes | Three character ISO 4217 currency code (I.e. 'AUD' for Australian dollars) |
Transaction.UserID | string | No | The user Id (aka driver Id) (12 characters max. hexadecimal) |
Transaction.Odometer | integer | No | The vehicle's odometer reading (7 digits max.) |
Transaction.EngineHours | decimal | No | The vehicle's engine hours reading with 1 decimal place precision |
Transaction.CustomerReference | string | No | The customer reference number (15 characters max.) |
Transaction.VehicleRegistrationNumber | string | No | The vehicle registration number (10 characters max.) |
Transaction.VehicleFleetNumber | string | No | The vehicle fleet number (20 characters max.) |
Notes
- Transaction record with the same Site, Date, CardNumber, Reference(ID), FuelGrade, and Quantity will only insert once into the system.
Request Examples
json
curl -X POST https://test-publicapi.tweb.ttfuel.com/v1/FinalizePaymentWithFuelCard -H 'Content-Type: application/json' -d '{ "AccessToken":"8B2E3355EC424FD01A01DBF043DA9C7016098502", "CardNumber":"7001230000700153", "Track2Data":";7001230000700153=29126018400007770?", "AuthorizationReference":"Rs4ewr7C8YRqYIByrXq5eHS", "AuthorizationCode":"348384808", "LocationID":"97538", "TargetID":"ziIU_PXm_GH110YmH", "Transaction":{ "Date":"2023-05-26 20:36:15", "ID":"123456", "ReceiptReference":"UVWXYZ", "PumpNumber":"1", "HoseNumber":"1", "FuelGrade":"3", "Quantity":"43.21", "UnitCode":"LTR", "UnitPrice":"1.875", "Amount":"81.02", "ApprovedAmount":"100", "Discounts":{ "DiscountRate":"3.0", "DiscountType":"cents/Litre", "DiscountedAmount":"1.30" }, "CurrencyCode":"AUD", "UserID":"1234", "Odometer":"87538", "EngineHours":"685", "CustomerReference":"WFnGiBWg6t", "VehicleRegistrationNumber":"ABC123", "VehicleFleetNumber":"F007" } }'
x-www-form-urlencoded
curl -X POST https://test-publicapi.tweb.ttfuel.com/v1/FinalizePaymentWithFuelCard -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'AccessToken=8B2E3355EC424FD01A01DBF043DA9C7016098502' --data-urlencode 'CardNumber=7001230000700153' --data-urlencode 'Track2Data=;7001230000700153=29126018400007770?' --data-urlencode 'AuthorizationReference=Rs4ewr7C8YRqYIByrXq5eHS' --data-urlencode 'AuthorizationCode=348384808' --data-urlencode 'LocationID=97538' --data-urlencode 'TargetID=ziIU_PXm_GH110YmH' --data-urlencode 'Transaction[Date]=2023-05-26 20:36:15' --data-urlencode 'Transaction[ID]=123456' --data-urlencode 'Transaction[ReceiptReference]=UVWXYZ' --data-urlencode 'Transaction[PumpNumber]=1' --data-urlencode 'Transaction[HoseNumber]=1' --data-urlencode 'Transaction[FuelGrade]=3' --data-urlencode 'Transaction[Quantity]=43.21' --data-urlencode 'Transaction[UnitCode]=LTR' --data-urlencode 'Transaction[UnitPrice]=1.875' --data-urlencode 'Transaction[Amount]=81.02' --data-urlencode 'Transaction[ApprovedAmount]=100' --data-urlencode 'Transaction[Discounts][DiscountRate]=3.0' --data-urlencode 'Transaction[Discounts][DiscountType]=cents/Litre' --data-urlencode 'Transaction[Discounts][DiscountedAmount]=1.30' --data-urlencode 'Transaction[CurrencyCode]=AUD' --data-urlencode 'Transaction[UserID]=1234' --data-urlencode 'Transaction[Odometer]87538' --data-urlencode 'Transaction[EngineHours]=685' --data-urlencode 'Transaction[CustomerReference]=WFnGiBWg6t' --data-urlencode 'Transaction[VehicleRegistrationNumber]=ABC123' --data-urlencode 'Transaction[VehicleFleetNumber]=F007'
Response
The response from the authorisation endpoint has the following JSON format:
Example 1:
Method: FinalizePaymentWithFuelCard { "Error": { "Code": 0, "Status": "OK" }, "Data": { "Meta": { "Title": "Finalize Payment With Fuel Card", "TotalRecords": 1, "Endpoint": "/v1/FinalizePaymentWithFuelCard", "TargetID": "ziIU_PXm_GH110YmH", "Hash": "E63DB7985B74C2AAB28A05E1CAF510307A2976C0" }, "Items": [ { "CardNumber": "7001230000700153", "Track2Data": ";7001230000700153=29126018400007770?", "AuthorizationReference": "Rs4ewr7C8YRqYIByrXq5eHS", "AuthorizationCode": "348384808", "LocationID": 97538, "Transaction": { "Date": "2023-05-26 21:11:14", "ID": "123456", "ReceiptReference": "UVWXYZ", "PumpNumber": 1, "HoseNumber": 1, "FuelGrade": 3, "Quantity": 43.21, "UnitCode": "LTR", "UnitPrice": 1.875, "Amount": 81.02, "ApprovedAmount": 100, "Discounts": { "DiscountedAmount": 1.3, "DiscountType": "cents/Litre", "DiscountRate": 3 }, "CurrencyCode": "AUD", "UserID": "1234", "Odometer": 87538, "EngineHours": 685, "CustomerReference": "WFnGiBWg6t", "VehicleRegistrationNumber": "ABC123", "VehicleFleetNumber": "F007" } } ] } }
Example 2:
Method: FinalizePaymentWithFuelCard { "Error": { "Code": 4925, "Status": "Invalid Authorization Code" }, "Data": { "Meta": { "Title": "Finalize Payment With Fuel Card", "Endpoint": "/v1/FinalizePaymentWithFuelCard", "TargetID": "ziIU_PXm_GH110YmH", "Hash": "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709" }, "Items": [] } }
Response Format
Field | Type | Description |
Error | ||
Code | integer | 0 if the call to FinalizePaymentWithFuelCard was successful otherwise an error code in the range 4900-4999 representing a specific error |
Status | string | Description of error |
Meta | ||
Title | string | Endpoint Title |
TargetID | string | Optional client reference Id (100 characters max.) Must only contain characters a-z, A-Z, 0-9 and _ |
Items | ||
CardNumber | string | The Track 2 Primary Account Number (PAN). Positioned between the Start Sentinel and the Field Separator/or the End Sentinel (when there is no Field Separator). (19 digits max.) |
Track2Data | string | The entire track 2 data including the start sentinel and the end sentinel (37 characters max.) |
AuthorizationReference | string | The terminal's unique authorization reference (50 characters max.) |
AuthorizationCode | string | The payment gateway's authorization code |
LocationID | integer | The refuelling site's location Id |
Transaction.Date | string | A date in the format 'yyyy-mmdd hh:mm:ss' |
Transaction.ID | string | The FDC's transaction reference number |
Transaction.ReceiptReference | string | The terminal's receipt reference number (20 characters max.) |
Transaction.PumpNumber | integer | The pump number |
Transaction.HoseNumber | integer | The hose number |
Transaction.FuelGrade | integer | The fuel grade dispensed by the customer (An integer in the range 1..48) |
Transaction.Quantity | decimal | The quantity of fuel dispensed with 3 decimal places precision |
Transaction.UnitCode | string | Three character unit of measurement code (i.e. 'LTR' for litres, and 'USG' for US Gallons) |
Transaction.UnitPrice | decimal | The unit price of the fuel with 3 decimal places precision |
Transaction.Amount | decimal | The final amount with 3 decimal places precision (quantity * unit price - discounted amount) |
Transaction.ApprovedAmount | decimal | The approved amount with 3 decimal places precision |
Transaction.Discounts.DiscountedAmount | decimal | The discounted amount with 2 decimal places precision |
Transaction.Discounts.DiscountType | string | The type of discount, expressed as the fractional unit of the main currency per volume unit, e.g. 'cents/Litre', cents/gallon' or as a percentage of the final amount, e.g. 'percent' |
Transaction.Discounts.DiscountRate | decimal | The discount rate with 1 decimal place precision |
Transaction.CurrencyCode | string | Three character ISO 4217 currency code (I.e. 'AUD' for Australian dollars) |
Transaction.UserID | string | The user Id (aka driver Id) (12 characters max. hexadecimal) |
Transaction.Odometer | integer | The vehicle's odometer reading (7 digits max.) |
Transaction.EngineHours | decimal | The vehicle's engine hours reading with 1 decimal place precision |
Transaction.CustomerReference | string | The customer reference number (15 characters max.) |
Transaction.VehicleRegistrationNumber | string | The vehicle registration number (10 characters max.) |
Transaction.VehicleFleetNumber | string | The vehicle fleet number (20 characters max.) |
The Error JSON property is included in all responses from the TWeb Public API. The possible responses during authorisation are:
Error Code | Error Name | Notes |
0 | OK | |
1 | Server Error | Unhandled error occurs during processing |
4000 | Rate Limit Exceeded | This is the second request within a 1 second period. |
4900 | Card number can't be blank | |
4902 | Invalid card number | |
4910 | Authorization Reference can't be blank | |
4911 | Location Id can't be blank | |
4912 | No refuelling site found for this location Id | |
4916 | Track 2 data can't be blank | |
4918 | Gateway request timeout | |
4922 | Invalid Pump or Hose Number | Neither the pump number or hose number can be zero |
4923 | Fuel Grade can't be blank | |
4924 | Invalid Transaction Discount Type | The allowed discount types are "percent", "cents/Litre", and "cents/gallon" |
4925 | Invalid Authorization Code | The authorization code must be numeric |
4926 | Receipt Reference can't be blank | |
4928 | Invalid Currency Code | The currency code must be a valid ISO 4217 code |
4930 | Invalid User Id Format | The User ID must be hexadecimal only |
4931 | Invalid Fuel Grade | Fuel Grade can't be larger than 48 |