QuickBooks Online Accounting API for managing invoices, customer payments recorded in the accounting ledger, customers, vendors, accounts, and financial reports. Best for automating bookkeeping, syncing transactions from other systems, generating financial reports, or building integrations that read and write accounting data. Requires OAuth 2.0 with a connected QuickBooks company. API URLs follow the pattern /v3/company//: leave the literal placeholder in the path and the gateway fills in the connected company automatically. This does not cover Intuit Payroll or the separate Intuit Payments API.
12 example endpoints available through Lava’s AI Gateway. See the QuickBooks API docs for full documentation.
This provider requires your own credentials — connect your API key or OAuth account before use.
This is a
catch-all provider — any valid URL under
https://quickbooks.api.intuit.com is supported. Any QuickBooks Online Accounting API endpoint. URLs follow the pattern
https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity} ;. Leave the literal {realmId} placeholder in the path: the gateway automatically substitutes the connected company’s realmId (captured during OAuth connection) from the stored credential, so you never need to look it up. Common accounting entities: invoice, customer, account, payment, bill, vendor, estimate, purchase, journalentry. Use query endpoint for SQL-like queries: /v3/company/{realmId}/query?query=SELECT * FROM Invoice. This provider is scoped to QuickBooks Online Accounting, not Intuit Payroll or the separate Intuit Payments API. See
https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account for full reference. The endpoints below are curated examples.
Endpoints
Query entities using SQL-like syntax. Supports SELECT, WHERE, ORDER BY, STARTPOSITION, MAXRESULTS.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/query?query=SELECT * FROM Invoice WHERE TotalAmt > '100.00'&minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/query?query=SELECT * FROM Invoice WHERE TotalAmt > ' 100.00 '&minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fquery%3Fquery%3DSELECT%20*%20FROM%20Invoice%20WHERE%20TotalAmt%20%3E%20'100.00'%26minorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Retrieve a list of invoices.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Finvoice%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Create a new invoice. Requires at minimum a CustomerRef and at least one Line item.
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice?minorversion=75' , {
body: {
"CustomerRef" : {
"value" : "1"
},
"Line" : [
{
"Amount" : 100 ,
"DetailType" : "SalesItemLineDetail" ,
"SalesItemLineDetail" : {
"ItemRef" : {
"value" : "1"
}
}
}
]
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Finvoice%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"CustomerRef":{"value":"1"},"Line":[{"Amount":100,"DetailType":"SalesItemLineDetail","SalesItemLineDetail":{"ItemRef":{"value":"1"}}}]}'
Read a single invoice by ID.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice/{invoiceId}?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice/{invoiceId}?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Finvoice%2F%7BinvoiceId%7D%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Retrieve a list of customers.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/customer?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/customer?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fcustomer%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Create a new customer. DisplayName must be unique.
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/customer?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/customer?minorversion=75' , {
body: {
"DisplayName" : "Ada Lovelace" ,
"PrimaryEmailAddr" : {
"Address" : "ada@example.com"
}
},
});
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fcustomer%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"DisplayName":"Ada Lovelace","PrimaryEmailAddr":{"Address":"ada@example.com"}}'
Retrieve a list of accounts from the chart of accounts.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/account?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/account?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Faccount%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Retrieve payments recorded in the accounting ledger.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/payment?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/payment?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fpayment%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Record a customer payment in the accounting ledger. This is the QuickBooks Online Accounting Payment entity, not the separate Intuit Payments API.
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/payment?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/payment?minorversion=75' , { body: { "CustomerRef" : { "value" : "1" }, "TotalAmt" : 100 } });
curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fpayment%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json" \
-d '{"CustomerRef":{"value":"1"},"TotalAmt":100}'
Update a QuickBooks Online Accounting entity through catch-all routing. Use the entity-specific request body required by Intuit.
PUT https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}/{entityId}?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}/{entityId}?minorversion=75' , { method: 'PUT' });
curl -X PUT "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2F%7Bentity%7D%2F%7BentityId%7D%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Delete a QuickBooks Online Accounting entity through catch-all routing when the upstream endpoint supports DELETE.
DELETE https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}/{entityId}?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity}/{entityId}?minorversion=75' , { method: 'DELETE' });
curl -X DELETE "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2F%7Bentity%7D%2F%7BentityId%7D%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY " \
-H "Content-Type: application/json"
Read company info. Useful for verifying the connected company.
GET https://quickbooks.api.intuit.com/v3/company/{realmId}/companyinfo/{realmId}?minorversion=75 — Free
const data = await lava . gateway ( 'https://quickbooks.api.intuit.com/v3/company/{realmId}/companyinfo/{realmId}?minorversion=75' , { method: 'GET' });
curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fquickbooks.api.intuit.com%2Fv3%2Fcompany%2F%7BrealmId%7D%2Fcompanyinfo%2F%7BrealmId%7D%3Fminorversion%3D75" \
-H "Authorization: Bearer $LAVA_SECRET_KEY "
Next Steps
All Providers Browse all supported AI providers
Forward Proxy Learn how to construct proxy URLs and authenticate requests