Skip to content

The compatibility contract

We deliver the most QuickBooks Online compatibility we can, and we're honest about the rest. Reads are almost entirely compatible; writes are where QuickBooks Desktop's quirks show up. Every partial or unsupported case below comes with the exact fix.

Legend — Full: works unchanged · Partial: common cases work, see notes · None: not supported, returns an error code.

At a glance

EntityReadWriteHeadline difference
BillFullFullAccount vs. item expense lines map cleanly
CustomerFullFullSub-customer maps to Desktop Customer:Job
InvoiceFullPartialLine model, tax, and discount handling
ItemPartialNoneOne Item becomes several Desktop item types
SalesReceiptFullPartialSame as Invoice + deposit account
VendorFullFull1099 / tax-ID field naming only

Bill

Read: Full · Write: Full — Account vs. item expense lines map cleanly

QBO fieldSupportNotes
LineFullAccount-based and item-based expense lines; other line types return UNSUPPORTED_BY_DESKTOP. Sparse updates cannot modify lines/memo/tax yet.
TotalAmtFullRead-only, computed by Desktop as AmountDue.
BalanceFullRead-only, as in QBO.

Everything else listed as full works unchanged.

Full fields
  • VendorRef
  • TxnDate
  • DueDate
  • DocNumber
  • PrivateNote

Customer

Read: Full · Write: Full — Sub-customer maps to Desktop Customer:Job

QBO fieldSupportNotes
ParentRefFullBecomes a Desktop Job under the parent; FullName is colon-delimited.
BalanceFullRead-only, as in QBO.
FullyQualifiedNameFullRead-only, derived by Desktop.
JobFullRead-only, derived by Desktop.
CurrencyRefPartialAccepted and ignored — Desktop manages this itself; multi-currency mapping lands later.
PreferredPaymentMethodRefPartialAccepted and ignored — Desktop manages this itself; multi-currency mapping lands later.
PreferredDeliveryMethodNoneUNSUPPORTED_BY_DESKTOP — Desktop has no delivery-method preference. Remove the field from your payload.
TaxableNoneUNSUPPORTED_BY_DESKTOP — Desktop customers have no taxable flag; set tax codes on transactions instead.

Everything else listed as full works unchanged.

Full fields
  • DisplayName
  • CompanyName
  • Title
  • GivenName
  • MiddleName
  • FamilyName
  • PrimaryEmailAddr
  • PrimaryPhone
  • AlternatePhone
  • Fax
  • BillAddr
  • ShipAddr
  • Notes
  • Active

Invoice

Read: Full · Write: Partial — Line model, tax, and discount handling

QBO fieldSupportNotes
CustomerMemoFullMaps to Desktop CustomerMsgRef by FullName; the message must already exist as a Desktop customer message. Sparse updates cannot modify lines/memo/tax yet.
LinePartialSalesItemLineDetail, GroupLineDetail, and DescriptionOnly map cleanly; DiscountLineDetail requires a Desktop discount item referenced via DiscountLineDetail.ItemRef; other DetailTypes (e.g. SubTotalLineDetail) return UNSUPPORTED_BY_DESKTOP. Group lines read back as GroupLineDetail without nested line expansion; Desktop discount lines read back as regular item lines referencing the discount item. Sparse updates cannot modify lines/memo/tax yet.
TxnTaxDetailPartialSet TxnTaxCodeRef explicitly; computed TotalTax alone is rejected. Sparse updates cannot modify lines/memo/tax yet.
LinkedTxnPartialRead-only; reflects applied payments, ignored on write — same as QBO.
TotalAmtFullRead-only, computed by Desktop as Subtotal + SalesTaxTotal.
BalanceFullRead-only, computed by Desktop as BalanceRemaining.

Everything else listed as full works unchanged.

Full fields
  • CustomerRef
  • TxnDate
  • DocNumber
  • BillAddr
  • ShipAddr
  • PONumber
  • SalesTermRef
  • DueDate
  • PrivateNote

