Purchase endpoints share one transaction pipeline #
Airtime, data, cable TV, electricity and education purchases now run through the same validation, pricing, wallet and state machine path. Behaviour that previously varied between products is now identical across all five.
Affected
POST /v1/airtime/purchasePOST /v1/data/purchasePOST /v1/tv/purchasePOST /v1/electricity/purchasePOST /v1/edu/purchase
Action required
No request or response change. Integrations that special cased one product to work around a difference in error shape or wallet timing can drop that handling.
Each product was originally implemented with its own request handling. The paths converged over time but never exactly, so error envelopes, idempotent replay and the point at which the wallet was debited could differ in small ways between one product and the next. Those differences were invisible until an integration handled several products and had to account for each.
All product now compose the same engines. One pricing resolution, one wallet lock, one state machine, one error envelope. The practical effect is that behaviour learned against one product holds for the rest.