Integrate wallet-funded airtime, data, cable TV, and electricity services into external apps using one vendor API key and predictable JSON responses.
Vendor API
Available Balance
N 514,300.00
DataAirtimeBills
POST /vendor/data/purchase
status: successful
reference: DATA_LX9K
Production Base URL
https://api.billxpress.co
Vendor Prefix
/api/v1/vendor
Authentication
Authorization: YOUR_VENDOR_API_KEY
Overview
The Vendor API is designed for approved BillXpress vendors who want to resell services from their own website, mobile app, agent system, or backend.
Vendor requests are authenticated with a vendor API key. The API uses the vendor wallet balance, applies vendor pricing, records transactions, and returns references that vendors can store in their own system.
This page documents the public vendor-facing API contract. These routes live under /api/v1/vendor and do not require customer JWT tokens or transaction PINs.
AirtimeDataCable TVElectricityWalletTransactions
Quickstart
1
Get approved
Create a BillXpress account and request vendor approval from an admin.
2
Receive API key
After approval, the admin dashboard returns a unique vendor API key.
3
Fund wallet
Keep enough balance in the vendor wallet before placing orders.
4
Start requests
Send your API key in the Authorization header and store every reference.
Minimal Request
curl -X GET "https://api.billxpress.co/api/v1/vendor/me" \
-H "Authorization: YOUR_VENDOR_API_KEY"
Authentication
Send the vendor API key directly in the Authorization header. Do not prefix vendor keys with Bearer.
Checks an electricity purchase by BillXpress transaction reference, provider reference, or vendor customerReference.
References And Idempotency
Vendors should send a unique customerReference for every purchase. BillXpress should store it in transaction metadata and prevent duplicate charges for repeated requests with the same reference.
Reference
Generated By
Purpose
reference
BillXpress
Official transaction reference for wallet debit and support.
customerReference
Vendor
Vendor's own order ID for reconciliation and duplicate protection.
providerReference
Provider
External provider ID returned when the upstream provider supplies one.
Rate Limits
Vendor API traffic is rate limited to protect service reliability. The current limit is 120 requests per minute per endpoint/IP.
Rate Limit Response
{
"success": false,
"message": "Too many vendor API requests, please try again shortly",
"code": "RATE_LIMITED",
"retryAfterSeconds": 30
}
Error Codes
HTTP
Code
Meaning
401
INVALID_API_KEY
The vendor API key is missing, invalid, inactive, or belongs to a non-vendor account.
400
VALIDATION_ERROR
A required field is missing or invalid.
400
INSUFFICIENT_BALANCE
The vendor wallet balance is too low for the requested purchase.
409
DUPLICATE_REFERENCE
The customerReference has already been used for this vendor.
503
SERVICE_UNAVAILABLE
The selected service or provider is temporarily unavailable.
429
RATE_LIMITED
The vendor made too many requests in a short period. Wait for retryAfterSeconds.
Security Guidelines
Treat every vendor API key like a password. A leaked key can spend the vendor's wallet balance.
Do
Do Not
Store the API key in backend environment variables.
Do not put the API key inside frontend JavaScript.
Use HTTPS for all requests.
Do not send API requests over plain HTTP in production.
Send a unique customerReference for every purchase.
Do not retry purchase requests without idempotency protection.
Log BillXpress references for support and reconciliation.
Do not expose provider raw responses to end customers.