General discussion of OpenCATS

Moderators: RussH, cptr13

Forum rules: Just remember to play nicely once you walk through the door. You can disagree with us, or any other commenters in this forum, but keep comments directed to the topic at hand.
#8326
Hi everyone,

We are using OpenCATS to manage contract recruiters and temporary staff placements. One of the challenges we are facing right now is around tracking contractor payments against actual bank receipts. Our company account is with National Bank of Abu Dhabi in the UAE, and most of our clients pay us via bank transfer.

At the moment, our finance team checks the NBAD online banking portal every morning to confirm which invoices have been paid. Then we manually update a custom field in OpenCATS to mark the placement or contractor record as paid. This process is time consuming and sometimes payments are missed for a day or two because the balance inquiry screen does not clearly separate pending and cleared funds.

What we would like to do is automatically pull either the daily balance or the transaction list from NBAD and sync that information with OpenCATS, so we can trigger a status change when a specific invoice reference appears in the bank transactions. I understand OpenCATS does not have built in banking integrations, so I am looking for advice on the best technical approach.

Has anyone here connected OpenCATS to a bank API or used a middleware script to read transaction data and update records in the database? I am comfortable working with PHP and MySQL but I want to avoid modifying core files if possible. Any guidance on a clean integration method would be greatly appreciated.
#8346
There is a PR (awaiting some revisions) to expose OpenCATS API's - but really sounds like you just need to pull data from your Banking API into a file - json or similar and then schedule a db update based on that file. If this is very custom for you, you could 'easily' set that up.
#8348
What you’re trying to do is definitely possible, but it helps to separate the problem into two parts. First is getting the bank data out reliably, and second is feeding it into OpenCATS without touching core files.

Since OpenCATS doesn’t have native banking integrations, the cleanest approach is exactly what RussH hinted at. Build a small middleware layer that pulls data from the NBAD side, then writes it into a structured format like JSON or directly into a staging table in your MySQL database. You can run this as a scheduled script using cron. From there, a separate script can match transaction references against your contractor or placement records and update the custom field accordingly. This way you keep everything modular and avoid breaking upgrades.

One thing to watch out for is how NBAD presents balances versus transactions. The balance view alone can be misleading because it may include pending amounts or delay updates, which sounds like what your team is already facing. It’s much more reliable to work with the transaction list and match against invoice references instead of depending on daily balance snapshots.

A practical way some teams handle this is by first understanding how the bank structures and updates its data across different views, then mirroring that logic in their scripts. Looking at how values appear in a simple nbad balance inquiry can give you a clearer idea of how balances and transactions differ, which helps when designing your matching logic.

If you stick with a middleware plus scheduled sync approach and rely on transaction-level matching, you should be able to automate the payment tracking without modifying OpenCATS core files and keep it stable long term.

What you’re trying to do is definitely possi[…]

Available on Mac?

so yes it'll run - so long as you can run a webser[…]

Creating Customized Modules

Hi, not quite sure where this has gone in the […]

The steps given below will walk you through the ea[…]