Files
basedbank/docs/mibapi/accountlookup.md

3.6 KiB

MIB Account Lookup Routing

Before initiating a transfer, the recipient input must be resolved to a verified account name and account number. Three different endpoints are used depending on the format of the input.

Input Format Routing

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
Email address (contains @) AjaxAlias/getAlias aliasName

All endpoints share the same WebView session auth (see contacts.md for cookie format) and use Referer: https://faisamobilex-wv.mib.com.mv/transfer/quick.


Endpoint Details

1. IPS Account Lookup — Local / BML accounts (13 digits, starts with 7)

POST https://faisamobilex-wv.mib.com.mv/AjaxAlias/getIPSAccount

Body: benefAccount=7700000000000 (13 digits)

Success response:

{
  "success": true,
  "responseCode": "2",
  "reasonCode": "201",
  "reasonText": "Request Successful. Account Found",
  "accountName": "ACCOUNT HOLDER NAME",
  "bankBic": "MALBMVMV"
}

Fields used:

  • accountName — account holder name
  • bankBic — bank SWIFT/BIC code

The account number is already known from the input; it is not returned in the response.


2. MIB Internal Account Name Lookup — MIB accounts (17 digits, starts with 9)

POST https://faisamobilex-wv.mib.com.mv/ajaxBeneficiary/getAccountName

Body: accountNo=90100000000000000 (17 digits)

Success response (exact structure to be confirmed):

{
  "success": true,
  "responseCode": "1",
  "reasonText": "Account found",
  "accountName": "ACCOUNT HOLDER NAME"
}

Fields used:

  • accountName — account holder name (check at root level or inside data object)

The account number is already known from the input; bank is always MIB (MADVMVMV).


3. Favara Alias Lookup — Shortcodes, A-IDs, emails

POST https://faisamobilex-wv.mib.com.mv/AjaxAlias/getAlias

Body: aliasName=<alias>

Accepted alias formats:

  • 7 or 9 followed by 6 digits → e.g. 7012345, 9198026
  • A followed by 6 digits → e.g. A123456
  • Email address → e.g. user@example.com

Success response:

{
  "success": true,
  "responseCode": "2",
  "reasonCode": "203",
  "reasonText": " Favara ID found",
  "data": {
    "TxId": "BANK00001",
    "CdtrAcct": {
      "Acct": "90100000000000000",
      "FinInstnId": "MADVMVMV"
    },
    "BfyNm": "Account Holder Name",
    "RegDtTm": "2023-01-01T00:00:00"
  }
}

Fields used from data:

  • BfyNm — beneficiary name (trim whitespace)
  • CdtrAcct.Acct — resolved account number to use for the transfer
  • CdtrAcct.FinInstnId — bank institution ID

Error Handling

All three endpoints return "success": false on failure with a human-readable reasonText:

{
  "success": false,
  "responseCode": "0",
  "reasonText": "Account not found"
}
  • Always show reasonText directly to the user as the error message.
  • For non-200 HTTP responses, also attempt to parse reasonText from the body before falling back to a generic error.
  • If the input does not match any known format, reject it client-side before making any request.