forked from shihaam/thijooree
update docs
This commit is contained in:
@@ -0,0 +1,208 @@
|
||||
# Account Lookup & Transfer
|
||||
|
||||
Two-step process: look up the recipient to validate the account and get the holder name, then execute the transfer.
|
||||
|
||||
All endpoints are on the WebView subdomain. See [README](README.md) for cookie and AJAX header format.
|
||||
|
||||
```
|
||||
Referer: https://faisamobilex-wv.mib.com.mv/transfer/quick
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Step 1 — Account Lookup
|
||||
|
||||
The lookup endpoint depends on the format of the input:
|
||||
|
||||
| Input format | Endpoint | Body field |
|
||||
|---|---|---|
|
||||
| Starts with `7`, exactly 13 digits | `AjaxAlias/getIPSAccount` | `benefAccount` |
|
||||
| Starts with `9`, exactly 17 digits | `ajaxBeneficiary/getAccountName` | `accountNo` |
|
||||
| Starts with `7` or `9`, exactly 7 digits | `AjaxAlias/getAlias` | `aliasName` |
|
||||
| Starts with `A` followed by 6 digits | `AjaxAlias/getAlias` | `aliasName` |
|
||||
| Contains `@` (email) | `AjaxAlias/getAlias` | `aliasName` |
|
||||
|
||||
---
|
||||
|
||||
### 1a. IPS Account — BML / local bank (13 digits, starts with `7`)
|
||||
|
||||
```
|
||||
POST https://faisamobilex-wv.mib.com.mv/AjaxAlias/getIPSAccount
|
||||
```
|
||||
|
||||
Body: `benefAccount=7700000000000`
|
||||
|
||||
**Response**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"responseCode": "2",
|
||||
"accountName": "ACCOUNT HOLDER NAME",
|
||||
"bankBic": "MALBMVMV"
|
||||
}
|
||||
```
|
||||
|
||||
- `accountName` — account holder name
|
||||
- `bankBic` — bank BIC (e.g. `MALBMVMV` for BML)
|
||||
- Account number is the input itself — not returned in response
|
||||
|
||||
Use `bankNo=3` and `transferLocal` for the transfer.
|
||||
|
||||
---
|
||||
|
||||
### 1b. MIB Internal Account (17 digits, starts with `9`)
|
||||
|
||||
```
|
||||
POST https://faisamobilex-wv.mib.com.mv/ajaxBeneficiary/getAccountName
|
||||
```
|
||||
|
||||
Body: `accountNo=90100000000000000`
|
||||
|
||||
**Response**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"accountName": "ACCOUNT HOLDER NAME"
|
||||
}
|
||||
```
|
||||
|
||||
- `accountName` may be at root level or inside a `data` object — check both
|
||||
- Bank is always MIB (`MADVMVMV`)
|
||||
|
||||
Use `bankNo=2` and `transferInternal` for the transfer.
|
||||
|
||||
---
|
||||
|
||||
### 1c. Favara Alias — shortcodes, A-IDs, emails
|
||||
|
||||
```
|
||||
POST https://faisamobilex-wv.mib.com.mv/AjaxAlias/getAlias
|
||||
```
|
||||
|
||||
Body: `aliasName=<alias>`
|
||||
|
||||
**Response**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"responseCode": "2",
|
||||
"data": {
|
||||
"BfyNm": "Account Holder Name",
|
||||
"CdtrAcct": {
|
||||
"Acct": "90100000000000000",
|
||||
"FinInstnId": "MADVMVMV"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
- `BfyNm` — beneficiary name (trim whitespace)
|
||||
- `CdtrAcct.Acct` — resolved account number to use for the transfer
|
||||
- `CdtrAcct.FinInstnId` — bank BIC (`MADVMVMV` = MIB, `MALBMVMV` = BML)
|
||||
|
||||
Use `bankNo=2` (MIB) or `3` (BML/local) depending on `FinInstnId`, and the matching transfer endpoint.
|
||||
|
||||
---
|
||||
|
||||
### Lookup Errors
|
||||
|
||||
All three lookup endpoints return `success: false` with a human-readable `reasonText` on failure:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"reasonText": "Account not found"
|
||||
}
|
||||
```
|
||||
|
||||
Always show `reasonText` directly to the user.
|
||||
|
||||
---
|
||||
|
||||
## Step 2 — Execute Transfer
|
||||
|
||||
Two endpoints depending on the destination bank:
|
||||
|
||||
| `bankNo` | Endpoint | Destination |
|
||||
|---|---|---|
|
||||
| `2` | `ajaxTransfer/transferInternal` | MIB internal account |
|
||||
| `3` | `ajaxTransfer/transferLocal` | BML or other local bank |
|
||||
|
||||
```
|
||||
POST https://faisamobilex-wv.mib.com.mv/ajaxTransfer/transferInternal
|
||||
POST https://faisamobilex-wv.mib.com.mv/ajaxTransfer/transferLocal
|
||||
```
|
||||
|
||||
### Request Body (form-urlencoded)
|
||||
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `benefName` | Recipient name (from lookup) |
|
||||
| `benefNo` | `0` (not a saved contact) |
|
||||
| `fromAccountNo` | Source account number |
|
||||
| `benefAccountNo` | Destination account number |
|
||||
| `transferCy` | Currency numeric code (`"462"` = MVR, `"840"` = USD) |
|
||||
| `benefCurrencyCode` | Same as `transferCy` |
|
||||
| `amount` | Amount as string (e.g. `"100.00"`) |
|
||||
| `bankNo` | `2` = MIB internal, `3` = local/BML |
|
||||
| `purpose` | Transfer purpose; send `"-"` if blank |
|
||||
| `otp` | OTP from the user |
|
||||
| `otpType` | `"3"` (SMS/authenticator OTP) |
|
||||
|
||||
### Response — Success
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": [
|
||||
{
|
||||
"trxId": "TRX20260516001",
|
||||
"date": "2026-05-16 15:10:25"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| Field | Description |
|
||||
|---|---|
|
||||
| `trxId` | Transaction ID |
|
||||
| `date` | Completion timestamp |
|
||||
|
||||
### Response — Failure
|
||||
|
||||
```json
|
||||
{
|
||||
"success": false,
|
||||
"reasonText": "Insufficient balance"
|
||||
}
|
||||
```
|
||||
|
||||
`reasonText` contains the error reason. On HTTP `419`, the session has expired — re-login required.
|
||||
|
||||
---
|
||||
|
||||
## Transfer Type Summary
|
||||
|
||||
| Recipient | Lookup endpoint | `bankNo` | Transfer endpoint |
|
||||
|---|---|---|---|
|
||||
| MIB (17-digit `9…`) | `getAccountName` | `2` | `transferInternal` |
|
||||
| BML (13-digit `7…`) | `getIPSAccount` | `3` | `transferLocal` |
|
||||
| Favara alias → MIB | `getAlias` | `2` | `transferInternal` |
|
||||
| Favara alias → BML | `getAlias` | `3` | `transferLocal` |
|
||||
|
||||
---
|
||||
|
||||
## Currency Codes
|
||||
|
||||
| `transferCy` | Currency |
|
||||
|---|---|
|
||||
| `"462"` | MVR (Maldivian Rufiyaa) |
|
||||
| `"840"` | USD |
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
[← Personal Profile](07-profile.md) **Next →** [Contacts](09-contacts.md)
|
||||
Reference in New Issue
Block a user