Preview: the API is being built and these endpoints may change
GET/api/v1/transactions/{reference}
Get a transaction
One sale, its current state and its full timeline.
Returns the sale with every state it moved through, from created to successful or failed, each with a time and a reason.
Request
bash
curl https://api.simconnectng.com/api/v1/transactions/txn_0192f4c1a7e84b6f9d2c3e5a7b9d1f30 \
-H "Authorization: Bearer $SIMCONNECT_KEY"Response
json
{
"success": true,
"data": {
"reference": "txn_0192f4c1a7e84b6f9d2c3e5a7b9d1f30",
"client_reference": "order_1042",
"status": "successful",
"product_code": "MTN-VTU",
"network": "mtn",
"destination": "+234********78",
"amount": 500.00,
"price": 2.00,
"attempt_count": 1,
"created_at": "2026-10-06T12:04:01Z",
"completed_at": "2026-10-06T12:04:03Z",
"timeline": [
{ "from_status": null, "to_status": "created", "reason": "accepted", "actor_type": "api_key", "candidate_kind": null, "provider": null, "provider_reference": null, "created_at": "2026-10-06T12:04:01.120Z" },
{ "from_status": "created", "to_status": "queued", "reason": "hold placed", "actor_type": "system", "candidate_kind": null, "provider": null, "provider_reference": null, "created_at": "2026-10-06T12:04:01.131Z" },
{ "from_status": "queued", "to_status": "processing", "reason": "executor started", "actor_type": "system", "candidate_kind": null, "provider": null, "provider_reference": null, "created_at": "2026-10-06T12:04:01.348Z" },
{ "from_status": "processing", "to_status": "successful", "reason": "success", "actor_type": "system", "candidate_kind": "sim", "provider": "simgateway", "provider_reference": "8F2K41", "created_at": "2026-10-06T12:04:03.902Z" }
]
},
"message": "OK",
"code": "OK"
}The sale also carries the other fields of Send airtime (id, mode, service, failure_code, failure_message). status can also be refunded, when we refund a sale, and the timeline then gains that step. The figures shown here are placeholders.
Error
json
{ "success": false, "data": null, "message": "Transaction not found", "code": "NOT_FOUND" }Give this to your coding agent
prompt
Read https://simconnectng.com/docs/api/get-transaction.md and implement "Get a transaction" (GET /api/v1/transactions/{reference}) in this project.
Read the API key from the SIMCONNECT_KEY environment variable.
Every response is { success, data, message, code }; on an error data is null (or carries data.errors), so branch on code.