Robbo Data GH Developer API
Automate data bundle purchases, check wallet balance, and receive webhook notifications when order status changes.
API keys use the rdg_live_ prefix.
Introduction
The Robbo Data GH API is a REST JSON API. All requests are authenticated with an API key tied to your wallet and account pricing.
Create an API key from Dashboard → Developer API.
Send
X-API-Key on every request.
Use wallet payment for instant fulfillment, or Paystack for card/MoMo checkout.
Configure a webhook URL to receive signed order status updates.
Base URL
Format
application/json
Rate limit: fair use · 60 req/min recommended
Authentication
Include your secret API key in the X-API-Key header. Never expose keys in client-side browser code.
Content-Type: application/json X-API-Key: rdg_live_your_api_key_here
Endpoints
List products
Returns active data bundles, checkers, and other products with pricing.
{
"success": true,
"data": [
{
"id": 1,
"type": "DATA",
"name": "MTN 1GB",
"network": "MTN",
"data_amount": "1GB",
"price": "GH₵4.50",
"price_pesewas": 450
}
]
}
Wallet balance
Returns your current Robbo wallet balance linked to the API key account.
Create order
Place a new order. Wallet payment debits your balance immediately. Paystack returns a checkout URL.
| Field | Type | Description |
|---|---|---|
| product_id | integer | Required. Product ID from /products |
| recipient_phone | string | Required for data. 10-digit Ghana number |
| payment_method | string | WALLET (default) or PAYSTACK |
| store_slug | string | Optional agent store slug |
{
"product_id": 1,
"recipient_phone": "0241234567",
"payment_method": "WALLET"
}
Order status
Poll order delivery status by reference returned from create order.
Webhooks
When an order status updates, we dispatch an HMAC-SHA256 signed POST payload to your callback URL configured on your API key in the dashboard.
Header: X-Webhook-Signature — hex digest of the raw JSON body using your webhook secret (whsec_...).
{
"event": "order.status_updated",
"data": {
"reference": "RDG-20260908-ABC123",
"status": "COMPLETED",
"payment_status": "SUCCESS",
"recipient": "0241234567",
"amount": "GH₵4.50"
}
}
// Node.js verification
const crypto = require('crypto');
function verifyWebhook(rawBody, signatureHeader, secret) {
const hmac = crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
return crypto.timingSafeEqual(Buffer.from(hmac), Buffer.from(signatureHeader));
}
Code examples
Copy-ready samples for popular languages.
const response = await fetch("https://robbodata.com/api/v1/orders", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": process.env.ROBBO_API_KEY,
},
body: JSON.stringify({
product_id: 1,
recipient_phone: "0241234567",
payment_method: "WALLET",
}),
});
const data = await response.json();
if (!data.success) throw new Error(data.error?.message);
console.log(data.data.reference, data.data.status);
Errors
Handle failures consistently in your integration.
| HTTP | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Invalid parameters or insufficient wallet balance |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Account suspended |
| 404 | NOT_FOUND | Order not found |