Voice & AFA
Voice bundles and AFA (Agent / registration-related) packages use the same transactions API with product voice or afa.
How to use
- GET /products → find
type: "voice"or"afa"and their packages. POST /transactionswithproduct: "voice"or"afa", matchingproductId/packageId, and the product scope (voice:purchaseorafa:purchase).
Voice
Scopes: transactions:create, voice:purchase
| Field | Notes |
|---|---|
product | "voice" |
productId | From catalog |
packageId | When packages are listed for the product |
beneficiary | MSISDN |
amount | If sold by amount |
AFA
Scopes: transactions:create, afa:purchase
POST
https://confident-elephant-309.convex.site/v1/transactionsRequest
curl -sS https://confident-elephant-309.convex.site/v1/transactions \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{ "idempotencyKey": "afa-order-001", "product": "afa", "productId": "afa-mtn", "packageId": "<package-id>", "beneficiary": "0241234567" }'201 Created
{ "transaction": { "id": "511260", "reference": "511260", "status": "pending", "kind": "purchase", "environment": "sandbox" }}Confirm available packages with Products. Exact AFA fields follow your Ops-configured catalog.