# Payments: Reload, Raastas & Bill Pay Pay a Dhiraagu or Ooredoo number from the Fahipay wallet. All four services use the same request; only the path differs. --- ## Endpoints | Service | Endpoint | Activity `subtype` | |---|---|---| | Ooredoo Raastas (prepaid top-up) | `POST https://fahipay.mv/actions/payment/ooredoo/recharge/` | `OORCH` | | Ooredoo Bill Pay | `POST https://fahipay.mv/actions/payment/ooredoo/billpay/` | `OOBPY` | | Dhiraagu Reload | `POST https://fahipay.mv/actions/payment/dhiraagu/recharge/` | `DHRCH` | | Dhiraagu Bill Pay | `POST https://fahipay.mv/actions/payment/dhiraagu/billpay/` | `DHBPY` | Which services a number supports comes from the carrier lookups: [Dhiraagu](../dhiraaguapi/01-number-lookup.md) and [Ooredoo](../ooredooapi/01-number-validation.md). --- ## Prerequisites - Valid `authID` from [login](01-login.md) or [OTP](02-otp.md) - Valid `__Secure-sess` session cookie There's no OTP or PIN step. The single POST moves the money. --- ## Request ### Headers | Header | Value | |---|---| | `authid` | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` | | `Content-Type` | `multipart/form-data; boundary=` | | `Cookie` | `__Secure-sess=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` | The official app also sends a set of `x-app-*` / `x-device-*` headers and a `FahiPay-App/2.0.2 (...)` user agent. Thijooree sends `okhttp/4.12.0` like its other data calls. ### Body (`multipart/form-data`) Thijooree builds it with lowercase `content-disposition` part headers, the way the app sends them (`FahipayForm.body`). | Field | Example | Notes | |---|---|---| | `number` | `9198026` | 7-digit phone number | | `amount` | `11` | MVR. Whole number for Raastas, Dhiraagu Reload and Dhiraagu Bill Pay. Ooredoo Bill Pay takes decimals (`10.1` seen) | | `lang` | `en` | | | `version` | `2.0.2` | App version | | `build` | `329` | App build | | `platform` | `app` | The official app sends `app`. Thijooree sends `thijooree` | | `device[...]` | | The standard [device fields](README.md#common-form-fields-device-info) | ### Amount limits These are enforced in Thijooree before sending (see [Transfer Flows](../thijooree/20-transfer-flows.md#amount-rules)): | Service | Min | Max | Decimals | |---|---|---|---| | Raastas | 11 | none | no | | Ooredoo Bill Pay | 10 | 50,000 | yes | | Dhiraagu Reload | 8 | 1,000 | no | | Dhiraagu Bill Pay | 10 | 5,000 | no | The full `amount` is taken from the wallet. Raastas then has 8% GST taken out by Ooredoo, so the number is credited less than `amount`. --- ## curl Example ```bash curl --request POST \ --url 'https://fahipay.mv/actions/payment/ooredoo/recharge/' \ --compressed \ --header 'authid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --header 'Cookie: __Secure-sess=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --form 'number=9198026' \ --form 'amount=11' \ --form 'lang=en' \ --form 'version=2.0.2' \ --form 'build=329' \ --form 'platform=thijooree' \ --form 'device[available]=true' \ --form 'device[platform]=Android' \ --form 'device[uuid]=a1b2c3d4e5f60718' \ --form 'device[model]={model}' \ --form 'device[manufacturer]={manufacturer}' \ --form 'device[isVirtual]=false' \ --form 'device[serial]=unknown' ``` --- ## Response `200 OK`, `application/json`. ### Success: reload / Raastas ```json {"title":"Success!","msg":"Transaction successful.","type":"success","tid":"FP202610021957143XKQ"} ``` ### Success: Ooredoo Bill Pay ```json {"title":"Success!","msg":"Transaction successful.","type":"success"} ``` ### Success: Dhiraagu Bill Pay ```json {"title":"Success!","msg":"Transaction will be processed shortly.","type":"success"} ``` | Field | Description | |---|---| | `type` | `success` when the payment went through | | `title` / `msg` | Human-readable outcome | | `tid` | Fahipay transaction ID. Only returned by the recharge endpoints. Bill pays have one too, but it's only visible in [history](05-history.md) | ### Failure Not captured yet. Thijooree treats any `type` other than `success` as a refusal and shows `msg` (or `title`). --- ## In history The payment shows up in [`actions/activity/`](05-history.md) straight away, with a negative `amount`: ```json { "date": "2026-10-02 19:57:14", "name": "Ooredoo Raastas", "details": "Mobile Recharge - 9198026", "icon": "https://fahipay.mv/images/app/icons/services/oorch.png", "transaction": "FP202610021957143XKQ", "type": "payment", "subtype": "OORCH", "number": "9198026", "amount": -11, "success": 1, "status": "Success" } ``` `name` / `details` per service: `Ooredoo Raastas` / `Mobile Recharge - `, `Ooredoo BillPay` / `BillPay - `, `Dhiraagu Reload` / `Mobile Recharge - `, `Dhiraagu BillPay` / `BillPay - `. ---   --- [← PayMV QR](08-paymv-qr.md)