Monitor transfers in real time
Transfer manifests move packages between facilities and change status over hours or days. Polling for status changes wastes calls and adds latency. Webhooks tell you the moment something changes.
Subscribe to transfer events
POST /v1/webhooks/ with events: ["transfer.arrived", "transfer.completed"] and your endpoint URL. SeedLink signs every delivery so you can verify it actually came from SeedLink.
Verify and handle deliveries
Check the X-Seedlink-Signature header against your webhook's signing secret before trusting the payload. A transfer.arrived event's data includes the transfer's id, connection_id, and facility_id, enough to look up the full transfer if you need more than the event gives you.
Reconcile on startup
Webhooks can be missed (an outage on your end, a delivery that never arrives). On startup, or on a low-frequency schedule, call GET /v1/connections/{connection_id}/facilities/{facility_id}/transfers and reconcile against your own records as a fallback. Don't rely on webhooks as the only source of truth.
Test it without waiting on a real transfer
In sandbox, POST /v1/sandbox/{connection_id}/simulate with "scenario": "transfer_arrived" fires the same event your webhook would receive in production, so you can build and test the handler before any real manifest exists.