Rechargely API
Integrate airtime, data bundles, electricity, and bill payments into your application. Explore our REST API with interactive examples.
https://rechargely.online/api/wallet/v1Authentication
All endpoints (except /public/* and /authenticate) require a Bearer token. Include Authorization: Bearer <token> and X-Channel-Id: WEB headers. Tokens expire after 1 hour.
Payment Integration Flow
Terminal statuses: COMPLETED, FAILED, CANCELLED
Authentication
/authenticate/customersAuthenticate Customer
Authenticate a customer and receive an access token. Tokens expire after 1 hour.
Request Body
usernamestringrequiredThe customer's registered email address
passwordstringrequiredThe customer's account password
fcmTokenstringrequiredFirebase Cloud Messaging token for push notifications
Response Fields
accessTokenstringBearer token to use for all authenticated API requests. Expires after 1 hour.
curl -X POST 'https://rechargely.online/api/wallet/v1/authenticate/customers' \
-H 'Content-Type: application/json' \
-H 'Accept: */*' \
-H 'Content-Type: application/json' \
-d '{
"username": "user@example.com",
"password": "yourPassword",
"fcmToken": "firebase_token_here"
}'Example Response
{
"accessToken": "eyJhbGciOiJIUzI1NiIs..."
}Products
/products/categories Auth RequiredList Categories
Returns all available product categories.
Response Fields
idstringUnique identifier for the category
categorystringCategory name (e.g. "Airtime", "Electricity")
descriptionstringHuman-readable description of the category
logostringURL to the category logo/icon image
curl -X GET 'https://rechargely.online/api/wallet/v1/products/categories' \
-H 'Authorization: Bearer <access_token>' \
-H 'X-Channel-Id: WEB'Example Response
[
{
"id": "cat_001",
"category": "Airtime",
"description": "Mobile airtime top-ups",
"logo": "https://example.com/logos/airtime.png"
}
]/products/products-list-category/{categoryId} Auth RequiredList Products by Category
Returns all products belonging to a specific category.
Path Parameters
categoryIdstringrequiredThe unique identifier of a category returned from GET /products/categories
Response Fields
idstringUnique identifier for the product
namestringInternal product name
descriptionstringHuman-readable product description
refNamestringReference name used for lookups
billFormatstringExpected format for the bill reference
categorystringCategory this product belongs to
statusstringProduct availability status (ACTIVE, INACTIVE)
billerNamestringName of the biller or service provider
currencystringCurrency code (e.g. "USD", "ZWG")
productPricenumberFixed price of the product (0 if variable pricing)
productNamestringDisplay name shown to end users
providerCodestringInternal code identifying the upstream provider
pricingTypestringPricing model — "FIXED" or "VARIABLE"
productLogoUrlstringURL to the product logo image
minAmountnumberMinimum transaction amount allowed
maxAmountnumberMaximum transaction amount allowed
curl -X GET 'https://rechargely.online/api/wallet/v1/products/products-list-category/{categoryId}' \
-H 'Authorization: Bearer <access_token>' \
-H 'X-Channel-Id: WEB'Example Response
[
{
"id": "prod_001",
"name": "econet_airtime",
"description": "Econet Airtime",
"refName": "econet",
"billFormat": "07XXXXXXXX",
"category": "Airtime",
"status": "ACTIVE",
"billerName": "Econet Wireless",
"currency": "USD",
"productPrice": 0,
"productName": "Econet Airtime",
"providerCode": "ECONET",
"pricingType": "VARIABLE",
"productLogoUrl": "https://example.com/logos/econet.png",
"minAmount": 0.5,
"maxAmount": 500
}
]/products/providers/{name} Auth RequiredList Providers
Returns available service providers for a given product reference name.
Path Parameters
namestringrequiredThe product reference name (e.g. refName from a product)
Response Fields
providerNamestringDisplay name of the provider
curl -X GET 'https://rechargely.online/api/wallet/v1/products/providers/{name}' \
-H 'Authorization: Bearer <access_token>' \
-H 'X-Channel-Id: WEB'Example Response
[
{
"providerName": "Econet Wireless"
},
{
"providerName": "NetOne"
}
]Search
/public/products/searchSearch Products
Search for products by keyword. No authentication required.
Query Parameters
querystringrequiredSearch keyword to match against product names and descriptions
curl -X GET 'https://rechargely.online/api/wallet/v1/public/products/search?query=airtime'Example Response
[
{
"id": "prod_001",
"name": "econet_airtime",
"description": "Econet Airtime",
"refName": "econet",
"billFormat": "07XXXXXXXX",
"category": "Airtime",
"status": "ACTIVE",
"billerName": "Econet Wireless",
"currency": "USD",
"productPrice": 0,
"productName": "Econet Airtime",
"providerCode": "ECONET",
"pricingType": "VARIABLE",
"productLogoUrl": "https://example.com/logos/econet.png",
"minAmount": 0.5,
"maxAmount": 500
}
]Transactions
/v1/transactions/bill-payment/pre-auth Auth RequiredInitiate Payment (Pre-Auth)
Initiate a new bill payment transaction by creating a pre-authorization request.
Request Body
amountnumberrequiredPayment amount in the product's currency
productIdnumberrequiredThe id of the product being purchased
requestIdstringrequiredClient-generated unique identifier for idempotency
billReferencestringrequiredThe account/reference number being paid (e.g. phone number, meter number)
customerMobilestringrequiredCustomer's mobile number
additionalDataobjectrequiredAdditional key-value pairs for the transaction
Response Fields
responseCodestringResponse status code from the payment gateway
responseMessagestringHuman-readable response message
preAuthTokenstringToken required to authorize the payment in the next step
requestIdstringEchoed back request identifier
statusstringnullableTransaction status: PENDING, PROCESSING, COMPLETED, FAILED, CANCELLED
curl -X POST 'https://rechargely.online/api/wallet/v1/transactions/bill-payment/pre-auth' \
-H 'Authorization: Bearer <access_token>' \
-H 'X-Channel-Id: WEB' \
-H 'Content-Type: application/json' \
-d '{
"amount": 0,
"productId": 0,
"requestId": "string",
"billReference": "string",
"customerMobile": "string",
"additionalData": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}'Example Response
{
"responseCode": "200",
"responseMessage": "Payment initiated successfully",
"preAuthToken": "preauth_abc123",
"requestId": "string",
"status": "PENDING"
}Error Handling
API errors return standard HTTP status codes with a JSON body:
{
"message": "Human-readable error description"
}Rechargely API v1 · Need help? Contact support