Skip to content
TrackJet

7-day Pro trial included with every new account — no card, no charge.

Start free with 500 saved shipments. Every new account also gets a 7-day Pro trial — no card required.

Start 7-day Pro trial

Proof-of-Delivery API

A signed, offline-verifiable proof of a recorded delivery for disputes, insurance and refunds — with a 30-day window.

What it is

The Proof-of-Delivery API returns a signed, offline-verifiable document proving a shipment's recorded delivery — for a dispute, an insurance claim or a refund decision.

`` GET /api/v1/shipments/{uuid}/pod ``

Public (the UUID is the capability, the same model as /proof); no PII; no API key required.

A real response

For a delivered shipment:

``bash curl -s https://trackjet.world/api/v1/shipments/{uuid}/pod ``

returns tjpod1 with the recorded delivery event and an embedded Ed25519 passport (a real response from a recently delivered shipment):

``json { "ok": true, "data": { "spec": "tjpod1", "status": "delivered", "delivered_at": "2026-05-12T12:16:00+02:00", "delivery": { "occurred_at": "…", "location": "Germany", "description": "…delivered" }, "passport": { "spec": "tjpass1", "alg": "Ed25519", "payload_b64": "…", "signature_b64": "…" }, "verify": { "public_key_url": "https://trackjet.world/.well-known/trackjet-passport.json" } }} ``

Verify the passport against the [published key](/.well-known/trackjet-passport.json) with the dependency-free tjverify CLI — no call back to TrackJet. It proves TrackJet signed this exact snapshot, not that the carrier's original scan was true.

Honest states

  • Not delivered yet → 409 not_delivered (a POD is never issued for an undelivered shipment).
  • Unknown / malformed UUID → 404 / 400.

The retention window — read this

A POD is built from a shipment's event detail, which TrackJet keeps for ~30 days after the last update (the retention policy). Past that window the endpoint returns:

`` 410 pod_outside_retention ``

an honest, permanent "gone" — not a retryable error. The sealed hash chain still remains at /api/v1/shipments/{uuid}/proof.

Practical guidance: pull and store the POD when a dispute opens, or near delivery — don't fetch it months later and expect it to still be there. Insurance and chargeback windows are often 60-90 days; if you need POD coverage to match, ask us about extending retention for delivered shipments.