DG VaultBase Engineering integration

Request to Base Engineering

One call per truck, once a day.

Free Gas runs its delivery registers on your system. Commercial Transport Solutions builds DG Vault, the dangerous goods shipping record Free Gas drivers carry on the road. Today a driver types the litres, the liquid temperature and the ticket number at every stop, reading them off the register by hand. Your ticketextended endpoint already holds all three. We would like to read it, on a schedule, so the driver confirms the numbers instead of retyping them.

For Shawn, Base Engineering From Kalyan Pavan, Commercial Transport Solutions 18 October 2026 Tested against truck 2016, 13 October 2026
What we would call
/api/ticketextended/{truck}

Filtered by start_date and end_date. One endpoint. We are not asking for access to the other ten.

How often
8 calls a day

One per truck in the Free Gas list, once after the shift closes. Roughly 2,900 requests a year.

What we write back
Nothing

Read only. No prices, taxes or amounts are stored. DG Vault never posts to your API.

01

The call we would make

Chris Wells pulled a day from truck 2016 to check that the endpoint carries what DG Vault needs. It does. This is that call and what came back.

https://dev-api-3.baseng-app.com
GET /api/ticketextended/2016
?start_date=2026-10-13T00:00:00 &end_date=2026-10-13T23:59:59

What came back

Ten verified propane deliveries, in order, from one shift that started at 07:35 and ran to 11:31. Every ticket carried a volume, a temperature and a ticket number.

07:57GOLTZJ1,006.7 L
08:08HEIDAB774.2 L
08:25HUEBSR413.7 L
08:35WEIRDA981.5 L
09:05BEAMEC810.6 L
09:27LINDEJ874.9 L
09:55TAYLOB278.8 L
10:25JERICH237.2 L
11:11ZHOUTI268.0 L
11:31DEKLEG21,222.6 L
10 deliveries 6,868.2 L corrected to 15 °C 6,959.4 L as metered 19 to 21 °C liquid 1 shift, 1 truck

One ticket, trimmed to what DG Vault uses

Ticket 13545, the first of the day. The three highlighted lines are the ones a Free Gas driver types by hand today.

{
  "Ticket_nb": 13545,
  "Ticket_GUID": "20166f0a2f56d8cb4d4fab0ab668e3c31b7c",
  "Ticket_dt": "2026-10-13T07:57:13",
  "Truck_Code": 2016,
  "Customer_Code": "GOLTZJ",
  "Ticket_Status_Code": "Verified",
  "Latitude": 42.99798,
  "Longitude": -79.29863,
  "Truck_Shift_nb": "20163d9f7263f856448d8db13662aef1616e",
  "Ticket_Items": [
    {
      "Asset_Code": "GOLTZJ__1",
      "FuelType_Code": "PROPANE",
      "NetQuantity_nb": 1006.7,
      "GrossQuantity_nb": 1019.3,
      "Product_Temperature_nb": 19,
      "PercentFull_Start_nb": 0,
      "PercentFull_End_nb": 99,
      "Delivery_Start_dt": "2026-10-13T07:57:29",
      "Delivery_End_dt": "2026-10-13T08:04:12",
      "TotalizerGross_nb": 12755250.9,
      "Sale_nb": 13641,
      "Ticket_nb": 13545
      // price, tax and amount fields omitted: DG Vault does not read them
    }
  ]
}

A ticket carries 26 fields and an item carries 50. DG Vault reads ten of them.

02

What we read, and what we leave alone

The split matters to us as much as to you. DG Vault is a dangerous goods record, not a billing system, so the commercial side of a ticket is of no use to it and is never stored.

The ten fields DG Vault reads

In DG VaultYour fieldTicket 13545Why
Volume off-loadedNetQuantity_nb1,006.7 LCorrected to 15 °C. Drives the declining balance on the shipping record.
Volume as meteredGrossQuantity_nb1,019.3 LKept beside it so both figures are on the record.
Liquid temperatureProduct_Temperature_nb19 °CRecorded at the off-load. Confirmed Celsius, see section 03.
Ticket numberTicket_nb, Sale_nb13545, 13641Goes on the record as the delivery reference. Question 5.
Which truckTruck_Code2016Matched to the unit on the open DG Vault record.
WhenTicket_dt07:57:13Places the off-load inside the right shipping record.
WhereLatitude, Longitude42.99798, -79.29863The same position DG Vault records at each stop today.
Tank before and afterPercentFull_Start_nb, PercentFull_End_nb0%, 99%Useful context on the delivery. Not captured today.
ContinuityTotalizerGross_nb12,755,250.9Proves no delivery is missing from a day. See section 03.
Duplicate guardTicket_GUID20166f0a...A ticket read twice is written once.
Never read, never stored. Amount_nb, LineTotal_nb, UnitPrice_nb, Price_Code, Ticket_Tax, TaxGroup_Code, Customer_Payment_nb, Payby fields, Prebuy and Contract fields. DG Vault has no use for what a delivery cost and does not want a copy of it.
No writes, ever. DG Vault only issues GET requests. It does not create, update or acknowledge anything on your side, and it does not mark tickets as exported. Nothing we do can change what Free Gas sees in your system.
03

