QuickBooks Online Sync Error | Application authentication failed
What's happening
This is a QuickBooks Online (QBO) authentication failure coming back from Intuit:
QBO reply: 401 "Authorization Failure" / code 120 → "Access Denied"
Your payload looks fine for a bill. If it were malformed, you would see a 400 with field-level errors instead of a 401.
What this usually means
- The QBO connection was disconnected or revoked (for example, an admin removed the app, changed permissions, or connected a different company file).
- The OAuth refresh token expired (after 120–180 days of no successful refresh) or was invalidated by Intuit.
- The sync attempted to reach QBO with a stale realm/company ID (for example, if the customer switched companies and didn't re-link).
- Less common: an Intuit service/account lock or permission scope mismatch on the QBO side.
How to resolve
- Disconnect and reconnect QBO to Ramp:
- Go to Accounting > Settings.
- Under the Danger Zone tab, click Disconnect QuickBooks.
- Then, from the Accounting page, reconnect your ERP:
- Follow the setup flow and, during the Intuit popup, confirm the company file name is the correct one.
- Complete the connection.
- If needed, refer to the QuickBooks Online Overview page for the setup guide.
- Once reconnected, go back to the failed transactions and click Retry Sync (for card transactions, go to the Card Transactions tab; for bills, go to Bill Pay).