I have noticed that the TxnID (Primary Key) seems to be changing at least on the invoice table. We’ll create an invoice in SQL, add it to QB thru Opensync, and then later find that the TxnID has been changed for that invoice if we repopulate the data from QB.

Am I crazy, or is this really happening? Is there a way to prevent this?

Is this true for only Invoices or for any item? This seems like a huge issue to me. I’m developing a web app, and I need to sync Vendors between the web app and Quickbooks, if Quickbooks could just randomly change the ListID for the vendor, how can I reliably link the Vendor in our web app to the Vendor in Quickbooks so that when we push in new bills or checks, it is going to the correct Vendor? Another huge area of concern would be the Chart of Accounts, how can we ensure we have the accounts linked consistently if it could potentially change?

In another post it was suggested to use “UserData”, however, that doesn’t seem to be implemented consistently yet?

That might work for Vendor, but it wouldn’t work well for a bill or a check. For example, I ran into a problem last night where after my web app inserts a bill record, it then tries to match the bill based on vendor and amount, but there were two bills with the same vendoer and amount, so later, when it tried to push in the billpaymentcheck, it failed because it was trying to apply it to the wrong bill, which had already been paid.

I have been linking things together using the TxnID or the ListID, but if those could potentially change at some point in the future, this is going to cause cascading errors of this sort in the future.