Files
thijooree/docs/fahipayapi/05-history.md
T
shihaam 7864655a82
Auto Tag on Version Change / check-version (push) Successful in 2s
add support for fahipay login and view history
2026-05-16 21:31:34 +05:00

251 lines
6.3 KiB
Markdown

# Transaction History
Fetch the user's paginated wallet activity log. Each entry represents a single transaction: top-up, payment, transfer, or withdrawal.
---
## Endpoint
```
GET https://fahipay.mv/actions/activity/?s={start}&l={limit}&lang=en
```
---
## Prerequisites
- Valid `authID` from [login](01-login.md) or [OTP](02-otp.md)
- Valid `__Secure-sess` session cookie
---
## Request
### Headers
| Header | Value |
|---|---|
| `authid` | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |
| `content-type` | `multipart/form-data` |
| `User-Agent` | `okhttp/4.12.0` |
| `Accept-Encoding` | `gzip` |
| `Connection` | `Keep-Alive` |
| `Cookie` | `__Secure-sess=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |
### Query Parameters
| Parameter | Description | Example |
|---|---|---|
| `s` | Start offset (0-based) | `0`, `15`, `30` |
| `l` | Number of entries to return per page | `15` |
| `lang` | Language | `en` |
---
## Pagination
The API uses offset-based pagination via the `s` (start) and `l` (limit) parameters.
| Page | URL |
|---|---|
| First | `/actions/activity/?s=0&l=15&lang=en` |
| Second | `/actions/activity/?s=15&l=15&lang=en` |
| Third | `/actions/activity/?s=30&l=15&lang=en` |
| N-th | `/actions/activity/?s={(N-1)*15}&l=15&lang=en` |
The response includes a `total` count and a `next` URL. Stop fetching when:
- The returned `entries` array is empty, **or**
- `s + entries.length >= total`
---
## curl Examples
### Page 1
```bash
curl --request GET \
--url 'https://fahipay.mv/actions/activity/?s=0&l=15&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' \
--header 'content-type: multipart/form-data'
```
### Page 2
```bash
curl --request GET \
--url 'https://fahipay.mv/actions/activity/?s=15&l=15&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' \
--header 'content-type: multipart/form-data'
```
---
## Response
```json
{
"entries": [
{
"date": "2026-05-16 15:10:25",
"name": "Cash Deposit",
"details": "Transferred Via BML ebanking",
"icon": "https://fahipay.mv/images/app/bml.png",
"transaction": "FP20260101120000XXXX",
"type": "topup",
"amount": 0.01,
"success": 1,
"status": "Success"
},
{
"date": "2026-03-01 10:00:00",
"name": "Fitr Zakat Payment",
"details": "Payment for Fitr Zakat - 1447",
"icon": "https://fahipay.mv/images/app/zakat_service.png",
"transaction": "FP20260301100000XXXX",
"type": "payment",
"subtype": "FTZKT",
"data": {
"nid": "A123456",
"name": "Mohamed Ali",
"categories": [
{
"type": 7,
"count": 1,
"price": "10.00",
"name": "Normal Wheet"
}
],
"sadaqat": "0.00"
},
"amount": -10,
"success": 1,
"status": "Success"
},
{
"date": "2026-02-01 09:00:00",
"name": "Ooredoo Raastas",
"details": "Mobile Recharge - 9600000001",
"icon": "https://fahipay.mv/images/app/ooredoo.png",
"transaction": "FP20260201090000XXXX",
"type": "payment",
"subtype": "OORCH",
"amount": -100,
"success": 1,
"status": "Success"
}
],
"total": 42,
"next": "https://fahipay.mv/actions/activity/?s=15&l=15",
"type": "success"
}
```
---
## Response Fields
### Top-level
| Field | Type | Description |
|---|---|---|
| `entries` | `array` | List of transaction entries for this page |
| `total` | `number` | Total number of transactions across all pages |
| `next` | `string` | URL of the next page (`null` or absent on last page) |
| `type` | `string` | `"success"` |
---
### Entry Object
| Field | Type | Description |
|---|---|---|
| `date` | `string` | Transaction date/time — format: `YYYY-MM-DD HH:mm:ss` |
| `name` | `string` | Human-readable transaction name (e.g. `"Cash Deposit"`, `"Ooredoo Raastas"`) |
| `details` | `string` | Secondary description (e.g. `"Transferred Via BML ebanking"`, `"Mobile Recharge - 9198026"`) |
| `icon` | `string` | URL of the merchant/bank icon image |
| `transaction` | `string` | Unique transaction reference ID (e.g. `FP20260516151002ZXGD`) |
| `type` | `string` | Transaction category — see table below |
| `subtype` | `string` | Optional service-specific subtype code (e.g. `OORCH`, `DHBPY`) |
| `amount` | `number` | Transaction amount in MVR — **negative = debit, positive = credit** |
| `success` | `number` | `1` = successful, `0` = failed |
| `status` | `string` | Human-readable status string (e.g. `"Success"`, `"Failed"`) |
| `data` | `object` | Optional. Present on some payment types with extra metadata |
---
### Transaction Types (`type` field)
| Value | Description |
|---|---|
| `topup` | Money deposited into the wallet (credit, positive amount) |
| `payment` | Money paid out for a service (debit, negative amount) |
| `transfer` | Peer-to-peer transfer to/from another Fahipay user |
| `withdraw` | Money withdrawn from the wallet to a bank account |
---
### Known Subtypes (`subtype` field)
| Code | Service |
|---|---|
| `OORCH` | Ooredoo Raastas (mobile top-up) |
| `OOBPY` | Ooredoo BillPay |
| `DHRCH` | Dhiraagu Reload (mobile top-up) |
| `DHBPY` | Dhiraagu BillPay |
| `DHPKG` | Dhiraagu Package (data package) |
| `FTZKT` | Fitr Zakat Payment |
---
### Transaction ID Format
```
FP + YYYYMMDDHHMMSS + XXXX
```
Example: `FP20260101120000XXXX`
- `FP` — Fahipay prefix
- `20260101` — date (2026-01-01)
- `120000` — time (12:00:00)
- `XXXX` — 4-char random suffix
---
## Amount Sign Convention
| Sign | Meaning |
|---|---|
| Positive (`+`) | Credit — money received (top-up, incoming transfer) |
| Negative (`-`) | Debit — money spent (payment, withdrawal, outgoing transfer) |
---
## Date Format
All dates are in local Maldives time (UTC+5), formatted as:
```
YYYY-MM-DD HH:mm:ss
```
Example: `2026-05-16 15:10:25`
---
 
---
[← Balance](04-balance.md)     **Next →** [Profile Picture](06-profile-picture.md)