Files
basedbank/docs/dhiraaguapi/README.md
Shihaam Abdul Rahman bb2c4f0158
All checks were successful
Auto Tag on Version Change / check-version (push) Successful in 3s
add docs for ported numbers
2026-05-17 00:32:34 +05:00

3.3 KiB

Dhiraagu API Documentation

Reverse-engineered from traffic captures of the Dhiraagu Easy Pay web service (dhiraagu.com.mv).


Overview

Dhiraagu exposes a number-lookup API used by their Easy Pay web page to validate mobile numbers before payment. The API uses a two-step flow:

  1. Nonce extraction — fetch the Easy Pay HTML page and extract a one-time nonce token embedded in the page JavaScript.
  2. Number lookup — POST the mobile number with the nonce to the IO API endpoint, which returns the account type and owner name.

The nonce is single-use and page-session-specific; it must be re-fetched for each lookup.


Base URL

https://www.dhiraagu.com.mv

Authentication Model

Value How obtained How used
nonce Extracted from Easy Pay page HTML Sent as nonce request header on the lookup POST

No persistent session or login is required. The nonce is valid for a single lookup request.


Common Request Headers

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:150.0) Gecko/20100101 Firefox/150.0
Origin: https://dhiraagu.com.mv

The User-Agent header is required; requests without it are rejected by the server.


Number Lookup Flow

Client                                      Server
  |                                           |
  |  GET /services/easy-pay                   |  ← fetch page to get nonce
  |----------------------------------------->|
  |  200 OK (HTML page)                       |
  |  var nonce = "feb6acb9-a532-428e-..."     |
  |<-----------------------------------------|
  |                                           |
  |  POST /api/sdk-dhr-webapi.ashx            |
  |  ?website_id=CA2BB809...                  |
  |  &sub=dhiraaguIO&act=infoUnlisted         |
  |  nonce: feb6acb9-a532-428e-...            |
  |  { "number": "7654321" }                  |
  |----------------------------------------->|
  |  { respStatus: "OK",                      |
  |    serviceDetails: [{prepaidIndicator}],  |
  |    accountOwnerInfo: { name } }           |
  |<-----------------------------------------|

Result Interpretation

prepaidIndicator Meaning
"Y" Prepaid — use Dhiraagu Reload
"N" Postpaid — use Dhiraagu Bill Pay
absent / other Number not found or unsupported

Applicable Numbers

Dhiraagu numbers in the Maldives typically start with 7, but due to mobile number portability (MNP), a subscriber may have ported their number from Ooredoo (originally a 9xxx number) to Dhiraagu — or vice versa. The number prefix alone does not reliably identify the current provider.

For this reason, both providers should be tried when looking up an unknown number:

  • If the number starts with 7, try Dhiraagu first; fall back to Ooredoo if Dhiraagu returns a failed status.
  • If the number starts with 9, try Ooredoo first; fall back to Dhiraagu if Ooredoo returns no match.

The API only returns a valid result for numbers currently on the Dhiraagu network, regardless of what prefix they carry.


Documents

# File Description
1 Number Lookup Validate a Dhiraagu number and determine account type

 


Next → Number Lookup