From bb2c4f01586cbcc0ac1f968f95af761170a10ebe Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Sun, 17 May 2026 00:32:34 +0500 Subject: [PATCH] add docs for ported numbers --- docs/dhiraaguapi/01-number-lookup.md | 11 ++++++++++- docs/dhiraaguapi/README.md | 8 +++++++- docs/ooredooapi/01-number-validation.md | 9 +++++++++ docs/ooredooapi/README.md | 8 +++++++- 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/docs/dhiraaguapi/01-number-lookup.md b/docs/dhiraaguapi/01-number-lookup.md index e14021d..fddfc78 100644 --- a/docs/dhiraaguapi/01-number-lookup.md +++ b/docs/dhiraaguapi/01-number-lookup.md @@ -161,7 +161,16 @@ If the nonce is missing, invalid, or has already been used, the server returns a |---|---| | `"Y"` | Dhiraagu Reload | | `"N"` | Dhiraagu Bill Pay | -| absent / other | Unsupported — fall back to Ooredoo lookup | +| absent / `respStatus != "OK"` | Unsupported — fall back to Ooredoo lookup | + +## Number Portability + +Due to **mobile number portability (MNP)** in the Maldives, a subscriber can port their number between Dhiraagu and Ooredoo while keeping the same number. This means: + +- A number starting with **9** (typically Ooredoo) may now be on the Dhiraagu network. +- A number starting with **7** (typically Dhiraagu) may now be on the Ooredoo network. + +Always fall back to the other provider's lookup if this API returns a failed/unsupported result, regardless of the number prefix. --- diff --git a/docs/dhiraaguapi/README.md b/docs/dhiraaguapi/README.md index f85e1d8..4564526 100644 --- a/docs/dhiraaguapi/README.md +++ b/docs/dhiraaguapi/README.md @@ -81,7 +81,13 @@ Client Server ## Applicable Numbers -Only Dhiraagu mobile numbers are returned by this API. Dhiraagu numbers in the Maldives start with **7** (7-digit local format, e.g. `7654321`). +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. --- diff --git a/docs/ooredooapi/01-number-validation.md b/docs/ooredooapi/01-number-validation.md index ca16785..c760083 100644 --- a/docs/ooredooapi/01-number-validation.md +++ b/docs/ooredooapi/01-number-validation.md @@ -104,6 +104,15 @@ Treat `custType: null` as unsupported — fall back to Dhiraagu lookup. | `"HYBRID"` | Raastas + Ooredoo Bill Pay (show chip selector) | | `null` / absent | Unsupported — fall back to Dhiraagu lookup | +## Number Portability + +Due to **mobile number portability (MNP)** in the Maldives, a subscriber can port their number between Ooredoo and Dhiraagu while keeping the same number. This means: + +- A number starting with **7** (typically Dhiraagu) may now be on the Ooredoo network. +- A number starting with **9** (typically Ooredoo) may now be on the Dhiraagu network. + +Always fall back to the other provider's lookup if this API returns `custType: null`, regardless of the number prefix. + ---   diff --git a/docs/ooredooapi/README.md b/docs/ooredooapi/README.md index 344c6be..c5be9a4 100644 --- a/docs/ooredooapi/README.md +++ b/docs/ooredooapi/README.md @@ -66,7 +66,13 @@ Client Server ## Applicable Numbers -Only Ooredoo mobile numbers are returned by this API. Ooredoo numbers in the Maldives start with **9** (7-digit local format, e.g. `9654321`). The API expects the full MSISDN including country code `960`. +Ooredoo numbers in the Maldives typically start with **9**, but due to **mobile number portability (MNP)**, a subscriber may have ported their number from Dhiraagu (originally a 7xxx number) to Ooredoo — 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 **9**, try Ooredoo first; fall back to Dhiraagu if Ooredoo returns `custType: null`. +- If the number starts with **7**, try Dhiraagu first; fall back to Ooredoo if Dhiraagu returns a failed status. + +The API expects the full MSISDN including country code `960` (e.g. `9609654321`). It only returns a valid `custType` for numbers currently on the Ooredoo network, regardless of what prefix they carry. ---