Overview
Push us an event when a load is created, instead of us polling for it.
This section is for systems that send events to FR8 Factory. It is the opposite direction from the Customer Data API, which is for reading your load data out of us.
Today there is one integration here: LDI pushes an event when a load is created.
Why this exists
We currently discover new LDI loads by polling /getLoadsByList every
fifteen minutes. That endpoint's pagination returns overlapping samples
of the working set rather than a stable ordering, so there is no way to
ask it "what is new since X".
So we walk pages until several in a row contain nothing we have not already seen, then infer we have probably covered everything. It is a probabilistic answer to a question that has an exact one — and loads have been missed because of it.
One event at creation replaces the guess.
The shape of it
POST /api/webhooks/ldi/loads
X-LDI-Signature: t=<unix-seconds>,v1=<hex-hmac>
Content-Type: application/json
{ "eventId": "…", "eventType": "load.created", … }We verify the signature, store the event, and return 202 — all
before doing anything with it. Processing happens afterwards, on our
side, at our pace.
That ordering is deliberate and it shapes everything else in this
section: 202 means we have it and will not lose it, not that the
load is in our system yet. Your delivery is decoupled from our
processing, so a bug on our side is ours to replay and never a reason
for you to redeliver.
What we do not do
We do not poll you for events, and we do not ask you to batch them. One event, one request, signed.