GET /transactions/{ref}/timeline
GET /api/v1/remittance/transactions/{reference}/timelineFull per-transaction event audit. Every step in the lifecycle is a row:
- Inbound accepted
- Compliance screening result (sender + receiver)
- FX conversion (if applicable)
- Wallet reservation
- Switch dispatch to telco
- Telco callback received
- Settlement
- Merchant callback dispatch + delivery attempts
Auth: Basic merchant_code:merchant_secret
Response (200 OK)
json
{
"status": "success",
"data": {
"reference": "TXN_001",
"transaction_id": "IMT-IN-20260814-A1B2C3-D4E5",
"events": [
{
"at": "2026-08-14T14:00:00.100000",
"kind": "inbound.accepted",
"detail": "Amount 10 USD to 243812345678 (mpesa)"
},
{
"at": "2026-08-14T14:00:00.200000",
"kind": "screening.ok",
"detail": "Sender + receiver cleared ScreenShield"
},
{
"at": "2026-08-14T14:00:00.400000",
"kind": "wallet.reserved",
"detail": "Reserved 10.00 USD from wallet wc_mpesa_usd_prod1"
},
{
"at": "2026-08-14T14:00:00.600000",
"kind": "switch.dispatched",
"detail": "Sent to Vodacom M-Pesa"
},
{
"at": "2026-08-14T14:00:22.900000",
"kind": "telco.callback",
"detail": "MPESA-XY7ZW · Successful"
},
{
"at": "2026-08-14T14:00:23.100000",
"kind": "wallet.confirmed",
"detail": "Debited 10.00 USD from wallet wc_mpesa_usd_prod1"
},
{
"at": "2026-08-14T14:00:23.500000",
"kind": "merchant.callback.sent",
"detail": "HTTP 200 from https://your.example.com/callbacks/moko"
}
]
}
}When to use it
- Debugging a failed transaction — see exactly where it stopped.
- Compliance audit — the timeline is the audit trail. Save it or export it.
- Merchant support UI — show the timeline to your ops team so they don't have to guess.
The merchant dashboard uses this endpoint on the transaction drawer.
