https://simcloud.co.za/api/vas.php
All API requests require authentication using a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_TOKEN
GET without query parameters to fetch the active VAS product catalog.POST.order_id and transaction_id.GET until the status changes from pending to success or failed.GET
Returns active VAS products currently available from the supplier.
GET https://simcloud.co.za/api/vas.php
{
"status": "success",
"service": "vas",
"count": 2,
"products": [
{
"product_id": 12,
"voucher_type": "Checkers",
"slug": "checkers",
"default_amount": 100,
"available_amounts": [50, 100, 200, 500],
"logo_url": "https://simcloud.co.za/img/vas_logos/checkers.jpg"
}
]
}
POST Content-Type: application/json
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | integer | No | SIMcloud VAS product ID returned by the catalog endpoint. |
| voucher_type | string | No | Exact voucher type or slug returned by the catalog endpoint. Required if product_id is not supplied. |
| amount | number | Yes | Voucher amount in rand. Must match one of the product's available amounts. |
| reference | string | Yes | Your own reference for the order. Maximum 200 characters. |
The API also accepts product or voucher_supplier as aliases for voucher_type, and user_reference or client_reference as aliases for reference.
{
"product_id": 12,
"amount": 100.00,
"reference": "INV-10045"
}
{
"status": "success",
"message": "VAS order queued successfully",
"service": "vas",
"order_id": 501,
"transaction_id": "56b8998d-0fc6-4f63-9e02-13a52ff909f4",
"product_id": 12,
"voucher_type": "Checkers",
"amount": 100,
"fee": 0,
"total_billed_amount": 100,
"reference": "INV-10045",
"process_status": "Pending",
"billing_status": "pending",
"timestamp": "2026-06-24 14:30:00"
}
{
"status": "error",
"message": "Amount is not available for this VAS product",
"available_amounts": [50, 100, 200, 500]
}
{
"status": "error",
"message": "Insufficient balance. Please top up your account.",
"required_balance": 100,
"available_balance": 40
}
GET
Poll an API-created VAS order by SIMcloud order ID or transaction ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| order_id | integer | No | SIMcloud VAS order ID returned by the POST request. |
| transaction_id | string | No | Transaction ID returned by the POST request. |
At least one query parameter is required to query an order. Without query parameters, GET returns the catalog.
Only VAS orders created through the API and owned by the authenticated account can be queried here.
GET https://simcloud.co.za/api/vas.php?order_id=501
{
"status": "pending",
"message": "VAS order is still processing.",
"service": "vas",
"order_id": 501,
"transaction_id": "56b8998d-0fc6-4f63-9e02-13a52ff909f4",
"product_id": 12,
"voucher_type": "Checkers",
"amount": 100,
"fee": 0,
"total_billed_amount": 100,
"reference": "INV-10045",
"process_status": "Submitted",
"billing_status": "pending",
"supplier_http_status": 200,
"supplier_error": null,
"created_at": "2026-06-24 14:30:00",
"submitted_at": "2026-06-24 14:30:20",
"completed_at": null,
"updated_at": "2026-06-24 14:30:20"
}
{
"status": "success",
"message": "VAS order completed successfully.",
"service": "vas",
"order_id": 501,
"transaction_id": "56b8998d-0fc6-4f63-9e02-13a52ff909f4",
"product_id": 12,
"voucher_type": "Checkers",
"amount": 100,
"fee": 0,
"total_billed_amount": 100,
"reference": "INV-10045",
"process_status": "Completed",
"billing_status": "billed",
"supplier_http_status": 200,
"supplier_error": null,
"created_at": "2026-06-24 14:30:00",
"submitted_at": "2026-06-24 14:30:20",
"completed_at": "2026-06-24 14:31:00",
"updated_at": "2026-06-24 14:31:00",
"vouchers": [
{
"voucher_type": "Checkers",
"voucher_code": "1234567890123456",
"value": 100,
"expiry_date": "2029-06-24 00:00:00"
}
]
}
pending: Order is queued, submitted, or being reconciled with the supplier.success: Order completed and voucher details are available.failed: The supplier or local processing returned a failed status.| Code | Description |
|---|---|
| 400 | Bad Request (missing or invalid parameters, unavailable denomination, or insufficient balance) |
| 401 | Unauthorized (invalid or missing token) |
| 404 | Order not found |
| 405 | Method not allowed |