When attempting to process a transaction, the following error is presented after pressing the Process Sale button:
Clicking the Retry Posting to QuickBooks may or may not resolve the issue, and/or clicking Ignore and Continue will give a detailed explanation of the error and steps to resolve it.
When the Payment Terminal is writing information in to QuickBooks, it uses an Intuit-provided library called QBFC (QuickBooks File Connector). This allows the integration to write information in to your QuickBooks company file, without needing to use the QuickBooks interface to do so. However, QBFC must yield control to the QuickBooks interface if they try to read/write to the same object in QuickBooks at once.
While this usually does not cause a problem, there are a few specific instances which can cause the QuickBooks interface to lock an object in the company file. Mainly, this includes leaving a Customer/Invoice/Sales Receipt/Statement Charge window open in QuickBooks after modifying the object, improperly set permissions for the current QuickBooks user, or a deleted object in QuickBooks.
There are a variety of different causes to this issue.
Solution 1: Close Currently Open Windows
1) Close all currently-open windows within QuickBooks.
Using the Window menu at the top of QuickBooks, switch to any window for a Customer/Invoice/Sales Receipt/Statement Charge, and click either Save & Close or the close button for that window at the top-right.
Note: Be sure not to close the QuickBooks interface entirely - doing so will cause the Payment Terminal to stop functioning.
Note: If using QuickBooks in a multi-user environment, make sure another user hasn't opened the invoice in question. If they have, follow the steps above.
2) Retry posting the transaction to QuickBooks.
Click the Retry Posting to QuickBooks button. The transaction should be posted back to QuickBooks as a Payment.
Solution 2: Add Receive Payments Permissions to QuickBooks user
1) Sign in to the QuickBooks company file as admin.
Under the File menu, select Close Company/Logoff. Then, reopen your QuickBooks company file, and sign in using the admin user (and applicable password).
Note: It's always best to use the username
admin, as this will correct itself to the admin username if the user was renamed. Additionally, be sure to use the current password for your QuickBooks admin user - depending on your version of QuickBooks, this password may change every 90 days.
2) Open the Users & Roles view.
Under the Company menu, select Users, then Set Up Users and Roles.... You should be presented with a Users and Roles dialog.
3) Find the user/role in question.
If using a specific role for permissions for this user, select that role under the Role List tab. Otherwise, select the user under the User List tab.
4) Grant full Receive Payments permissions.
A list of permissions will be presented for that user/role. Under the Customers and Receivables section, select the Receive Payments permission, and click the Full option on the right-hand side. Then, click OK.
5) Try posting from the Payment Terminal again.
Close out of any permissions dialogs, and switch back to the user in question (using the same Close Company/Logoff option mentioned above).
When signed in as the user in question, try posting to QuickBooks again (either with a test transaction, or with another transaction waiting to be processed).
Solution 3: Verify the object exists in QuickBooks
This issue can occur if a object in QuickBooks (including an Invoice, Customer, Sales Receipt, Statement Charge, or other QuickBooks object) was deleted mid-transaction, which was related to this transaction. If these objects are ever deleted, we cannot add a payment/modify the object that was deleted.
If an object was deleted, you'll need to recreate the item in QuickBooks, click the Ignore and Continue button, and manually add a Payment to QuickBooks.