Not supported

  • TxnTaxDetail.TotalTax supplied without TxnTaxCodeRefUNSUPPORTED_BY_DESKTOP: Desktop cannot honor a computed tax total. Set TxnTaxDetail.TxnTaxCodeRef or per-line TaxCodeRef explicitly. See COMPATIBILITY.md.
  • Line.DiscountLineDetail without an ItemRef (bare-percentage or amount-off discounts)MISSING_REQUIRED_DESKTOP_ITEM: Desktop discounts are items. Create a discount item in the company file and reference it as DiscountLineDetail.ItemRef. See COMPATIBILITY.md.
  • Nested/grouped line types other than SalesItemLineDetail, DiscountLineDetail, GroupLineDetail, and DescriptionOnly (e.g. SubTotalLineDetail)UNSUPPORTED_BY_DESKTOP: These line types do not map to QuickBooks Desktop sales transactions. Remove them or flatten to a supported DetailType. See COMPATIBILITY.md.

Item

Read: Partial · Write: None — One Item becomes several Desktop item types

QBO fieldSupportNotes
FullyQualifiedNameFullRead-only in this release.
ActiveFullRead-only in this release.
TypePartialService, NonInventory, Inventory, Group map; other Desktop types are omitted from query results.
DescriptionFullRead-only in this release.
UnitPriceFullRead-only in this release.
SkuFullRead-only in this release.
QtyOnHandFullRead-only in this release.
IncomeAccountRefFullRead-only in this release.
ExpenseAccountRefFullRead-only in this release.
AssetAccountRefFullRead-only in this release.

Everything else listed as full works unchanged.

Full fields
  • Name

Not supported

  • Item types other than Service, NonInventory, Inventory, and Group (assemblies, discounts, sales tax items, payment items, fixed assets, other charge, subtotal)UNSUPPORTED_BY_DESKTOP: Omitted from query results; a direct get by id on one of these Desktop items returns a 422 UNSUPPORTED_BY_DESKTOP fault.
  • Item create/updateUNSUPPORTED_BY_DESKTOP: Lands in a later release.

SalesReceipt

Read: Full · Write: Partial — Same as Invoice + deposit account

QBO fieldSupportNotes
CustomerMemoFullMaps to Desktop CustomerMsgRef by FullName; the message must already exist as a Desktop customer message. Sparse updates cannot modify lines/memo/tax yet.
LinePartialSalesItemLineDetail, GroupLineDetail, and DescriptionOnly map cleanly; DiscountLineDetail requires a Desktop discount item referenced via DiscountLineDetail.ItemRef; other DetailTypes (e.g. SubTotalLineDetail) return UNSUPPORTED_BY_DESKTOP. Group lines read back as GroupLineDetail without nested line expansion; Desktop discount lines read back as regular item lines referencing the discount item. Sparse updates cannot modify lines/memo/tax yet.
TxnTaxDetailPartialSet TxnTaxCodeRef explicitly; computed TotalTax alone is rejected. Sparse updates cannot modify lines/memo/tax yet.
LinkedTxnPartialRead-only; reflects applied payments, ignored on write — same as QBO.
TotalAmtFullRead-only; Desktop computes it.

Everything else listed as full works unchanged.

Full fields
  • CustomerRef
  • TxnDate
  • DocNumber
  • BillAddr
  • PrivateNote
  • DepositToAccountRef

Not supported

  • TxnTaxDetail.TotalTax supplied without TxnTaxCodeRefUNSUPPORTED_BY_DESKTOP: Desktop cannot honor a computed tax total. Set TxnTaxDetail.TxnTaxCodeRef or per-line TaxCodeRef explicitly. See COMPATIBILITY.md.

Vendor

Read: Full · Write: Full — 1099 / tax-ID field naming only

QBO fieldSupportNotes
TaxIdentifierFullMaps to Desktop VendorTaxIdent.
Vendor1099FullMaps to Desktop IsVendorEligibleFor1099.
BalanceFullRead-only, as in QBO.

Everything else listed as full works unchanged.

Full fields
  • DisplayName
  • Active
  • CompanyName
  • Title
  • GivenName
  • MiddleName
  • FamilyName
  • BillAddr
  • PrimaryPhone
  • AlternatePhone
  • Fax
  • PrimaryEmailAddr
  • AcctNum

TenkeyBridge is an independent product, not affiliated with, endorsed by, or sponsored by Intuit Inc. QuickBooks, QuickBooks Online, and QuickBooks Desktop are trademarks of Intuit Inc., used only to describe compatibility.

TenkeyBridge is an independent product, not affiliated with, endorsed by, or sponsored by Intuit Inc. QuickBooks, QuickBooks Online, and QuickBooks Desktop are trademarks of Intuit Inc., used only to describe compatibility.