Data Bundles API
Check Purchase Status
GET/api/v1/data/purchase
Check the status of a data purchase transaction. Query by transaction ID or your custom reference. Useful for verifying delivery or handling manual processing delays.
Select Language
REQUEST
# Check by transaction ID
curl -X GET \
"https://api.sendcomms.com/api/v1/data/purchase?transaction_id=data_mjgodtyl_51c55a845f34" \
-H "Authorization: Bearer YOUR_API_KEY"
# Check by your reference
curl -X GET \
"https://api.sendcomms.com/api/v1/data/purchase?reference=order-123" \
-H "Authorization: Bearer YOUR_API_KEY"Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transaction_id | string | Conditional | Our transaction ID (data_xxx) |
| reference | string | Conditional | Your custom reference ID |
* Either transaction_id or reference is required
Response Codes
200Success400Missing params401Unauthorized404Not found
Response
Success Response
Returns the full transaction details including timestamps and provider references.
{
"success": true,
"data": {
"transaction_id": "data_mjgodtyl_51c55a845f34",
"status": "sent",
"phone_number": "0540800994",
"network": "mtn",
"capacity_gb": 1,
"price": {
"amount": 4.72,
"currency": "GHS"
},
"provider_reference": "TRX-60493ef0-bd7b-4798-8c5c-a75db2da186d",
"order_reference": "MN-AO7732GP",
"processing_method": "manual",
"failure_reason": null,
"reference": "order-123",
"metadata": { "user_id": "usr_abc123" },
"created_at": "2025-12-22T04:48:10.428Z",
"sent_at": "2025-12-22T04:48:11.234Z",
"delivered_at": null,
"failed_at": null
}
}Response Fields
| Field | Type | Description |
|---|---|---|
| transaction_id | string | Our unique transaction identifier |
| status | string | pending, processing, sent, delivered, failed |
| provider_reference | string | Provider's transaction reference |
| order_reference | string | Network order reference (e.g., MN-xxx) |
| processing_method | string | auto or manual |
| failure_reason | string | null | Error message if status is failed |
| sent_at | timestamp | When order was sent to provider |
| delivered_at | timestamp | null | When data was confirmed delivered |
Pro tip: Instead of polling, set up webhooks to receive real-time notifications when transaction status changes. See the Webhooks documentation.
