Utility Payments PHP Quickstart

Raphael Ugwu

Raphael Ugwu

2 min

This quick start will guide you through integrating Reloadly’s Utility Payments API using a PHP application. Prerequisites needed for this guide are:

  • The reader should have a decent understanding of PHP
  • A Reloadly account. If you don’t already have one, follow the registration procedure.
  • Next, you need to have funds in your test wallet. When you sign up, a certain amount of funds are automatically added to your test wallet. You can fund your live wallet by following the steps in the Wallet section.
  • Sign in to retrieve your client_id and client_secret keys for test mode. You can get both keys by toggling from live to test mode on the sidebar and navigating to Developers > API settings

Get an access token

Reloadly issues access tokens (also called bearer tokens) that are used to authorize API requests. Using the right parameters, make a request to Reloadly’s authorization URL to obtain the appropriate access token.

You can get a test access token by making a request in your PHP application like this

/**
 * Requires libcurl
 */

$curl = curl_init();

$payload = array(
  "client_id" => "qwcLzXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "client_secret" => "7kscVxQZ32-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "grant_type" => "client_credentials",
  "audience" => "https://utilities-sandbox.reloadly.com"
);

curl_setopt_array($curl, [
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode($payload),
  CURLOPT_URL => "https://auth.reloadly.com/oauth/token",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
]);

$response = curl_exec($curl);
$error = curl_error($curl);

curl_close($curl);

if ($error) {
  echo "cURL Error #:" . $error;
} else {
  echo $response;
}

While production access tokens are valid for 60 days, test access tokens are only valid for 24 hours.

If your request is successful, you should get the following response.

{
    "access_token": "eyJraWQiOiI1N2JjZjNhNy01YmYwLTQ1M2QtODQ0Mi03ODhlMTA4OWI3MDIiLCJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI2NzkzIiwiaXNzIjoiaHR0cHM6Ly9yZWxvYWRseS1zYW5kYm94LmF1dGgwLmNvbS8iLCJodHRwczovL3JlbG9hZGx5LmNvbS9zYW5kYm94Ijp0cnVlLCJodHRwczovL3JlbG9hZGx5LmNvbS9wcmVwYWlkVXNlcklkIjoiNjc5MyIsImd0eSI6ImNsaWVudC1jcmVkZW50aWFscyIsImF1ZCI6Imh0dHBzOi8vdG9wdXBzLWhzMjU2LXNhbmRib3gucmVsb2FkbHkuY29tIiwibmJmIjoxNjU0MDgzNjY3LCJhenAiOiI2NzkzIiwic2NvcGUiOiJzZW5kLXRvcHVwcyByZWFkLW9wZXJhdG9ycyByZWFkLXByb21vdGlvbnMgcmVhZC10b3B1cHMtaGlzdG9yeSByZWFkLXByZXBhaWQtYmFsYW5jZSByZWFkLXByZXBhaWQtY29tbWlzc2lvbnMiLCJleHAiOjE2NTQxNzAwNjcsImh0dHBzOi8vcmVsb2FkbHkuY29tL2p0aSI6IjYwMTY4ODNiLWYxYTgtNGJhMy1hNmM3LWIwNjBkNDRmN2EyMCIsImlhdCI6MTY1NDA4MzY2NywianRpIjoiZGUwNzRlM2QtM2JkYi00N2ExLTkzNDktZTk1YmZiNjZlNGVmIn0.ZXUzCYbCCTzpDMr5hP7YvgWYqniy9kBY0Y5vWS8wRrA",
    "scope": "developer",
    "expires_in": 86400,
    "token_type": "Bearer"
}

Pay a utility bill

Now that you have an access token, you can pay a utility bill with the Utility Payments API. You can find details of the bill you want to pay by Getting all billers available on Reloadly’s platform.

In the example below, we will show how making a bill payment works in a PHP application by paying for an electricity bill for a Nigerian electricity payment provider.

/**
 * Requires libcurl
 */
 
$curl = curl_init();
 
$payload = array(
  "subscriberAccountNumber" => "4223568280",
  "amount" => 1000,
  "billerId" => "1",
  "useLocalAmount" => false,
  "referenceId" => "april-electricity-bill"
);
 
curl_setopt_array($curl, [
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <YOUR_TOKEN_HERE>",
    "Content-Type: application/json"
  ],
  CURLOPT_POSTFIELDS => json_encode($payload),
  CURLOPT_URL => "https://utilities.reloadly.com/pay",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
]);
 
$response = curl_exec($curl);
$error = curl_error($curl);
 
curl_close($curl);
 
if ($error) {
  echo "cURL Error #:" . $error;
} else {
  echo $response;
}

If your request is successful, you should receive a response from Reloadly

{
    "id": 69,
    "status": "PROCESSING",
    "referenceId": null,
    "code": "PAYMENT_PROCESSING_IN_PROGRESS",
    "message": "The payment is being processed, status will be updated when biller processes the payment.",
    "submittedAt": "2022-06-10 16:46:32",
    "finalStatusAvailabilityAt": "2022-06-11 16:46:31"
}

If you made it to this point, you have successfully made your first utility payment in a PHP application.

This might also interest you:

3 min
Micro-rewarding is transforming how businesses, educators, and organizations engage with their audiences. By offering small, frequent incentives, this innovative approach enhances loyalty, drives behavior change, and keeps people motivated. Learn how micro-rewarding can create big impacts with minimal costs.

Content by developers to developers.

Subscribe to The Monthly Reload for Developers and start receiving all the developers’ updates.

The Monthly Reload: the newsletter for you

Subscribe to our Newsletter and don’t miss any news about our industry and products.

It’s time to build, make your first API call today