2.9 KiB
2.9 KiB
Saved Favourites (Contacts)
Fetch the authenticated user's saved favourites for Fahipay payment services. Each service group is fetched individually by page name.
Endpoint
GET https://fahipay.mv/api/app/favs/?page={serviceName}&lang=en
Prerequisites
Request
Headers
| Header | Value |
|---|---|
authid |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
User-Agent |
okhttp/4.12.0 |
Accept-Encoding |
gzip |
Connection |
Keep-Alive |
Cookie |
__Secure-sess=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
Query Parameters
| Parameter | Description |
|---|---|
page |
Service group name — see table below |
lang |
Language — always en |
Service Groups
Call this endpoint once per service group:
page value |
Service | Description |
|---|---|---|
ooredooraastas |
Ooredoo Raastas | Ooredoo mobile top-up |
dhiraagureload |
Dhiraagu Reload | Dhiraagu mobile top-up |
ooredoobillpay |
Ooredoo Bill | Ooredoo bill payment |
dhiraagubillpay |
Dhiraagu Bill | Dhiraagu bill payment |
curl Example
curl --request GET \
--url 'https://fahipay.mv/api/app/favs/?page=ooredooraastas&lang=en' \
--compressed \
--header 'Accept-Encoding: gzip' \
--header 'Connection: Keep-Alive' \
--header 'Cookie: __Secure-sess=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'User-Agent: okhttp/4.12.0' \
--header 'authid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Response
With Entries
The top-level response is a JSON object. The key matching the page query parameter contains an object of saved entries, keyed by an arbitrary server-assigned string.
{
"ooredooraastas": {
"1": {
"number": "9600000001",
"name": "Ali"
},
"2": {
"number": "7600000002",
"name": "Mohamed"
}
}
}
Empty Group
When the user has no saved favourites for a service, the value for the page key is an empty array (not an object):
{
"ooredooraastas": []
}
Parse with
optJSONObject(page)— this returnsnullfor the empty-array case, so empty groups are safely skipped.
Entry Object
| Field | Type | Description |
|---|---|---|
number |
string |
The saved phone number or account number |
name |
string |
User-assigned display name for this favourite |
Only entries where number is a valid 7-digit Maldivian mobile number (starting with 7 or 9) are used as transfer contacts.
Usage
Fetch all four service groups in sequence. For each group:
- Call
GET /api/app/favs/?page={serviceName}&lang=en - Check that
response[serviceName]is a JSON object (not an array) - Iterate keys; for each entry, validate
numberas a phone number - Build a contact entry with the service group as the bank/category label