Skip to main content

QuickBooks Online Known Limitations

Known limitations of the iPaaS.com QuickBooks Online integration: release scope, QuickBooks Online API constraints and design decisions.

New here? This page is a configuration reference for teams implementing the QuickBooks Online integration in iPaaS.com. It documents scope, design decisions, and settings to confirm before go-live. These are not product defects, and most items are handled during implementation by iPaaS.com or your Managed Integration Service Provider (MiSP). See Understanding Integration Scope & Known Limitations for how we document this for every integration.

This document lists what subscribers should know before installing the QuickBooks Online integration. None of these items are bugs. They come from design decisions, from what the QuickBooks Online API can and cannot do, or from the scope of the 1.0.0 release. They apply to all subscribers at the time this documentation was written. Each setting's default, and what to check before going live, is in the QuickBooks Online Connections and Settings article.

For each limitation we explain what it is, why it exists, and what this means for you.

Platform Scope and Tested Versions

Item

Value

Integration name

QuickBooks Online

Integration version

1.0.0

iPaaS.com integration

QuickBooks Online, on the iPaaS.com marketplace

Remote platform API

QuickBooks Online Accounting API v3, minor version 75 — https://quickbooks.api.intuit.com (the sandbox host is for iPaaS.com's own testing)

QuickBooks editions

US companies. Quantities on hand need QuickBooks inventory tracking: included in Plus and Advanced, an add-on for Simple Start and Essentials (Intuit).

Tested against

US QuickBooks Online sandbox companies, one on manual sales tax and one on automated sales tax

Last tested end to end

October 2026

Not built for

QuickBooks Desktop (Pro, Premier, Enterprise), and QuickBooks Online companies outside the US: the tax codes the integration writes exist only in US companies, and nothing stops a non-US company from connecting.

Future API changes

If Intuit releases a materially different QuickBooks Online API, this integration does not support it automatically.

1. Transactions in this release

What: FROM iPaaS.com, the integration writes sales receipts and invoices only. It does not write estimates, credit memos or refund receipts, and it does not void or delete a transaction.

Why: These two cover the sales that subscribers post into QuickBooks. Estimates, credit memos, refund receipts and voids are not supported in this version; they can be added on request: contact iPaaS.com support.

What this means for you:

  • Returns and refunds must be entered in QuickBooks.

  • A transaction already posted to QuickBooks that is then cancelled, refunded or returned in iPaaS.com is not voided or reversed. The transfer stops with QBOL-BIZL-1007, naming the QuickBooks document and the reversal to enter there; nothing is changed in QuickBooks (see item 16).

  • A document number QuickBooks already has is matched, not written twice (see item 12).

  • Nothing is emailed or charged. The integration never emails a sales receipt or invoice to the customer, never charges a card and does not use QuickBooks Payments: payments are recorded in the books only.

  • Lines are written as product lines. QuickBooks bundle (group), subtotal and description-only lines are not written.

  • One QuickBooks transaction per sale. Each iPaaS.com transaction becomes its own sales receipt or invoice. Posting one daily summary per store (for example, a day of POS sales as a single sales receipt) is not supported yet; it can be added on request: contact iPaaS.com support.

2. Sales receipts are not sent TO iPaaS.com

What: TO iPaaS.com, only invoices are brought back (status, balance, paid date and payments). Sales receipts entered in QuickBooks are not.

Why: A sales receipt is paid when it is made, so there is no status to bring back. Sales receipts TO iPaaS.com are not supported in this version; they can be added on request: contact iPaaS.com support.

What this means for you:

  • Use QuickBooks Online as the destination for sales, not their source. Invoices created in QuickBooks do not create iPaaS.com transactions, and an invoice's lines, addresses, taxes and amounts are not taken from QuickBooks.

  • Paid orders shown as Awaiting Payment: when the QuickBooks invoice keeps an open balance (for example, QuickBooks' tax is higher than the source's), a paid order comes back as Awaiting Payment, with that balance and no paid date, and no error is raised.

  • Overdue by the UTC date: an invoice becomes Overdue when its due date is before today's date in UTC, not in the QuickBooks company's time zone, so in US time zones an invoice turns overdue a few hours before its due date ends locally.

3. One inventory location

What: QuickBooks keeps one quantity on hand per item and has no locations. Every quantity TO iPaaS.com carries the iPaaS.com location in the Inventory Location setting.

Why: That is how QuickBooks Online tracks inventory.

