Initiate an MVNO purchase for a specified app user

MVNO admin purchase flow (SUPER_ADMIN or MVNO_ADMIN). The customer app user must be supplied explicitly for every payment method except AIRTIME — wallet and card payment instruments belong to an app user. AIRTIME purchases may omit appUserUuid because the paying account can exist before any app user does (e.g. USSD subscribers); supply it when known so the purchase is linked to the customer profile. The route supports wallet, AIRTIME, card, Ozow, Google Pay, and Apple Pay funding; paymentAccountUuid identifies the paying account only for AIRTIME, and recipientMsisdn identifies who receives the product. USSD and other machine integrations authenticate with an MVNO_ADMIN API key. App-user JWT callers must use POST /app-user/purchases/mvno.

Access: Auth methods: JWT bearer or API key. Allowed user types: MVNO. Requires permissions: purchase:admin. Allowed MVNO roles: SUPER_ADMIN, MVNO_ADMIN.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Product UUID

number

Override amount for flexible-price MVNO products. Ignored for fixed-price products.

string
required

MSISDN that will receive the MVNO product. Required for every MVNO purchase; no primary-account fallback is applied.

string
enum
required
string

Account UUID to debit when paymentMethod is AIRTIME. Required for AIRTIME and rejected for other payment methods. App-user purchases require this account to be verified and linked to the app profile; standard purchases accept any ACTIVE account because caller security is handled upstream.

string

Verified Ecentric card token. Required for ECENTRIC_CARD.

string
enum

Optional Ecentric payment scenario. CIT is customer-initiated with a CVV; MIT is merchant-initiated with no CVV. Omitted scenarios are treated as CIT and therefore require cvv. An unrecognised value is rejected — it never silently becomes MIT.

Allowed:
string

3-4 digit CVV/CSC. Required only for ECENTRIC_CARD scenario=CIT. Omitted for MIT.

paymentInput
object

Ephemeral digital-wallet payment payload. Required for GOOGLE_PAY and APPLE_PAY.

string

Customer's app_user UUID. Required for every payment method except AIRTIME because wallet and card payment instruments belong to an app user. AIRTIME purchases may omit it — accounts can trade (e.g. via USSD) before an app user exists — but should supply it when known so the purchase is linked to the customer profile. App-user self-service purchases infer this from the JWT.

Headers
string
required

Client-generated UUID v4. Reuse the same key only when retrying the exact same request.

Responses

201

Purchase initiated

400

Invalid input

Language
Credentials
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json