Two checks we ran on your feed

Before asking for access we wanted to be sure we understood the data rather than assuming. Both checks were run against the ten tickets from 13 October.

10 of 10 exact

The totalizer accounts for every litre

If a delivery were missing from the feed, the running meter total would jump by more than the ticket in front of it. We checked every step against the gross volume on that ticket.

TicketTotalizer stepGross on ticketMatch
13546783.5783.5exact
13547418.6418.6exact
13548992.4992.4exact
13549819.9819.9exact
13550884.7884.7exact
13551282.2282.2exact
13552240.7240.7exact
13553272.9272.9exact
135541245.21245.2exact

Every step matches to 0.1 L. DG Vault can use this as a daily integrity check and raise a flag for the office if a day ever fails to reconcile.

Within 0.21 °C

Your correction matches the table we already use

DG Vault corrects propane volume with the Measurement Canada table (ASTM-IP 54, reference 15 °C). We worked backwards from your net and gross figures to see which temperature each implied, and compared it to the temperature on the ticket.

TicketOn the ticketImplied by factorGap
1354619 °C18.990.01
1354819 °C18.790.21
1355119 °C19.050.02
1355220 °C19.880.01
1355321 °C21.020.02
1355421 °C21.080.05

All ten tickets land inside the half degree either side of the whole number on the ticket, so the temperature field is Celsius, rounded to a whole degree, against a 15 °C reference. Because it is rounded, DG Vault takes your corrected volume as given rather than recomputing it.

What this means in practice. We are not guessing at your data. The volumes agree with the published correction table, the meter accounts for every delivery in the day, and the GUID on each ticket gives us a safe way to avoid writing the same delivery twice. That is enough for us to build against with confidence.
04

Where it lands in DG Vault

Nothing is written to a shipping record automatically without a driver seeing it. A ticket that cannot be matched is held for the office rather than guessed at.

Once a day, per truck Register writesthe ticket DG Vault readsthe day for that truck Open recordfor that truck? Off-load drafted:litres, temp, ticket Held for the officeto match Driver confirmson the phone yes no
A ticket is matched to the DG Vault record that was open for that truck when the ticket was written. Ticket_GUID is stored on the off-load, so re-reading a day never duplicates a delivery. The driver still signs, records the PRV reading and confirms the stop.
What a driver notices. The litres, the temperature and the ticket number are already filled in. Three fewer things to type at the side of a truck, and three fewer things to mistype.
What DG Vault refuses. A ticket that is not Verified, has a zero volume, or has no open record for that truck is never written. It waits for a person.
05

What we need from Base Engineering

Five short questions. Free Gas has asked us to proceed, so the only thing in the way is access and the detail below.

1
Which host should we call?The samples we have come from dev-api-3.baseng-app.com. We assume that is not the host you want polled daily, and would rather be told the right one than guess.
2
How should DG Vault authenticate?Nothing in the document we hold describes it. An API key or a client credential scoped to Free Gas is ideal, and we will hold it the way we hold our other secrets, never in source control.
3
Is one call per truck per day acceptable, and is there a window you prefer?Eight calls a day at today's fleet size. We will run them overnight by default, and we can spread them or move them if a particular hour suits you better.
4
Does start_date and end_date filter on Ticket_dt, and is end_date inclusive?We used 00:00:00 to 23:59:59 and got a full day for truck 2016. We want to be sure a delivery written at 23:59 is never missed and never counted twice at a day boundary.
5
What is the difference between Ticket_nb and Sale_nb?They run exactly 96 apart across all ten tickets. We want to put the number Free Gas treats as the delivery reference on the shipping record, and would rather take your word for which that is.

What happens next

With a host, a credential and a yes to the schedule, DG Vault can be reading Free Gas tickets within a week, and we would start by running it alongside the drivers' manual entry for a few days so Free Gas can see the two agree before anyone relies on it.

If something here is wrong about your system, tell us and we will correct it. We would rather fix an assumption now than build on it.