What this means for you:

  • Fill Inventory Location before you bring inventory TO iPaaS.com.

  • A business with several stock locations should keep inventory in another system.

  • Quantities are not updated FROM iPaaS.com: they change in QuickBooks through sales and inventory adjustments. The one exception is the start quantity of a new Inventory item, written when the item is created.

  • Only Inventory items have a quantity. Quantities need QuickBooks inventory tracking: included in Plus and Advanced, an add-on for Simple Start and Essentials (Intuit).

  • Bring items TO iPaaS.com before their quantities. A quantity whose item has no iPaaS.com product yet fails with VALD-1002 (Parent Id); the Item TO iPaaS.com collection sends an item with its quantity.

4. Inventory adjustments and the poll

What: Quantities reach iPaaS.com through inventory/poll, which finds the Inventory items changed since the last poll.

Why: The poll asks QuickBooks for the items changed since the last poll; an inventory adjustment or a sale counts as a change.

What this means for you: An inventory adjustment or a sale in QuickBooks updates the item, so the next inventory/poll brings the new quantity. A new quantity arrives on the poll's schedule, not at once. To send one item's quantity now, use the inventory/updated scope with its QuickBooks item id.

Inactive items: the inventory poll reads only active Inventory items. A quantity change on an item that is inactive in QuickBooks reaches iPaaS.com only when the item itself is transferred again through Add/Update QuickBooks Online Item TO iPaaS.com (for example with Manual Sync).

5. No multi-currency

What: The integration does not send or read currencies or exchange rates. Amounts are in the company's home currency.

Why: Multi-currency is out of scope for this release.

What this means for you: Transactions in a foreign currency are not supported. Send transactions in the company's home currency only.

6. Deposits and payouts are out of scope

What: Bank deposits and payment-processor payouts are not moved.

Why: iPaaS.com has no data type for them.

What this means for you: Sales receipts and invoice payments go to the Deposit Account (default Undeposited Funds). Reconcile payouts in QuickBooks.

7. Custom fields

What: Custom fields are supported on sales receipts and invoices only, through QuickBooks' sales form custom fields. QuickBooks customer custom fields are not written or transferred, and items and payment methods have none.

Why: Item custom fields are not available in the QuickBooks Online v3 API. Sales form custom fields are QuickBooks' three string fields.

What this means for you:

  • Each transaction custom field must exist in QuickBooks with the same name and be turned on. Values are cut to 31 characters.

  • The PO number goes to a custom field named P.O. Number or PO Number when there is one, else to the private note as PO {number}.

8. Customers and items are never deleted

What: QuickBooks never deletes a customer or an item. Deleting one in iPaaS.com does not change QuickBooks.

Why: QuickBooks only makes them inactive, to keep their history.

What this means for you:

  • Map Active = false to make a customer or item inactive.

  • Inactive customers and items still own their names and are still found by matching.

  • TO iPaaS.com, the polls read inactive customers too, but the default customer template takes only active ones. Inactive items do arrive (see the next point).

  • When an item is made inactive, QuickBooks adds (deleted) to its name, and the iPaaS.com product takes that name on the next transfer. An inactive item is Disabled in iPaaS.com and cannot be used on a new QuickBooks transaction.

  • FROM iPaaS.com, a product with any status other than Active (Disabled, Discontinued or Preorder) makes the QuickBooks item inactive, so it cannot be used on a new QuickBooks transaction.

9. Payment methods have no delete

What: A payment method cannot be deleted in QuickBooks, by the integration or otherwise.

Why: The QuickBooks Online API has no delete for payment methods.

What this means for you: Map Active = false to make one inactive.

Payment methods TO iPaaS.com and existing names. Before a QuickBooks payment method is sent TO iPaaS.com for the first time, the integration links it to the iPaaS.com payment method with the same name, in any letter case (QuickBooks Visa and iPaaS.com VISA are linked), when exactly one iPaaS.com method has that name and it is not already linked to another QuickBooks method of the subscription. The transfer then updates that iPaaS.com method, so no collision handling is needed on the Payment Method TO iPaaS.com collection. A linked method keeps its iPaaS.com name and description; its payment type becomes Credit Card when QuickBooks says it is a credit card.

