Trouble automating FAB Ratibi card balance check in a small C++ tool
Hi everyone, I know this is a bit outside the usual topics here but I thought I?d ask since it involves a small C++ utility I?ve been trying to build.
I?m trying to make a simple console app in C++ that can check and display the balance of my First Abu Dhabi Bank Ratibi card. Right now I usually check it manually through the bank channels, but I wanted to automate it a bit so I can just run a command and see the latest balance.
The issue is I cannot find any proper way to programmatically access the balance. I tried looking into how the bank?s online system works and even monitored the network calls, but everything seems protected or requires authentication steps that I cannot replicate properly in code.
I attempted using a basic HTTP request approach in C++ but it obviously fails because of session handling and security layers. I also thought about parsing SMS messages locally instead, but that feels unreliable and not really a clean solution.
I?m not trying to do anything complex, just a small personal tool, but I?m stuck on what the right approach would be here or if it?s even possible without official API access.
Has anyone dealt with something similar or can suggest a better direction for this kind of problem?
Re: Trouble automating FAB Ratibi card balance check in a small C++ tool
It's not that you couldn't do it in C++, but you need a lot of effort to get to MVP,
https://www.boost.org/library/latest/beast/ might be a place to start to
Wireshark with SSLKEYLOGFILE will allow you to see what's going on "on the wire" to give you a chance at replicating the communication.
TBH, I'd suggest you look at Python rather than C++ to do this.
For example, basic command line web scraping can be done with
https://pypi.org/project/requests/
https://beautiful-soup-4.readthedocs.io/en/latest/
If the website has lots of embedded Javascript that absolutely "must" run for it to work, then you can drive your browser using https://pypi.org/project/selenium/
If your bank has a "remember me on this browser" option, it will create a semi-permanent cookie you could then use in your script.
Re: Trouble automating FAB Ratibi card balance check in a small C++ tool
You?re basically hitting the bank?s security wall. Systems from First Abu Dhabi Bank aren?t designed to be queried directly by small scripts, so a simple C++ HTTP request usually fails because the login flow relies on dynamic session cookies, CSRF tokens, and JavaScript that runs in the browser. When you monitor the network traffic you?ll see requests, but reproducing them correctly from a console app is hard because those tokens change every session.
The practical workaround is usually to automate a real browser instead of trying to rebuild the requests yourself. Even though you?re writing a small C++ utility, many people end up using something like Selenium (often from Python) to open the login page, let the normal authentication happen, and then read the balance element from the rendered page. It?s much closer to how a real user interacts with the site, so it tends to break less often.
Otherwise, without an official API from the bank there isn?t really a clean programmatic way to fetch the balance. That?s why most users still rely on the normal portal or the standard Ratibi balance‑check methods. I was looking into this a while ago and came across a page that simply summarizes the usual ways people check it manually: here this on fab bank balance check working process? it basically reinforces that the bank channels are the reliable route unless they expose an API in the future.
So your tool idea isn?t wrong, it?s just that the banking side intentionally makes automation difficult unless you go through a full browser session.