A useful employee rewards platform does more than issue gift codes. It controls eligibility, approval, catalogue selection, wallet availability, voucher fulfilment, private delivery and reconciliation. The SIMcloud VAS API supplies the catalogue and voucher-order lifecycle; your application supplies programme policy and user experience.
Design the platform boundaries
Separate six responsibilities:
| Component | Responsibility |
|---|---|
| Programme rules | Eligibility, reward levels, approved products and budgets. |
| Approval workflow | Who may request, approve and release value. |
| Catalogue service | Fetch and cache current SIMcloud voucher products for a short controlled period. |
| Order worker | Validate, submit and persist SIMcloud order identifiers. |
| Result worker | Poll pending orders to success or failure. |
| Delivery service | Release completed voucher details privately to the intended employee. |
| Reconciliation | Match approval, billing, fulfilment and delivery without exposing codes. |
Create a traceable data model
A minimal relational design needs records for programmes, recipients, approvals, reward orders and delivery. The reward order should include:
- Local reward order ID.
- Programme and employee reference.
- Approver and approval timestamp.
- Requested product slug and amount.
- SIMcloud product ID resolved from the current catalogue.
- SIMcloud
order_idandtransaction_id. - Processing and billing status.
- Created, submitted, completed and delivered timestamps.
- Safe failure reason.
Store completed voucher details separately with stricter access and encryption appropriate to your environment. Do not copy them into the ordinary reward-order log.
Load the live VAS catalogue
GET https://simcloud.co.za/api/vas.php
Authorization: Bearer YOUR_API_TOKEN
The response includes current products, product IDs, voucher types, slugs and available amounts. The employee interface should offer only the products approved by your programme and currently returned by SIMcloud.
Never hard-code a voucher product ID. Catalogue IDs and availability are operational data. Resolve the approved slug to the current product and validate the requested amount against available_amounts.
Approve before creating value
- Create a reward request with an immutable local ID.
- Evaluate programme eligibility and remaining budget.
- Resolve the chosen product against the current catalogue.
- Validate the amount against programme rules and the live product.
- Record the approver and approval time.
- Queue a fulfilment job; do not call SIMcloud directly from the approval-page browser request.
Submit the VAS order
POST https://simcloud.co.za/api/vas.php
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json
{
"product_id": 12,
"amount": 100.00,
"reference": "REWARD-2026-000184"
}
The example product ID is illustrative. Use the ID returned by the catalogue in the same integration flow.
A successful creation returns HTTP 201 with order_id, transaction_id, product, amount, fee, total billed amount, reference, processing state and billing state. Persist those fields before the worker exits.
Poll to a final result
GET https://simcloud.co.za/api/vas.php?order_id=501
Authorization: Bearer YOUR_API_TOKEN
Pending means queued, submitted or being reconciled. Success includes the completed voucher details. Failed is final and requires the programme’s exception process.
- Load a pending local reward order.
- Query using its persisted SIMcloud order ID.
- Update processing and billing fields.
- If pending, schedule another bounded poll.
- If successful, store the voucher details in the protected delivery store.
- If failed, close fulfilment and notify the responsible operator.
- Never create a replacement automatically without reconciling the original order.
Deliver the voucher privately
The delivery service should check that the reward remains approved, the SIMcloud order is successful and the authenticated employee matches the intended recipient. A secure employee portal is preferable to email or chat where feasible.
Record delivery time and channel. Do not mark a reward “delivered” merely because the supplier issued the code.
Voucher codes are secrets with monetary value. Exclude them from analytics, debug traces, queue payload inspection screens and general reconciliation exports.
Handle wallet and catalogue failures
| Failure | Platform response |
|---|---|
| Product unavailable | Return the reward to an approved product-choice step. Do not substitute silently. |
| Amount unavailable | Reload current amounts and require a new approved selection. |
| Insufficient wallet balance | Pause fulfilment and alert finance/operations with the required and available balance. |
| HTTP 401 | Disable fulfilment and alert operations about API credentials. |
| Pending too long | Escalate the existing order ID; do not create a duplicate. |
| Failed order | Preserve failure evidence and follow the approved replacement process. |
Build programme reconciliation
Report approved, submitted, successful, failed and delivered reward counts and values. Match records by your immutable reference and SIMcloud IDs. Ordinary reports should not include voucher codes.
Frequently asked questions
Does SIMcloud decide employee eligibility?
No. Your platform owns programme policy and approval; SIMcloud provides voucher catalogue and fulfilment.
Can employees choose a voucher brand?
Yes, if your programme permits it. Filter the live catalogue to the products you approve.
Should fulfilment happen inside the web request?
Use background workers so the application can persist IDs, poll pending orders and recover safely.
Can the platform show voucher codes in reports?
Keep codes in a protected delivery store. General reports should use references, values and statuses.
How do we prevent stale product IDs?
Fetch the live catalogue and resolve the approved product slug before ordering.