2024-10-20 02:03:02 +05:00
2024-10-19 04:23:52 +05:00
2024-12-09 00:19:00 +05:00
2024-10-19 03:03:01 +05:00
2024-10-20 00:59:53 +05:00
2024-10-18 03:02:09 +05:00
2024-10-22 02:03:51 +05:00
2024-10-22 01:53:50 +05:00
2024-10-22 01:44:05 +05:00

Maldives Islamic Bank Payment Verification API

  • This api will allow you to match customers payment and your MIB account history, it will match with transaction time, account owner name and amount.
  • Issue with using account number name is that, MIB to MIB transaction sometimes have MIBs made-up name for the account owner name, This is challenging, so work around that, I added option to send customers account number to fetch the made-up name and match with it.
  • BML (Farava) transations works perfectly with just the name!
  • It uses cookie from webssion to fetch everything, it also has a keepalive service so websession does not expire after 5mins.

How to deploy/get started (with docker/podman)

  1. Login to MIB web https://faisanet.mib.com.mv/ and get the cookie: get_cookie_env.png
  2. copy .env.example to .env and fill QL_0 and IBSID with contents from step 1, Make sure to fill ACCOUNT_NUMBER with your account number.
  3. Create compose.yml with the follwing contents:
services:
  keepalive:
    env_file: .env
    image: git.shihaam.dev/shihaam/mib-payment-verify/keepalive
  api:
    env_file: .env
    image: git.shihaam.dev/shihaam/mib-payment-verify/api
    ports:
      - 5000:5000

  1. Run docker compose up -d and that is all.

Using the API with curl examples:

  1. With both benefName and accountNo:
curl -X POST http://localhost:5000/verify-payment \
     -H "Content-Type: application/json" \
     -d '{
           "benefName": "ABDLA.MAJUDHU AHMED",
           "accountNo": "90103101178641000",
           "absAmount": "100",
           "time": "2024-10-16 16:08"
         }'

In this request, it will first try to verify with benfName, if it fails, then it will try with accountNo.

  1. With only benefName:
curl -X POST http://localhost:5000/verify-payment \
     -H "Content-Type: application/json" \
     -d '{
           "benefName": "ABDLA.MAJUDHU AHMED",
           "absAmount": "100",
           "time": "2024-10-16 16:08"
         }'
  1. With only accountNo:
curl -X POST http://localhost:5000/verify-payment \
     -H "Content-Type: application/json" \
     -d '{
           "accountNo": "90103101178641000",
           "absAmount": "100",
           "time": "2024-10-16 16:08"
         }'

Exmaple Succcess responses:

  1. Both benefName and accountNo or only benefName provided
{
  "message": "Payment verified using beneficiary name",
  "success": true
}
  1. Both benefName and accountNo or only accountNo provided, but failed with benefName
{
  "message": "Payment verified using account number",
  "success": true
}

Example Failed response:

  1. If transaction is not found with the provided details.
{
  "message": "Transaction not found, contact support",
  "success": false
}
Description
API to verify MIB and BML (Favara) transactions to MIB account.
Readme 1.1 MiB
Languages
Python 81.7%
Shell 13.1%
Dockerfile 5.2%