Feeef Cloud
Parcels API

Events & webhooks

The status timeline for a parcel, and the outbound webhook contract.

Timeline

GET /parcels/:id/events
curl "https://apis.cloud.feeef.org/v1/parcels/pcl_8Xw…/events" \
  -H "Authorization: Bearer $FEEEF_CLOUD_KEY"
{ "data": [
  { "type": "created",        "source": "api",              "at": "2026-08-13T08:01:22Z" },
  { "type": "submitted",      "source": "api",               "at": "…", "toStatus": "submitted" },
  { "type": "status_changed", "source": "webhook:yalidine",  "at": "…",
    "fromStatus": "submitted", "toStatus": "out_for_delivery",
    "payload": { "carrierStatus": "Sorti en livraison" } }
] }

source tells you whether a transition came from a carrier webhook, the platform's poller, or a direct API call — the field to check first when a status looks wrong and you need to know whether it's your integration, the platform, or the carrier that's out of sync. payload.carrierStatus preserves the carrier's own raw status string alongside the platform's unified vocabulary, useful when a carrier support ticket needs the exact wording they use internally.

Outbound webhooks

Register an endpoint through POST /webhook-endpoints with webhooks:manage. Parcel subscriptions include parcel.created, parcel.status_changed, parcel.delivered, parcel.deleted and batch.completed. Cancellation and returns are represented by status changes rather than separate parcel.cancelled or parcel.returned event types.

See Webhooks for registration, signature verification and delivery deduplication. Keep timeline polling available when diagnosing delayed or failed deliveries.

On this page