QuickBooks only says whether a method is a credit card. A new non-card method arrives in iPaaS.com as payment type Check (QuickBooks' Check) or Cash (anything else); change it in iPaaS.com if it is EBT, a gift card or similar.

10. Intuit webhooks are not offered

What: Changes TO iPaaS.com are found by polling only. Intuit webhooks are not offered in this release.

Why: The integration signs in with one Intuit app, owned by iPaaS.com, for every subscriber. Intuit sends every event of an app to one URL, set on the app, with no custom header and no per-company registration, so that one URL cannot carry each subscription's webhook key. iPaaS.com's app therefore sends no webhooks. In addition, iPaaS.com cannot verify Intuit's webhook signature.

What this means for you:

  • Set the polls to run every 15 minutes, with one polling event per scope (see the QuickBooks Online Installation Instructions). Each poll is one QuickBooks read (see item 19).

  • The qbo.*.v1 scopes receive no events from Intuit, so don't set up webhooks for them. Their only use is a manual transfer of one record by its QuickBooks id (on the iPaaS.com Manual Sync page).

  • Quantities always come from inventory/poll.

11. Document numbers are at most 21 characters

What: QuickBooks allows at most 21 characters in a document number. A longer number fails with QBOL-VALD-1009, and nothing is sent.

Why: It is QuickBooks' limit.

What this means for you: Keep the last 21 characters of the order number in the mapping and put the full number in Private Note. When no document number is mapped, QuickBooks numbers the transaction if custom transaction numbers are turned off.

  • Orders whose numbers share their last 21 characters get the same QuickBooks document number, and are then matched as the same transaction (see item 12).

  • Short numeric order numbers can match QuickBooks' own invoice numbers for a repeat customer. A prefix such as WEB- or POS- in the document number mapping keeps them apart.

12. Matching before create

What: A create FROM iPaaS.com first looks for the same record in QuickBooks: a customer by email (by display name only when there is no email), an item by SKU then name, a transaction by document number, a payment method by name. Only Inventory, Non-inventory and Service items are matched: QuickBooks categories and bundles never are.

Why: It stops a resend from creating duplicates, and lets you link records that already exist.

What this means for you:

  • What happens on a match is the collection's collision handling. Error fails with a coded error; Remap and Link or Update and Link link the existing record, and iPaaS.com then updates it with the mapped data, except that the default invoice filter leaves an invoice already paid in full as it is. Update and No Link stores no link, so the matched record is rewritten on every transfer, and the paid-invoice guard does not protect it.

  • A sale with no email and no linked customer posts to an existing QuickBooks customer with the same name, so two different people with the same name share one QuickBooks customer and its receivable. Map the customer's QuickBooks Customer Id or an email to keep them apart.

  • Two people with the same name and different emails become two customers; the second gets its email added to its display name, and keeps that name on later updates.

  • When two or more QuickBooks customers have the email being matched, nothing is written: the transfer fails with QBOL-BIZL-1002 naming them, under every collision handling setting. Map the customer's QuickBooks Customer Id (link the right customer), or give each QuickBooks customer its own email. This applies to sales receipts and invoices too, when their customer is matched by email.

  • A product whose name or SKU belongs to a QuickBooks category or bundle fails with QBOL-BIZL-1005, whatever the collision handling. On a transaction line with a SKU, a name that belongs to a category or bundle gets an item of its own named "Name (SKU)"; a line whose SKU belongs to a bundle, or whose name belongs to a category or bundle with no SKU, fails with QBOL-BIZL-1005.

  • A transaction with no document number has no duplicate check.

  • A create that is retried after its answer was lost (for example a timeout after QuickBooks saved the record) returns the record QuickBooks created the first time, instead of creating it again. A sales receipt or invoice needs a document number or an Ipaas Transaction Id for this; the default templates map both.

  • An update never writes what it does not carry: a customer update keeps QuickBooks' address lines 4 and 5 (TO iPaaS.com, only lines 1 to 3 are sent), and an item update with a blank name keeps the QuickBooks item's name.

  • TO iPaaS.com, a QuickBooks customer not linked yet is linked to the one iPaaS.com customer with its email (an item to the one product with its SKU, or its name when it has no SKU; a payment method to the one payment method with its name, see item 9), and the transfer updates that record. QuickBooks categories and bundles are not sent TO iPaaS.com. When several iPaaS.com records have the email, SKU or name, or the one that has it is already linked to another QuickBooks record, nothing is linked: iPaaS.com refuses the new record (BIZL-1006 for a customer or product, BIZL-1007 - Payment Method (Id: ...) already exists. for a payment method), and the log names the candidates so you can link the right one.

  • If you add a second mapping collection for the same record type and direction, keep the filters apart. A record that matches both is processed by both:

    • TO iPaaS.com, the first creates it and the second is refused with BIZL-1006;

    • TO iPaaS.com, a second collection that maps only some fields is refused on update with VALD-1024 - Required property ... not found (iPaaS.com replaces the whole record, so a collection must map every required field); one that maps them all overwrites the first collection's values;

    • FROM iPaaS.com, the first creates the QuickBooks record and the second, with collision handling Error, fails with QBOL-BIZL-1001 naming it.

13. Sales tax

What: The integration sends the transaction's tax total, so QuickBooks keeps the amount the customer was charged, for companies on QuickBooks manual sales tax and on automated sales tax. Each line is marked taxable (TAX) or not (NON); other per-line tax codes are not supported.

Why: Companies on manual sales tax ignore a tax total sent without a tax code, so the integration sends one. On automated sales tax, QuickBooks assigns the tax to its own jurisdictions, and a manual tax code would book it at that code's rate instead, so no tax code is sent.

What this means for you:

  • Manual sales tax: fill Sales Tax Code, or map Tax Code. Without either, a transaction with tax fails with QBOL-VALD-1014.

  • Automated sales tax: leave Sales Tax Code and any Tax Code mapping blank. On an automated sales tax company both are ignored (not sent); the tax amount is kept and QuickBooks assigns it to its jurisdictions. When the amount from iPaaS.com differs from what QuickBooks would calculate, the iPaaS.com amount is recorded, with no error.

14. Payments

What: Payments FROM iPaaS.com are recorded only on transactions that became QuickBooks invoices, each applied to that one invoice. A payment is created once and never updated or deleted. Only captured payments are recorded: the default payment filters take payments whose Status is Completed and whose Amount is greater than zero.

Why: A sales receipt already includes its payment. A payment is marked at the start of its QuickBooks memo with iPaaS.com payment {id}, so sending the invoice again finds it and does not record it twice.

What this means for you:

  • A payment already applied to the invoice is not recorded again. The integration recognises it by its iPaaS.com payment marker or, for a payment without the marker (entered by hand in QuickBooks, recorded earlier without its iPaaS.com id, or whose memo was edited), by the same amount and the same reference or, when either side has no reference, the same date. A payment with a different reference is another payment and is recorded, even when it overpays the invoice: QuickBooks keeps the excess as unapplied customer credit, with no error, and applies it to the customer's next invoice when Automatically apply credits is on in QuickBooks.

  • Same amount, nothing that tells them apart: a payment of the same amount as one entered by hand in QuickBooks is refused with QBOL-BIZL-1010, and nothing is written, when no reference is on both sides and the dates do not match (a different date alone is not enough to record it). iPaaS.com's transaction payment has no date or reference field of its own, and the default templates map neither, so with the default templates every such payment is refused. iPaaS.com retries the transfer until the refusal is settled or dismissed; see QuickBooks Online Error Messages.

  • Settling a QBOL-BIZL-1010: edit the memo of the QuickBooks payment the message names. Add the quoted iPaaS.com payment {id} mark if it is the same payment: nothing is recorded again. Add iPaaS.com: not this payment if it is another payment: the integration records the iPaaS.com payment itself, with its method and deposit account. Then resend. The marks are not case-sensitive. A QuickBooks payment marked iPaaS.com: not this payment is never taken for an iPaaS.com payment afterwards.

  • The iPaaS.com transaction can list the payment twice. When the invoice is polled TO iPaaS.com before a QBOL-BIZL-1010 is settled, the payment entered in QuickBooks reaches iPaaS.com as one of the transaction's payments (section 22). After a same-payment settlement, QuickBooks has the payment once, but the iPaaS.com transaction keeps both. Systems that read payments from iPaaS.com see the amount twice.

  • Do not send payments for orders posted as sales receipts.

  • To correct or remove a payment, do it in QuickBooks.

  • A payment with a missing, zero or negative amount is refused with QBOL-VALD-1015 before the invoice is written, so nothing is written.

  • If an invoice update succeeds but a payment fails, you get QBOL-EXTN-1011 (QBOL-EXTN-1012 on a new invoice); the resend records only the missing payment.

  • Paid later: an order posted as an invoice and paid later is applied to the invoice the order was itself posted as, found through its iPaaS.com link (the Ipaas Transaction Id mapping), and no sales receipt is posted. Another QuickBooks invoice that only has the same document number and customer is not paid: the collection's collision handling decides, and with Error the transfer fails with QBOL-BIZL-1006 and nothing is posted or paid.

  • Split tender: a sale paid with two or more payment methods is posted as an invoice, paid by one QuickBooks payment per payment, each to its own deposit account, so card settlements and gift card or store credit tenders reconcile. A sale paid with one method stays a sales receipt. Every payment's method is checked before anything is written; an untranslated one fails with QBOL-NFND-1007 naming it.

  • TO iPaaS.com: a credit memo applied to an invoice in QuickBooks is not sent as a payment (it is not cash), and a payment that combines cash and credit sends only its cash. A payment that reached iPaaS.com and was later voided or deleted in QuickBooks is sent again with status Voided and amount 0.

  • A payment entered in QuickBooks without a payment method reaches iPaaS.com as Other (translation row None → Other). A QuickBooks method with no translation row stops the invoice update TO iPaaS.com until you add the row.

  • Status, balance and payments recorded in QuickBooks reach iPaaS.com with the next poll, including on an invoice iPaaS.com has just created or updated. For a customer, item or payment method, a change made in QuickBooks soon after iPaaS.com wrote that record, and before the next poll, can be taken for the echo of that write and skipped. It arrives with the record's next change; to send it at once, transfer the record by hand with Manual Sync, its qbo.*.updated.v1 scope and its QuickBooks id.

15. Orders are posted when their payment is captured

What: An order whose payments include none that were captured (a declined card, or an authorisation not yet captured) is held: it is not posted to QuickBooks until a payment is captured. An order whose captured payments do not cover its total is posted as an invoice with the captured amount recorded, not as a sales receipt. A captured payment is one whose iPaaS.com Status is Completed.

Why: A sales receipt records the whole sale as paid. Posting an order before its payment is captured would record cash, revenue and sales tax for a sale that may never complete, and the integration cannot void a QuickBooks document when the order is cancelled.

What this means for you:

  • Held orders are not reported. A held order does not appear in Dashboard / Integration Monitoring / Error Logs. Review orders in iPaaS.com whose payments are pending or declined and have no QuickBooks document.

  • Capture must reach iPaaS.com. A held order is posted when the source updates it with a captured payment. If your source system captures payments without updating the order in iPaaS.com, the order stays held.

  • Captured status: if your source system reports captured payments with a status other than Completed, change the transaction and payment filters to that value, or every paid order is held.

  • Open invoices instead: subscribers or their MiSP can change the invoice filter so that these orders are posted as open invoices straight away; see Posting an Open Invoice Instead of Holding the Order in the Add/Update QuickBooks Online Invoice FROM iPaaS.com description. An open invoice for an order that is later cancelled stays open until it is voided in QuickBooks.

  • Late posting: a held order is posted when it is captured, but dated with the order's created date (the TxnDate mapping). If QuickBooks' books are closed for that period, QuickBooks refuses it and the order is not posted (section 25).

  • Paid sales are not rewritten. The default filters leave a posted sales receipt, and an invoice that is paid in full, as they are: a later change to the order at the source is skipped, with no error. Subscribers or their MiSP can change this guard in the filters.

16. Reversals and corrections

What: The integration writes sales receipts, invoices and payments only. It never writes a refund receipt or credit memo, and never voids a document. When a sale is reversed at the source after it was posted, the integration reports it instead of changing QuickBooks. When a sale is voided or credited in QuickBooks, the integration tells iPaaS.com.

Why: Refunds, returns and voids are accounting decisions with their own dates, accounts and tax; they are entered in QuickBooks, where they can be reviewed.

What this means for you:

What happens

What the integration does

What you do

A posted order is cancelled at the source

The next transfer stops with QBOL-BIZL-1007, naming the QuickBooks document and the reversal to enter. Nothing is changed in QuickBooks.

In QuickBooks, refund the whole sales receipt; for an invoice, void it if nothing was owed, or enter a credit memo, and refund any payment received. Then dismiss the error.

A posted order is refunded, partially refunded or returned at the source

The same: QBOL-BIZL-1007, nothing changed.

In QuickBooks, enter a refund receipt for a sales receipt; for an invoice, a credit memo for the amount refunded and a refund for any money returned. Then dismiss the error.

An order is cancelled before it was posted

Skipped by the filters, with no error: there is nothing to reverse.

Nothing.

An invoice is voided in QuickBooks

The next invoice poll sends the status Voided, which the default translation turns into the iPaaS.com status Cancelled. The iPaaS.com total is kept. A later update FROM iPaaS.com does not refill the invoice: the default filter skips it (its balance is 0), and without that guard the update stops with QBOL-BIZL-1008.

Cancel or follow up the order at the source if needed.

A credit memo is applied to an invoice in QuickBooks

No payment is sent TO iPaaS.com (a credit is not cash). An invoice settled by credit memos alone has the status Credited, which the default translation turns into Complete; a subscriber who treats a full credit as a cancellation can translate it to Cancelled. The amount credited is in the read-only Credit Applied field.

Nothing, unless you want Credited translated differently.

A payment is voided or deleted in QuickBooks after it reached iPaaS.com

The next invoice poll sends that payment with status Voided and amount 0.

Nothing.

  • QBOL-BIZL-1007 uses the Source Status mapping of the two transaction collections (the default templates map it). iPaaS.com retries the error until it is dismissed. To turn the check off, unmap Source Status.

  • Sales tax stays owed until the reversal is entered. A sale reversed at the source stays in QuickBooks, with its sales tax, until the refund, credit memo or void is entered there. On automated sales tax, that tax stays in the sales tax QuickBooks reports as owed for the period. Enter reversals before you file the sales tax return.

  • Month-end reconciliation. Once a month, before closing the books:

    1. In iPaaS.com, list the orders that became Refunded, Partially Refunded, Returned or Cancelled during the month. For each one that has a QuickBooks document, check that the reversal was entered in QuickBooks, then dismiss its QBOL-BIZL-1007 error.

    2. List the held orders: orders whose payments are pending or declined and that have no QuickBooks document. Follow them up at the source (capture or cancel the payment).

    3. If you post open invoices instead of holding orders (item 15), review the open invoices of cancelled orders and void them in QuickBooks.

17. Edits made in QuickBooks

What: Every sales receipt or invoice the integration writes ends its private note with a mark that starts with iPaaS.com sync, which records the line amounts it posted. Before an update, the integration compares the document's lines in QuickBooks with the mark. When a line was added, removed or repriced in QuickBooks, or the document was voided, the update stops with QBOL-BIZL-1008 naming the document, and nothing is overwritten.

Why: iPaaS.com is the source of the sale, but a bookkeeper's correction in QuickBooks should not be lost to an unchanged resend.

What this means for you:

  • To keep the QuickBooks version, dismiss the error. To replace it with the iPaaS.com version, delete the iPaaS.com sync … mark from the document's private note in QuickBooks, then resend.

  • Payments and credit memos applied in QuickBooks do not count as edits.

  • An edit that keeps every line amount (for example a changed description or item at the same amount) is not detected, and the next update overwrites it.

  • Editing the private note is safe as long as the mark stays. A document with no mark (written before this check, or whose mark was deleted) is written, and marked.

  • Customers and items have no such check: an update writes the fields it carries.

18. Lines, shipping and discounts

What:

  • QuickBooks requires each line's amount to equal quantity times unit price. When a mapped line amount differs (a line discount), the unit price is worked out from the amount.

  • A transaction's shipping amount goes in QuickBooks' shipping field when that field is turned on for sales forms, else on a line for the Shipping Item.

  • A transaction-level discount becomes one discount line for that amount. Percentage discounts are not used.

  • A transaction address's name takes the first address line; the street moves down a line.

  • A sale with no customer and no email (a walk-in sent with only a company) posts to one QuickBooks customer named Walk-in Customer (the default sales receipt template). Without a customer id, an email or a name (including the billing address name), a sale fails with QBOL-VALD-1011.

  • A line whose name belongs to a QuickBooks category or bundle, and that has a SKU, gets an item of its own named "Name (SKU)", created when Create Missing Items is on (item names are unique across all item types in QuickBooks). The next sale finds it by SKU.

  • A sale paid with several payment methods posts as an invoice paid by one QuickBooks payment per payment, each to its own deposit account (see item 14).

What this means for you: Check the totals of your first test transactions against the source system.

19. QuickBooks API usage and limits

What: Every poll and transfer reads or writes QuickBooks through iPaaS.com's Intuit app. QuickBooks allows 500 requests a minute per QuickBooks company and 10 requests a second per company and app, and applies an overall monthly allowance for data reads (polls, lookups and queries) that iPaaS.com manages for its Intuit app. When a limit is reached, QuickBooks refuses the call: the transfer fails with QBOL-EXTN-1014 and iPaaS.com retries it on its schedule. A limit reached between creating an invoice and recording its payments leaves the invoice unlinked: the retry then fails with QBOL-BIZL-1006, or, with neither a document number nor an IpaasTransactionId, can create a second invoice.

Why: QuickBooks limits how often an app can call it. These are Intuit's per-company figures at the time this documentation was written (October 2026).

What this means for you: A poll that finds nothing still makes one read per scope, so a shorter polling interval uses more of the allowance. Set polling to 15 minutes and poll no more often than you need (see the QuickBooks Online Installation Instructions). If rate-limit errors continue for hours, contact your Managed Integration Service Provider (MiSP), or iPaaS.com Support at support@ipaas.com. The integration's connection check is not repeated on every transfer.

20. No bulk initial load

What: The integration does not load existing QuickBooks records in bulk when a subscription starts. The first poll of each kind of record (customers, items, quantities, invoices, payment methods) brings in only the records changed in the last Initial Poll Days (7 by default). Records FROM iPaaS.com are sent when they are created or updated in iPaaS.com; records that already exist there are not sent until they change.

Why: Initialization is not supported in this release for any data type; changes are found by the poll scopes.

What this means for you:

  • To bring in more history TO iPaaS.com, set Initial Poll Days to the number of days you need before the first poll runs. After the first poll the setting no longer applies; see Initial Poll Days in the QuickBooks Online Connections and Settings article.

  • For a large set of existing records, either direction, use bulk sync using Postman.

21. Company ID and connection problems

What: iPaaS.com does not pass the QuickBooks company id to the integration when you authorize, so the Company ID setting must be filled. When the integration cannot connect to QuickBooks, the transfer error in iPaaS.com reads only "Unable to process transfer. Reason: Unable to connect to subscription with id ..."; the integration's own coded reason is not shown there. QBOL-AUTH-1002 and QBOL-AUTH-1003 can also appear in the transfer error itself, when QuickBooks refuses the sign-in partway through a transfer, for example soon after the app is disconnected in QuickBooks.

Why: iPaaS.com's sign-in passes the integration the authorization code but not the company id, and iPaaS.com's transfer error does not include the integration's connection message.

What this means for you:

  • Fill Company ID with the id QuickBooks shows when you press Ctrl+Alt+? (Ctrl+Option+? on a Mac) on any QuickBooks Online screen. Spaces and dashes are ignored; anything else that is not a digit fails with QBOL-AUTH-1008. After you authorize, the integration logs QBOL-AUTH-1012 as a reminder when it is blank.

  • When transfers fail with "Unable to connect to subscription", open iPaaS.com's Activity Tracker and look for the entries at the same time as the error, with the same reference id. They carry the code:

    • QBOL-AUTH-1004: fill Company ID and click Apply.

    • QBOL-AUTH-1008: Company ID is not the company id; enter the digits QuickBooks shows and click Apply.

    • QBOL-AUTH-1002 or QBOL-AUTH-1003: QuickBooks refused or lost the saved sign-in (the app was disconnected in QuickBooks, the sign-in went unused for 100 days, or it was replaced). Click Authenticate and connect the QuickBooks company again.

    • QBOL-AUTH-1001 or QBOL-AUTH-1005: contact iPaaS.com support.

    • QBOL-AUTH-1006: usually temporary; if it keeps happening, contact iPaaS.com support.

  • Then send the records that failed again.

  • Disconnecting the app in QuickBooks does not stop transfers immediately: they keep working until the current access token lapses (up to an hour).

22. Invoices are sent back TO iPaaS.com after each write

What: After the integration writes an invoice to QuickBooks, or records a payment on it, QuickBooks marks the invoice as changed. The next invoice poll then sends the invoice TO iPaaS.com with its QuickBooks status, balance, paid date and payments, even when nothing else changed. iPaaS.com treats that as an update and notifies every other subscription in your company that receives transaction updates.

Why: What an update writes to the iPaaS.com record is decided by your mappings, so the integration can't tell beforehand whether an update would change anything. This same update is also how a new invoice's QuickBooks status, balance and paid date first reach iPaaS.com.

What this means for you:

  • Your data is correct; these extra updates are expected.

  • Each one uses one QuickBooks read of the API allowance (see item 19), and shows up as a transaction update in the activity of your other subscriptions. If another subscription logs an error on these updates, the cause is in that subscription's own setup (for example its filters).

  • Don't add a filter to the Invoice TO iPaaS.com collection to skip them: it would also skip real changes, such as a payment entered in QuickBooks.

23. Customer hierarchy and product variants

What: FROM iPaaS.com, every customer is created as a top-level QuickBooks customer, and each product becomes one QuickBooks item. TO iPaaS.com, a QuickBooks sub-customer or job arrives as an ordinary customer, without its parent.

Why: QuickBooks has no product variants, and the sub-customer and job relationship is not part of this release.

What this means for you:

  • Variants are not created FROM iPaaS.com: send each variant as its own product if it needs its own QuickBooks item.

  • Keep sub-customers and jobs in QuickBooks; their parent is not shown in iPaaS.com.

24. Updates TO iPaaS.com replace the whole record

What: When a customer, customer address, product, inventory record, transaction or payment is updated TO iPaaS.com, iPaaS.com replaces the whole record. Any iPaaS.com field the collection does not map is overwritten with an empty value on every update, including a field whose mapping you remove. FROM iPaaS.com it is the other way round: an update sends only the mapped fields that have a value, and QuickBooks keeps every field the collection does not send (an empty text value is sent and clears the QuickBooks field).

Why: That is how the iPaaS.com API updates a record.

What this means for you:

  • The default templates keep the fields QuickBooks does not have by reading the current iPaaS.com value through DestinationValue (for example the product fields MSRP, Weight and Barcode, and the transaction amounts). Keep these mappings.

  • These fields are not mapped by default and are cleared on each update: a customer address's Type, an inventory record's Cost, a transaction's CompanyId, TransactionCreatedDateTime and TransactionUpdatedDateTime, and a payment's MethodInfo. To keep a value another system writes, add a Dynamic Formula mapping such as return DestinationValue != null ? DestinationValue.Cost : null;, and validate it in a staging environment.

  • Plain copies, such as a customer's FirstName, LastName and address fields, replace what another system wrote, even when the QuickBooks value is blank.

  • Each collection's description lists its own fields and formulas.

25. Closed accounting periods

What: When QuickBooks' books are closed (a closing date is set in QuickBooks), QuickBooks refuses any change the integration tries to make to a document dated on or before the closing date, and any new document dated in that period. The transfer fails with QBOL-EXTN-1001 and QuickBooks code 6210 ("Account Period Closed, Cannot Update Through Services API"). The integration does not check the closing date itself, and it does not move a document to an open date. The one exception is a new payment on an invoice in the closed period: it is recorded in the open period (below).

Why: QuickBooks protects a closed period. Its API refuses these changes and asks for them to be made on the QuickBooks website, where the person who closed the books controls them.

What this means for you:

  • The closed period stays as it was. A price change, a void or a late document dated in the closed period is refused, so nothing in that period changes.

  • Refusals are reported and retried. Each refused change appears in Dashboard / Integration Monitoring / Error Logs with QBOL-EXTN-1001 and code 6210, naming the document. iPaaS.com retries it on its schedule, and it fails the same way for as long as the period stays closed. Dismiss the error once the change is handled in QuickBooks.

  • Changes at the source after the close: a later change at the source to an invoice dated in the closed period does not reach QuickBooks. If the change matters, enter it in QuickBooks, for example as an adjustment dated in the open period.

  • Late orders: an order dated in the closed period that arrives after the close, for example a held order captured later (section 15), is not posted. Enter it in QuickBooks with a date in the open period.

  • Payments on invoices in a closed period are recorded in the open period. When the source records a payment on an invoice dated in the closed period, the integration records the payment, dated in the open period, and applies it to the invoice. The invoice itself is not changed, and the transfer succeeds. Sending the invoice again does not record the payment twice.

  • A changed invoice with a payment: if the source also changed the invoice's lines or tax, that change cannot reach the closed period. The payment is still recorded, and the transfer fails with QBOL-BIZL-1012, which names the invoice and the payment. To change the invoice, reopen the period in QuickBooks and resend, or record the adjustment in the open period; otherwise dismiss the error.

  • Credits: a credit memo dated in the open period can be applied in QuickBooks to an invoice in a closed period. The invoice then reaches iPaaS.com with the status Credited, which the default translation turns into Complete, and with no payment for the credit (section 16).

  • Closing options: subscribers who close the books with QuickBooks' warning-only option, rather than a warning and a password, should validate this behavior in a staging environment before relying on it in production.

This document covers 25 known limitations. For how each data flow works, see the QuickBooks Online mapping collection articles.

Reporting an issue

If you see behavior not covered above and suspect a bug:

  1. Capture the iPaaS.com Subscription ID, the QuickBooks record (document number or id), and the iPaaS.com error log entry (it includes Intuit's intuit_tid).

  2. Open a support ticket at https://support.ipaas.com/en/ referencing the QuickBooks Online integration.

  3. For problems on the QuickBooks side, contact Intuit support with the intuit_tid.

Related Documents

Did this answer your question?