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

ParameterTypeRequiredDescription
transaction_idstringConditionalOur transaction ID (data_xxx)
referencestringConditionalYour 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

FieldTypeDescription
transaction_idstringOur unique transaction identifier
statusstringpending, processing, sent, delivered, failed
provider_referencestringProvider's transaction reference
order_referencestringNetwork order reference (e.g., MN-xxx)
processing_methodstringauto or manual
failure_reasonstring | nullError message if status is failed
sent_attimestampWhen order was sent to provider
delivered_attimestamp | nullWhen 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.