Airtime

Top up prepaid mobile airtime on supported networks (MTN, AirtelTigo, and others exposed in your catalog).

How to use

  1. GET /products → pick an airtime productId (e.g. airtime-mtn).
  2. POST /transactions with scopes transactions:create and airtime:purchase, plus amount, beneficiary, and a unique idempotencyKey.
  3. Poll GET /transactions/{id} or wait for webhooks for the final status.

Create airtime purchase

Scopes: transactions:create, airtime:purchase

FieldRequiredNotes
productYes"airtime"
productIdYesAirtime product from GET /products
amountYesGHS major units
beneficiaryYesMSISDN to credit (local format OK)
idempotencyKeyYesUnique per request
POSThttps://confident-elephant-309.convex.site/v1/transactions
Request
curl -sS https://confident-elephant-309.convex.site/v1/transactions \  -H "Authorization: Bearer $KEY" \  -H "Content-Type: application/json" \  -d '{    "idempotencyKey": "550e8400-e29b-41d4-a716-446655440001",    "product": "airtime",    "productId": "airtime-mtn",    "amount": 1,    "beneficiary": "0241234567"  }'
201 Created
{  "transaction": {    "id": "511260",    "reference": "511260",    "status": "pending",    "kind": "purchase",    "environment": "sandbox"  }}

Sandbox tip