Subthingy API
The Subthingy API powers brand gift cards, airtime, data, electricity, and pay-TV purchases for your customers. All routes live under a single base URL:
https://api.subthingy.io/v1There is no separate staging host — live and test traffic share the same base URL. Which environment a request runs in is determined entirely by the X-Merchant-Key / X-Merchant-Secret pair you send: every merchant is provisioned with both a live credential and a test credential, and the API resolves environment from whichever one is presented. See Environments.
Quick start
-
Contact your account manager for your live and test API keys and onboarding.
-
Send
X-Merchant-KeyandX-Merchant-Secreton every request (see Authentication) — use your test key while integrating, and your live key for real customer traffic. -
Complete production IP whitelisting before go-live.
-
Create a purchase with a sync route (recommended) — see Airtime or Bill payments.
-
If you use async, poll status with the same
request_refyou submitted:GET /v1/transactions/status?request_ref={your_request_ref}See Check status.
-
Stay within the default rate limit of 30 TPS (1,800 RPM) unless a higher quota is arranged.
-
Provide reconciliation email addresses for T+1 reports.
What you can do
| Action | Guide |
|---|---|
| Response field rules (all products) | Errors & codes |
| Buy brand gift cards (Apple, Netflix, etc.) | Gift cards |
| Buy travel eSIMs | eSIM |
| Buy airtime or data | Airtime |
| Pay electricity | Electricity |
| Pay cable TV (DStv, GOtv, StarTimes) | Cable TV |
| Fund betting wallets | Betting |
| Bill payments overview | Bill payments overview |
| Check outcome (airtime/data) | Airtime Async |
| List purchases | Airtime Async |
| Prepaid wallet balance | Wallet balance |
| Full product catalog (names and amounts) | Catalog |
| Data bundle catalog | Data plans |
| Live vs. test keys | Environments |
| Throughput guidance | Rate limits |
Networks (airtime & data)
Use lowercase network names: mtn, glo, airtel, 9mobile.