ml-connector
QuickBooks OnlineRamp

QuickBooks Online and Ramp integration

QuickBooks Online runs your company accounting and general ledger. Ramp runs your corporate spend, cards, and expenses. Connecting the two keeps your cash and your GL in sync. Bills created in Ramp post into QuickBooks Online's bill register, allocated to the GL accounts and vendors set up in your chart of accounts. Expense transactions from Ramp cards post as journal entries, so month-end close starts with expenses already recorded and reconciled.

How QuickBooks Online works

QuickBooks Online exposes accounts, vendors, bills, bill payments, journal entries, and departments through the QuickBooks Online Accounting API v3, a REST service authenticated with OAuth 2.0 Authorization Code flow. Access tokens expire in 1 hour and refresh tokens rotate every 24 to 26 hours. All requests require a realm_id (company identifier) captured from the OAuth callback and a minorversion query parameter. QuickBooks Online supports both push webhooks for real-time entity changes and polling via CDC endpoint with 30-day history. Webhook payloads contain only entity ID, name, and operation, so the full record must be fetched via a GET request. All creates and updates require exact object representation with a SyncToken for concurrency control.

How Ramp works

Ramp exposes bills, vendors, transactions, GL accounts, purchase orders, and accounting dimensions through the Ramp Developer API, a REST service authenticated with OAuth 2.0 client credentials (recommended for ERP connectors) or Authorization Code flow. Client credentials tokens are valid 10 days; authorization code tokens are valid 1 hour. Ramp supports push webhooks for real-time events including bills created, updated, and paid, as well as transactions cleared and synced, with signature verification via HMAC-SHA256. Vendors are created implicitly via bills; there is no direct create endpoint for standalone vendors. Payments are initiated via bill creation or update; there is no standalone payment write endpoint.

What moves between them

Bills and expenses flow from Ramp into QuickBooks Online. When a bill is created or updated in Ramp, ml-connector receives the webhook notification, fetches the full bill record, and creates a matching Bill in QuickBooks Online mapped to the correct vendor and GL account. Expense transactions from Ramp corporate cards post as journal entries into QuickBooks Online, allocated to the GL accounts set up in your Ramp-to-QB mapping. Reference data such as vendors and GL accounts are queried from both systems to ensure every record lands on a valid account before posting. The main flow is one direction: Ramp to QuickBooks Online. QuickBooks Online bills are read-only in the context of this integration.

How ml-connector handles it

ml-connector stores both credential sets encrypted and handles OAuth 2.0 on both sides: QuickBooks Online requires Authorization Code flow with realm_id captured from the OAuth callback, while Ramp uses client credentials (valid 10 days) or Authorization Code flow with 1-hour tokens. ml-connector listens for Ramp webhooks, verifies HMAC-SHA256 signatures, and fetches full bill records since webhook payloads contain only metadata. On the QuickBooks Online side, it builds Bills with exact SyncToken matching and creates JournalEntries for expense transactions, validating that vendors and GL accounts already exist in your QB chart of accounts. When QuickBooks Online refresh tokens rotate (every 24 to 26 hours), ml-connector refreshes transparently without interruption. When a bill sync fails midway, every record carries an audit trail and can be replayed from the webhook event. Ramp's client credentials tokens are checked near expiry so a renewal does not turn into an outage.

A real-world example

A mid-sized B2B SaaS company with 30 employees uses QuickBooks Online for accounting and Ramp for corporate cards, travel, and bill pay across engineering and operations. Before the integration, the accounting team received spreadsheets of Ramp bills and transactions weekly, manually created bills in QB, coded them to GL accounts, and spent hours matching cards transactions to expense reports. With QuickBooks Online and Ramp connected, each Ramp bill creates a QB bill automatically, allocated to the cost center and GL account in the integration mapping. Card transactions post daily as journal entries, so the TB is current and month-end close is a reconciliation exercise instead of data entry.

What you can do

  • Create QuickBooks Online bills from Ramp bills, mapped to the correct vendors and GL accounts.
  • Post Ramp corporate card transactions as journal entries into QuickBooks Online, allocated to cost centers.
  • Validate vendors and GL accounts exist in QB before posting a bill or transaction, preventing unmatched records.
  • Authenticate QuickBooks Online with OAuth 2.0 Authorization Code flow and realm_id, and Ramp with client credentials or Authorization Code.
  • Listen to Ramp webhooks in real time, verify HMAC-SHA256 signatures, and sync bills on demand or on a schedule.

Questions

Which direction does data flow between QuickBooks Online and Ramp?
The main flow is Ramp into QuickBooks Online. Bills created or updated in Ramp post into QB as bills, and Ramp card transactions post as journal entries. QuickBooks Online bills are read-only in this integration; QB does not push data back into Ramp.
What happens when a QuickBooks Online refresh token rotates?
QuickBooks Online refresh tokens rotate every 24 to 26 hours. ml-connector detects the rotation and refreshes transparently without interruption. The realm_id captured during OAuth callback is stored encrypted and reused across token refreshes.
How does ml-connector handle Ramp bills when the GL account or vendor does not exist in QB?
Before creating a bill or posting a transaction, ml-connector queries both systems to verify the target GL account and vendor already exist in your QuickBooks Online chart of accounts. If either is missing, the record is held with a full audit trail and can be replayed once the account or vendor is added.

Related integrations

Connect QuickBooks Online and Ramp

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started