Skip to main content

Event Catalog

All events Tower Crown can deliver to your webhook endpoint. The payload body is the full JSON representation of the resource that triggered the event. you get the same data structure you'd receive from the corresponding REST endpoint.


Available Events

EventTrigger
shipment.createdA new shipment was booked.
shipment.rescheduledA shipment was moved back to PENDING after being canceled.
shipment.canceledA shipment was canceled.
shipment.deliveredA shipment was marked as delivered.
wallet.fundedA wallet top-up was processed successfully.

shipment.created

Fired immediately after a shipment is booked and the wallet has been debited.

{
"id": "SHP_Z8F9A2B3C4",
"trackingCode": "TCL-SB-3891829",
"senderName": "Grace Adegoke",
"senderPhone": "+2348031234567",
"receiverName": "John Doe",
"receiverPhone": "+2348123456789",
"originAddress": "12 Allen Avenue, Ikeja, Lagos",
"destinationAddress": "Ring Road, Ibadan, Oyo",
"packageTitle": "Laptop & Charger",
"packageCategory": "MEDIUM",
"totalCost": 33040,
"status": "PENDING",
"events": [
{
"title": "Shipment Created",
"description": "Shipment order received.",
"createdAt": "2026-07-01T17:42:00Z"
}
],
"createdAt": "2026-07-01T17:42:00Z"
}

shipment.rescheduled

Fired when a previously canceled shipment is moved back to PENDING. This re-deducts the shipping fee from the wallet.

{
"id": "SHP_Z8F9A2B3C4",
"trackingCode": "TCL-SB-3891829",
"status": "PENDING",
"events": [
{
"title": "Shipment Created",
"description": "Shipment order received.",
"createdAt": "2026-07-01T17:42:00Z"
},
{
"title": "Shipment Rescheduled",
"description": "The shipment was rescheduled",
"createdAt": "2026-07-01T19:30:00Z"
}
],
"createdAt": "2026-07-01T17:42:00Z"
}

shipment.canceled

Fired when a shipment is canceled. The shipping fee is refunded to the wallet automatically.

{
"id": "SHP_Z8F9A2B3C4",
"trackingCode": "TCL-SB-3891829",
"status": "CANCELED",
"events": [
{
"title": "Shipment Created",
"description": "Shipment order received.",
"createdAt": "2026-07-01T17:42:00Z"
},
{
"title": "Shipment Canceled",
"description": "The shipment was canceled by the user.",
"createdAt": "2026-07-01T19:00:00Z"
}
],
"createdAt": "2026-07-01T17:42:00Z"
}

shipment.delivered

Fired when the logistics system marks a shipment as delivered. This transition is handled by the Tower Crown operations team. it cannot be set manually via the API.

{
"id": "SHP_Z8F9A2B3C4",
"trackingCode": "TCL-SB-3891829",
"status": "DELIVERED",
"events": [
{
"title": "Shipment Created",
"description": "Shipment order received.",
"createdAt": "2026-07-01T17:42:00Z"
},
{
"title": "Simulated transition to DELIVERED",
"description": "Triggered via Developer Console Sandbox.",
"createdAt": "2026-07-01T21:10:00Z"
}
],
"createdAt": "2026-07-01T17:42:00Z"
}

wallet.funded

Fired after a successful wallet top-up. The payload is the created transaction ledger entry.

{
"id": "TNX_A1B2C3D4E5",
"date": "2026-07-01T18:00:00Z",
"type": "TOPUP",
"description": "Prepaid Deposit via GTBank",
"amount": 50000,
"balanceAfter": 150000,
"reference": "GTB2026070100987"
}

note

The payload for shipment events is the full ShipmentRecord as it exists at the time the event fires. including all events in the events array up to that point. Use the status field to determine the trigger.