Purchase a product
Buy airtime, data, electricity, TV, or education products from the catalogue.
/products/buyAuthentication
Send your live API key in the Authorization: Bearer header. All requests use https://api.celerlinks.com/api-service.
Request parameters
product_codestring · body · requiredUse the code from the current product catalogue.
recipient_numberstring · body · requiredPhone number, meter number, or smartcard number for the selected product.
scenariostring · body · optionalSandbox only: success (default), failure, or pending. Rejected on live routes.
amountnumber · body · optionalAmount in NGN for variable-value products such as airtime and electricity.
payment_methodstring · body · optionalwallet or online. Wallet purchases debit your Celerlinks balance.
pinstring · body · optionalYour four-digit transaction PIN, required for wallet payments when a PIN is set.
access_tokenstring · body · optionalRecipient-validation token, if returned by the provider.
Request identity
Use the X-Idempotency-Key header. Successful responses and validation errors are retained for 24 hours. Use a new key for a new purchase or corrected payload. A request still in progress returns 409.
Examples are illustrative. Catalogue IDs, product codes, prices, and provider-specific fields must come from your current API responses.
curl --request POST 'https://api.celerlinks.com/api-service/products/buy' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Accept: application/json' \
--header 'X-Idempotency-Key: YOUR_UNIQUE_REQUEST_ID' \
--header 'Content-Type: application/json' \
--data '{
"product_code": "PRODUCT_CODE",
"recipient_number": "RECIPIENT_NUMBER",
"amount": 1000,
"payment_method": "wallet",
"pin": "YOUR_PIN"
}'{
"success": true,
"message": "Request completed successfully",
"data": {
"id": 123,
"reference": "TRANSACTION_REFERENCE",
"status": "processing",
"amount": 1000
}
}