Duplicate transactions when sync'ing with Basiq/importing .qif

Not sure if this is a bug with Manager.io or Basiq, a Basiq account configuration issue, a timing/timezone issue …or a bank issue.

Dates on bank account transactions received from Basiq are 1 day off (behind) compared to importing the same transaction from a bank export (qif) file. The result is duplicate transactions in Manager.io, presumably because the dates don’t match when importing the .qif file.

The dates shown in my online banking portal align with the qif file. I.e. suggesting it’s the Basiq feed that is out by a day.

Note I’m exporting from the bank/importing into Manager via qif at month-end because not all transactions are coming through via Basiq sync–possibly an unrelated issue? This is not a delay issue of a few days–the missing transactions never appear through Basiq (I’d have to confirm whether they are present in the https://basiq.manager.io/ feed but I’m pretty certain they are).

The bank account in question is a standard transaction/offset account from a large Australian bank, albeit not one of the big four.

I have tried removing the problem account from Basiq and re-adding.

I’ve experienced this issue across multiple recent versions of Manager.io and am currently running v25.3.21.2182 (desktop)

Here’s an example tx:

26/03/2025 Receipt $6095.62 → synchronised via Basiq
27/03/2025 Receipt $6095.62 → imported via .qif

Both payments and receipts are affected.

Obviously it would be nice if dates from Basiq and the bank export aligned, or at the very least, if I could use the Basiq sync alone and have all transactions come across reliably–and therefore one set of dates.

Curious to hear thoughts.

Hi @michhes_au,

I’m not sure how the duplication occured as I have never experienced such an issue.

Let’s take a duplicate pair of transactions and examine their History and see how they were created.

Please post screenshots for these transactions history screens

Here are the two transactions noted above with some related screenshots (excuse the redactions):

26/03/2025 Receipt $6095.62 → synchronised via Basiq

Create

Update (account coding… but shows the FdxTransactionId)

27/03/2025 Receipt $6095.62 → imported via .qif

Create (not sure what this shows–seemingly unrelated payments and receipts??)

Othe duplicates are similar.

That’s because they were both batch created along with other payments, possibly during bank import.

I see tbat you already mentioned the reason in your OP but it only clicked after reading your last post:

If you synchronize a bank account and later import the bank statements this will result in duplicates, especially if the same transaction is formatted differently in either source.

This begs the question, why do you use both Bank Feeds as well as bank import? Shouldn’t either one be enough?

I would prefer to rely soley on the Basiq feed but not all transactions are being synchronised throughout the month. Most are, some aren’t–so I’m still running a manual bank export/Manager.io import at the end of the month to pick up anything that gets missed.

In terms of the duplication, do you have any idea why the Basiq dates are off by one day? If that wasn’t an issue, I think the transactions wouldn’t duplicate as Manager would be able to match dollar amount and date as likely the same tx.

I noticed an Australian bank occasionally changes the dates of some transactions by one day. It causes a duplication of those transactions. You can keep a separate record of the imported bank account transactions and compare it to a later record to see if the bank has changed the date of the transaction then take it up with the bank.

@michhes_au, sorry for the late response but unfortunately, unlike @tony I’m not from Australia so I would take his word on this regard.

Personally in this case, I would rely on fields other than date to identify a transaction, usually it would be:

  • A reference field
  • Description field (only if it’s unique and no reference field exists)
  • A joined text combo of Description & Amount (Signed)

This way I can easily filter out whatever transactions already posted without having to rely on date.

I think I can shed some light on this.

Melbourne operates at UTC+10 (or +11 during daylight savings). Basiq collects bank transactions (NAB in my case) in UTC, but Manager.io doesn’t adjust these to the local timezone when importing.

This means a transaction that occurred at 9:00 AM on 2025/07/01 (Melbourne time) is imported with a date of 2025/06/30, because the UTC equivalent is 2025/06/30 11:00 PM — and Manager drops the time component.

As a result, any transaction before 10 AM local time will appear in Manager as being from the previous day.

I wanted to use the API to adjust dates automatically, but unfortunately, the time part isn’t available via the API, only the date. That makes it very difficult to automate corrections reliably.

Possible workaround:

Manually export transactions from the bank and use that as a reference to match against Manager transactions using:

  • UTC date (unadjusted)
  • Amount
  • Direction
  • Description (if consistent)

If the UTC date doesn’t match the expected local date, adjust it.
To prevent repeat adjustments, you could create a custom boolean field like TzAdjusted.

Just sharing this before I throw the baby out with the bathwater. :disappointed_face: