QuickBooks Online
Keep QuickBooks Online in step with your orders, invoices and payments without re-keying, with the right person approving what changes.
58 ways to read, 25 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with QuickBooks Online, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Record bill payment
bill_payments.createApproval by rule - Create bill
bills.createApproval by rule - Balance sheet report
balance_sheet.getRead
Example flow
- One Touch Health · Read clients
clients.listDone - QuickBooks Online · Create customer
customers.createMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches QuickBooks Online.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to QuickBooks Online
- QuickBooks Online's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect a Intuit test account before you go live.
For developers
Technical detail
QuickBooks Online sales, purchasing, banking (deposits, transfers, refund receipts), vendor credits, bill payments, exchange rates, lists, reports and change data capture; invoice writes never send email.
Intuit API docs- Source actions
- 58
- Destination actions
- 25
- Data types
- 32
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
accounts2
- Get accountSource
One chart-of-accounts entry with type and balance.
- List accountsSourceIncremental
Chart of accounts with type, classification and current balance.
aged receivables1
- Aged receivables reportSource
Outstanding customer balances by ageing bucket.
balance sheet1
- Balance sheet reportSource
Assets, liabilities and equity at the end of a period.
bill payments3
- Record bill paymentDestinationProvider duplicate protectionApproval before production
Records that supplier bills were already paid by cheque or credit card, and applies the payment to them. QuickBooks sends no money for this record.
- Get bill paymentSource
One bill payment with the bills it settles.
- List bill paymentsSourceIncremental
Payments recorded against vendor bills by cheque or credit card.
bills4
- Create billDestinationProvider duplicate protectionApproval before production
Creates a vendor bill with item or account expense lines.
- Get billSource
One vendor bill with expense lines and open balance.
- List billsSourceIncremental
Vendor bills with expense lines and open balances.
- Update billDestinationProvider duplicate protectionApproval before production
Sparse update of a bill using its Id and current SyncToken.
changes1
- List changes (change data capture)SourceIncremental
Records of the chosen entity types created, updated or deleted since a time in the last 30 days.
classes2
- Get classSource
One class.
- List classesSourceIncremental
Classes used to segment transactions.
company info1
- Get company informationSource
Company name, legal name, country and fiscal year start for the connected company.
credit memos3
- Create credit memoDestinationProvider duplicate protectionApproval before production
Records a credit owed to a customer, for example for returned goods or a pricing correction. QuickBooks can apply it to the customer's open invoices; no money is refunded by this record.
- Get credit memoSource
One credit memo with lines and remaining credit.
- List credit memosSourceIncremental
Customer credit memos with remaining credit.
customer balances1
- Customer balance reportSource
Open balance per customer at a date.
customers6
- Create customerDestinationProvider duplicate protectionApproval before production
Creates a customer, or a sub-customer (job) when a parent is given, for example a care client billed to a funder.
- Get customerSource
One customer or sub-customer with contact, address, balance and terms.
- List CustomersSource
List operation for Customers.
- Search customersSourceIncremental
Customers by ID, status, open balance or change time. Use updatedSince for incremental sync.
- Update customerDestinationProvider duplicate protectionApproval before production
Sparse update of a customer using its Id and current SyncToken.
- Upsert CustomersDestinationNexra idempotency keyApproval before production
Upsert operation for Customers.
departments2
- Get location (department)Source
One location, called a department in the API.
- List locations (departments)SourceIncremental
Locations, called departments in the API.
deposits3
- Record depositDestinationProvider duplicate protectionApproval before production
Records funds already received into a bank account: undeposited customer payments and other income. No money is moved or collected.
- Get depositSource
One bank deposit with its lines.
- List depositsSourceIncremental
Bank deposits recorded in QuickBooks, with the payments and other funds they include.
employees2
- Get employeeSource
One employee, for example a carer whose time is billed.
- List employeesSourceIncremental
Employees for time tracking and expense attribution.
estimates5
- Create estimateDestinationProvider duplicate protectionApproval before production
Creates a customer estimate.
- Get estimateSource
One estimate with lines, status and expiry.
- List estimatesSourceIncremental
Quotes and estimates with status, expiry and lines.
- Search estimatesSourceIncremental
Estimates by ID, customer, document number, date range or change time.
- Update estimateDestinationProvider duplicate protectionApproval before production
Sparse update of an estimate using its Id and current SyncToken.
exchange rates3
- Get exchange rateSource
The rate QuickBooks uses for one currency on a date (today when no date is given).
- List exchange ratesSource
Exchange rates QuickBooks holds for foreign currencies against the home currency, optionally for one date or currency.
- Set exchange rateDestinationProvider duplicate protectionApproval before production
Sets the rate QuickBooks uses to convert a foreign currency to the home currency on a date. Setting the same rate again changes nothing.
invoices5
- Create invoiceDestinationProvider duplicate protectionApproval before production
Creates a sales invoice for a customer.
- Get invoiceSource
One invoice with lines, balance, SyncToken and linked transactions.
- List invoicesSourceIncremental
Sales invoices with lines, balances, linked payments and custom fields.
- Search invoicesSourceIncremental
Invoices by ID, customer, document number, transaction or due date range, location, class, open balance or change time.
- Update invoiceDestinationProvider duplicate protectionApproval before production
Sparse update of an invoice using its Id and current SyncToken.
items4
- Create itemDestinationProvider duplicate protectionApproval before production
Creates a service, non-inventory or inventory item.
- Get itemSource
One product or service, for example a care visit rate.
- List itemsSourceIncremental
Products and services with prices, accounts and quantity on hand.
- Update itemDestinationProvider duplicate protectionApproval before production
Sparse update of an item using its Id and current SyncToken.
journal entries2
- Create journal entryDestinationProvider duplicate protectionApproval before production
Posts a balanced journal entry; debits must equal credits.
- List journal entriesSourceIncremental
Manual journal entries with debit and credit lines.
payment methods1
- List payment methodsSource
Payment methods such as cash, cheque, BACS or card.
payments3
- Record customer paymentDestinationProvider duplicate protectionApproval before production
Records a payment already received from a customer and applies it to invoices. No money is collected.
- Get customer paymentSource
One received customer payment and the invoices it settles.
- List customer paymentsSourceIncremental
Received customer payments and the invoices they settle.
profit and loss1
- Profit and loss reportSource
Income and expenses for a period, optionally by customer, location or class.
purchase orders3
- Create purchase orderDestinationProvider duplicate protectionApproval before production
Creates a purchase order for a vendor.
- List purchase ordersSourceIncremental
Purchase orders with status and lines.
- Update purchase orderDestinationProvider duplicate protectionApproval before production
Sparse update of a purchase order using its Id and current SyncToken.
refund receipts2
- Get refund receiptSource
One refund receipt with its lines (read only).
- List refund receiptsSourceIncremental
Refunds given to customers at the time of return, with lines (read only).
sales receipts2
- Create sales receiptDestinationProvider duplicate protectionApproval before production
Records a sale that was already paid. No card or bank payment is processed by this operation.
- List sales receiptsSourceIncremental
Sales paid at the time of sale.
tax codes2
- Get tax codeSource
One tax code with its sales and purchase rates.
- List tax codesSource
Sales and purchase tax codes.
tax rates2
- Get tax rateSource
One tax rate.
- List tax ratesSource
Tax rates (for example UK VAT 20% or 5%) with agency and rate value.
terms2
- Get termSource
One payment term.
- List termsSource
Payment terms such as Net 30 or due on a day of the month.
time activities5
- Create time activityDestinationProvider duplicate protectionApproval before production
Records time worked by an employee or vendor.
- Get time activitySource
One time record with worker, customer, service item and billable status.
- List time activitiesSourceIncremental
Time recorded by employees or vendors, with billable status.
- Search time activitiesSourceIncremental
Time records by ID, date range or change time.
- Update time activityDestinationProvider duplicate protectionApproval before production
Sparse update of a time record using its Id and current SyncToken, for example to correct visit hours.
transfers2
- Get transferSource
One recorded transfer between accounts (read only).
- List transfersSourceIncremental
Transfers recorded between two balance sheet accounts (read only).
vendor credits3
- Create vendor creditDestinationProvider duplicate protectionApproval before production
Records a credit received from a supplier, for example for returned goods. It can then be applied to that supplier's bills in QuickBooks.
- Get vendor creditSource
One supplier credit with its lines.
- List vendor creditsSourceIncremental
Credits received from suppliers, with expense lines and remaining balance.
vendors4
- Create vendorDestinationProvider duplicate protectionApproval before production
Creates a supplier.
- Get vendorSource
One supplier.
- List vendorsSourceIncremental
Suppliers with contact details, balances and 1099 status.
- Update vendorDestinationProvider duplicate protectionApproval before production
Sparse update of a vendor using its Id and current SyncToken.
Access and limits
- Authentication
- QuickBooks OAuth 2.0 access token (com.intuit.quickbooks.accounting scope)
- Plans and access
- QuickBooks Online Simple Start, Essentials, Plus and Advanced. Entities follow the company subscription: purchase orders, classes, locations and inventory need Plus or Advanced.
- Test environment
- Intuit developer accounts include sandbox companies at sandbox-quickbooks.api.intuit.com.
- Rate limits
- 500 requests per minute per company and 10 concurrent requests; HTTP 429 when exceeded.
- Pagination
- Query STARTPOSITION/MAXRESULTS paging with up to 1000 records per page.
- Provider events
- QuickBooks webhooks notify entity create, update and delete events. Flows can start the moment something happens: when a new customer is added; when an invoice is created; when an invoice is updated; when a payment is received.
Before you build a flow
- QuickBooks Online customers only. Display-name matched writes use SyncToken concurrency and request IDs. OAuth access tokens expire. Desktop uses a separate connector.
- Requests use minor version 75, the minimum QuickBooks serves since August 2025.
- QuickBooks access tokens expire after one hour. Connections made through Nexra's QuickBooks sign-in are renewed automatically before they expire, using the refresh token held in the secure vault; a connection whose refresh is refused is marked as needing reconnection. A connection created by pasting an access token instead keeps using that token as-is.
- Long Nexra idempotency keys are hashed to the documented 50-character requestid limit.
- Custom fields are written as string custom fields (up to three per transaction); other custom field types are read only.
- Tax codes are read without an updatedSince filter; QuickBooks does not document MetaData filtering for TaxCode.
- Terms, tax rates and payment methods are listed without an updatedSince filter (small lists; MetaData filtering is not documented for them). Use changes.list for incremental sync of terms and payment methods.
- Invoices are never emailed: Nexra never sets EmailStatus to NeedToSend and never calls the invoice or estimate send endpoints. A billing email can be stored on the invoice for later manual sending in QuickBooks. Customers cannot be set to the Email delivery preference through Nexra.
- Searches use the QuickBooks query language built only from validated, quoted filters (IDs, references, document numbers, dates, balance, status, change time). There is no free-form query, and names and email addresses are never used as filters because the query is sent in the URL.
- Change data capture (changes.list) looks back at most 30 days and returns at most 1000 records per call; it has no paging.
- Reports (profit and loss, balance sheet, aged receivables, customer balance) are read only and returned as flattened rows with text values. Report parameter names follow Intuit's official PHP SDK report service; aged receivables department filtering is not offered because it is not confirmed.
- Filterable query columns were checked against Intuit's open-source QuickBooks MCP server (derived from the entity reference); Intuit's interactive API reference could not be machine-read, so the time activity and estimate filters are limited to IDs, dates and change time.
- Recording writes added for bookkeeping: bill_payments.create records a bill already paid outside QuickBooks (cheque or credit card; QuickBooks does not send money for it), deposits.create records funds already received into a bank account, vendor_credits.create records a supplier credit and exchange_rates.update sets the rate QuickBooks uses for a currency on a date. None of them moves money.
- Exchange rates need multicurrency turned on in the company. A rate is identified by source currency and date (CUR:YYYY-MM-DD); QuickBooks has no separate ID for it.
- Not implemented by design: transfers between accounts (read only), refund receipts (read only), voids, deletes and emailing (send) of invoices or estimates.
- Reconciliation: QuickBooks Online's API has no bank feed or bank statement endpoint, so bank-side reads use deposits, transfers and bill payments (the transactions QuickBooks posts to bank accounts). QuickBooks Online has no sales orders; purchase orders are the order read.
Developer reference
- Create the Intuit credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose QuickBooks Online, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/quickbooks-online and the Connections API.