# 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)