Skip to main content

QuickBooks Online to iPaaS.com Invoice Mapping Documentation

How the status, open balance, paid date and payments of QuickBooks Online invoices are brought back to the linked iPaaS.com transactions (Update), with the invoice's payments added through its child collection.

Summary

The Update QuickBooks Online Invoice TO iPaaS.com mapping collection brings the payment state of QuickBooks Online invoices back to iPaaS.com. When an invoice that iPaaS.com sent to QuickBooks changes, the matching iPaaS.com transaction is updated with the invoice's QuickBooks status, open balance and paid date, and the payments applied to the invoice in QuickBooks are added to the transaction through the child collection Add QuickBooks Online Payment TO iPaaS.com.

The collection only updates invoices that are already linked to an iPaaS.com transaction (normally because Add/Update QuickBooks Online Invoice FROM iPaaS.com created them); it never creates a transaction. Only invoices are sent TO iPaaS.com: QuickBooks sales receipts are not. The default mappings read the existing iPaaS.com transaction through DestinationValue and write the customer, email, amounts, transaction number and type back unchanged, so QuickBooks only adds what it owns: status, balance, paid date and payments. The QuickBooks status replaces the iPaaS.com status on every update.

ID Format

  • Manual Sync ID: Invoice- followed by the QuickBooks invoice id, for example Invoice-1045. A bare id such as 1045 is also read as an invoice id.

  • External ID saved after sync: Invoice-{QuickBooks invoice id}, for example Invoice-1045. This is the external ID the invoice FROM iPaaS.com collection saved when it created the QuickBooks invoice. iPaaS.com keeps it in an external-ID record for this subscription, not on a transaction field, and uses it to route each QuickBooks invoice to its iPaaS.com transaction.

  • Payment records: each payment is linked by the invoice's external ID and the QuickBooks payment id, for example Invoice-1045|1046, so it is added once and later transfers update the same payment instead of adding it again.

Deleted Record Support

Not supported. This collection never removes an iPaaS.com transaction or payment. An invoice voided in QuickBooks is sent with the status Voided, which the default translation turns into Cancelled; its iPaaS.com total is kept. A payment voided or deleted in QuickBooks after it reached iPaaS.com stays on the transaction with the status Voided and an amount of 0, because iPaaS.com does not remove a payment.

Mapping Collection Status

  • Status: Enabled (the parent and its child).

  • Trigger events: the invoice/poll scope (scheduled polling), and qbo.invoice.updated.v1 for Manual Sync. Intuit webhooks are not offered in this release. The child collection has no trigger of its own: it runs as part of each transfer of the parent.

Duplicate or Conflicting Mappings

This collection updates iPaaS.com transactions that other collections send to QuickBooks:

  • Add/Update QuickBooks Online Invoice FROM iPaaS.com: creates and updates the QuickBooks invoices this collection reads back. Every invoice iPaaS.com creates or updates in QuickBooks is read back by the next poll, and the template's keep mappings make sure that read-back changes only the status, balance, paid date and payments, apart from the unmapped fields listed under iPaaS.com Caveats.

  • Add QuickBooks Online Sales Receipt FROM iPaaS.com: paid orders become QuickBooks sales receipts, which are never sent TO iPaaS.com, so they are not updated here. A sale paid with two or more payment methods is posted by that collection as an invoice paid by one QuickBooks payment per payment; that invoice is linked to its iPaaS.com transaction, so it is read back here like any other invoice.

  • Add QuickBooks Online Payment FROM iPaaS.com: records the payments of an iPaaS.com transaction in QuickBooks against its invoice. A payment recorded that way is linked to its iPaaS.com payment, so when the invoice comes back through the child collection the payment is not added again; it can be updated with the child collection's mapped values.

Important: before enabling this collection alongside the FROM iPaaS.com transaction collections, review both directions' filters and mappings so that each field has one source of truth: iPaaS.com (or the system that sends orders to it) for the order's content, and QuickBooks for payment status, balance and payments recorded there. Do not add mappings here that write order content from QuickBooks back over iPaaS.com values. Because the child collection updates payments already on the transaction, a payment that started in iPaaS.com can come back with QuickBooks values: the mapped description, the status Completed, and the translation of the QuickBooks method name (a payment iPaaS.com sent as CRCARD is recorded in QuickBooks as Visa, which comes back as VISA). Subscribers or their MiSP should validate in a staging environment how such payments look after the invoice is read back, before relying on it in production.

Collision handling does not apply to this collection, and the default template does not set a Collision Handling Method. The collection never creates a transaction: an invoice reaches iPaaS.com only when it is already linked by its external ID, and an invoice with no linked iPaaS.com transaction (for example one created directly in QuickBooks) is not transferred.

Supported Child Collections

  • Add QuickBooks Online Payment TO iPaaS.com: the payments applied to the invoice in QuickBooks, added to the iPaaS.com transaction. Although the collection is named Add, its sync type is Add/Update: a payment already on the transaction is updated with the mapped values when the invoice is transferred again. When one QuickBooks payment pays several invoices, it is added to each invoice's transaction with the amount applied to that invoice.

System Caveats

QuickBooks Online Caveats

  • Status of a zero-total invoice: QuickBooks treats an invoice as paid only when it has a total above zero and nothing left to pay, so an invoice for 0.00 that was not voided stays Awaiting Payment in iPaaS.com.

  • Voids: QuickBooks has no void flag on an invoice: a void sets its total and balance to 0 and its private note to "Voided". The integration reads an invoice with a total and balance of 0 and a private note that starts with "Voided" as voided.

  • Credit memos are not payments: QuickBooks applies a credit memo to an invoice as a payment with no cash. A QuickBooks payment that only applies a credit is left out, a payment that combines cash and a credit keeps only its cash (shared across its invoices in proportion), and the credit is counted in the read-only Credit Applied field. An invoice settled by credit memos alone has the status Credited.

  • Payments are only read: this integration never edits or deletes QuickBooks payments. A payment moved to another invoice in QuickBooks is left as it is on this transaction.

  • Payments without a method: a payment entered in QuickBooks without a payment method is given the method None, which the default translation turns into Other.

  • Rate limits: QuickBooks allows 500 requests a minute and 10 requests a second per company. Each invoice transfer reads the invoice, each of its payments and the name of each payment method they use, plus one more read for a payment that reached iPaaS.com and is no longer applied to the invoice. A poll that finds nothing makes one request. If QuickBooks limits the rate, iPaaS.com holds the transfer and retries it after a minute. If rate-limit errors continue for hours, QuickBooks' monthly limit for the iPaaS.com app may have been reached: contact your MiSP or iPaaS.com Support (see QuickBooks Online Known Limitations).

iPaaS.com Caveats

  • Linked transactions only: an invoice reaches iPaaS.com only when its transaction is linked by the external ID Invoice-{id}. Invoices created directly in QuickBooks, or linked to nothing, are not transferred.

  • Status replaces the iPaaS.com status: the translated QuickBooks status replaces the iPaaS.com status on every update, including an order that was Complete at the source. Open, part-paid and overdue invoices all become Awaiting Payment; compare QuickBooks Balance with the transaction Total to tell them apart.

  • Paid orders shown as Awaiting Payment: this collection keeps iPaaS.com's own tax and total, so 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 in QuickBooks Balance and no QuickBooks Paid Date, and no error is raised. On a company with automated sales tax, keep TaxTotal mapped in Add/Update QuickBooks Online Invoice FROM iPaaS.com for orders paid at the source, and check QuickBooks Balance, not only the status, before acting on an order.

  • Payment methods must translate: every payment method used on QuickBooks payments must have a row in the translation QuickBooks Online Payment Method TO iPaaS.com, and its iPaaS.com value must exist as an iPaaS.com payment method; otherwise the whole invoice update (status, balance and every payment) is refused.

  • Whole-record updates: an update TO iPaaS.com replaces the whole transaction. The default template keeps SystemId, TransactionNumber, Type, CustomerId, EmailAddress, Subtotal, TaxAmount, ShippingAmount, DiscountAmount, Total and TotalQty through DestinationValue; keep these mappings, because removing one clears that field on every invoice update. CompanyId, TransactionCreatedDateTime and TransactionUpdatedDateTime are not mapped and are overwritten with empty values on each update. To keep one, add a Dynamic Formula mapping that carries the existing value forward, for example return DestinationValue != null ? DestinationValue.CompanyId : null; mapped to CompanyId. On payments, MethodInfo is not mapped and is cleared each time the invoice is transferred again; return DestinationValue != null ? DestinationValue.MethodInfo : null; keeps it, and the same pattern keeps an existing Method or Description on payments that started in iPaaS.com. This collection sends no lines, addresses, taxes, notes or tracking for the transaction; subscribers or their MiSP should validate in a staging environment that an invoice update leaves those parts of the transaction as they were, and validate any added mapping, before relying on it in production.

  • Retries: iPaaS.com retries every errored transfer automatically on a growing schedule, so a transfer that cannot succeed fails again until the cause (for example a missing payment-method translation row) is fixed.

Prerequisite Handling

None. This collection sends no prerequisite records: the iPaaS.com transaction already exists, and its customer is kept unchanged. Payment methods are not created by this collection; each QuickBooks method is translated to an iPaaS.com payment method that must already exist (see Payment Method Translation Values).

Setup Requirements

iPaaS.com Configuration

  1. Automatic transfers do not start by themselves. In Dashboard / Integration Monitoring / Events, add a polling event for this subscription and the invoice/poll scope, and set it to run every 15 minutes (see Events). No invoices are transferred TO iPaaS.com until that polling event exists. The child collection needs no setup of its own.

  2. Make sure the Transaction custom fields QuickBooks Balance and QuickBooks Paid Date exist; the default template brings them with it. If they are missing, create them as Transaction custom fields with exactly these names before the first invoice update.

  3. Make sure every iPaaS.com value in the translation QuickBooks Online Payment Method TO iPaaS.com exists as an iPaaS.com payment method, and add a row for every other payment method your QuickBooks company uses on payments. Subscribers or their MiSP can bring QuickBooks' method names into iPaaS.com with Add/Update QuickBooks Online Payment Method TO iPaaS.com and pick from them when building the translation.

Initialization is not supported. The first poll looks back only the number of days in the Initial Poll Days subscription setting (7 when blank). That one setting applies to the first poll of every collection that has not polled yet (customers, items, inventory, invoices and payment methods), so raising it also widens those first polls. To bring older linked invoices up to date, raise it only when that is intended for every first poll, or transfer each older invoice with Manual Sync (for example Invoice-1045); the invoice's payments are transferred with it.

QuickBooks Online Configuration

Nothing beyond the connection. To bring a QuickBooks sales form custom field back with the invoice, turn it on in QuickBooks' sales form custom field settings; custom fields that are turned on and have a value on the invoice arrive under their QuickBooks names, for example P.O. Number, and subscribers or their MiSP can map one to an iPaaS.com Transaction custom field. Validate a new custom field mapping in a staging environment before relying on it in production.

Integration Flow

  1. The invoice/poll scope asks QuickBooks for invoices whose last-updated time is later than the previous poll. Applying a payment to an invoice in QuickBooks changes the invoice's last-updated time, so new payments are picked up by the next poll. Manual Sync starts at the next step with the id you enter.

  2. The integration reads the invoice, every payment linked to it, and the name of each payment method those payments use. A payment without a payment method is given the method None. Payments that only apply a credit memo are left out, a payment that combines cash and a credit keeps only its cash, and the credit is counted in Credit Applied.

  3. The integration reads the payments already on the linked iPaaS.com transaction. A payment that reached iPaaS.com from this invoice but is no longer applied to it, because it was voided or deleted in QuickBooks, is sent again with the status Voided and an amount of 0. A payment moved to another invoice is left as it is.

  4. The invoice's status is worked out from its total, open balance, due date, credits and private note: Paid, PartiallyPaid, Overdue, Open, Voided or Credited (see Invoice Status Translation Values). The paid date is the date of the latest payment once the balance is 0, and blank while a balance is open.

  5. The filter keeps every record whose transaction type is Invoice.

  6. If the invoice is linked to an iPaaS.com transaction, iPaaS.com updates the transaction with the mapped values. An invoice with no linked transaction is not transferred.

  7. The child collection adds each payment to the transaction, or updates the payment already linked to it.

Mappings

Update QuickBooks Online Invoice TO iPaaS.com

iPaaS.com data type: Transaction

Mapping Filter

// Every invoice (only invoices already linked to an iPaaS.com transaction are updated).
return TransactionType == "Invoice";

Filter Description. Every QuickBooks record whose TransactionType is Invoice passes. Only invoices reach this collection, so in practice every changed invoice passes the filter; the transfer then updates only invoices already linked to an iPaaS.com transaction. Nothing is skipped by the filter, so it raises no error.

Mapping Type

Source Field (QuickBooks Online)

Destination Field (iPaaS.com)

Description

Field

PaidDate

QuickBooks Paid Date

Recommended. The date the invoice was paid in full in QuickBooks (yyyy-MM-dd, for example 2026-10-14): the date of the latest payment once the balance is 0. It stays empty while a balance is open, including while the invoice is part-paid, so a date here means the invoice is paid. Written to the Transaction custom field QuickBooks Paid Date.

Field

Balance

QuickBooks Balance

Recommended. The invoice's open balance in QuickBooks, for example 20.00 for a 30.00 invoice with a 10.00 payment, and 0.00 when paid in full. Compared with the transaction Total, it shows how much is still owed, which the status cannot. Written to the Transaction custom field QuickBooks Balance.

Dynamic Formula

return DestinationValue != null ? DestinationValue.SystemId : null;

SystemId

Required. Keeps the system id of the iPaaS.com transaction. Do not remove or change this mapping.

Dynamic Formula

return DestinationValue != null ? DestinationValue.TransactionNumber : DocNumber;

TransactionNumber

Required. Keeps the iPaaS.com transaction number; the QuickBooks invoice number is used only when the existing iPaaS.com transaction cannot be read. Keep this mapping: the QuickBooks invoice number can be a shortened form of the order number (QuickBooks allows 21 characters).

Dynamic Formula

return DestinationValue != null ? DestinationValue.CustomerId : null;

CustomerId

Keeps the customer already on the iPaaS.com transaction, so the QuickBooks invoice never changes which customer it belongs to. At least one of CustomerId, CompanyId or EmailAddress is required. Keep this mapping: removing it clears the customer on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.Type : "Invoice";

Type

Required. Keeps the iPaaS.com transaction type (an order sent to QuickBooks on terms stays an order); Invoice is used only when the existing transaction cannot be read. Keep this mapping.

Translation

Status (translation QuickBooks Online Invoice Status TO iPaaS.com)

Status

Required. Translates the QuickBooks invoice status into the iPaaS.com transaction status (see Invoice Status Translation Values below). Keep all six translation rows: a status with no row arrives blank and the update is refused.

Dynamic Formula

return DestinationValue != null ? DestinationValue.EmailAddress : CustomerEmail;

EmailAddress

Keeps the email address already on the iPaaS.com transaction; the invoice's QuickBooks billing email is used only when the existing transaction cannot be read. At least one of CustomerId, CompanyId or EmailAddress is required. Keep this mapping.

Dynamic Formula

return DestinationValue != null ? DestinationValue.DiscountAmount : null;

DiscountAmount

Keeps the discount amount already on the iPaaS.com transaction. Optional, but keep this mapping: removing it clears the discount on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.TaxAmount : TaxTotal;

TaxAmount

Keeps the tax amount already on the iPaaS.com transaction; the QuickBooks tax total is used only when the existing transaction cannot be read. Optional, but keep this mapping: removing it clears the tax amount on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.ShippingAmount : null;

ShippingAmount

Keeps the shipping amount already on the iPaaS.com transaction. Optional, but keep this mapping: removing it clears the shipping amount on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.Subtotal : null;

Subtotal

Keeps the subtotal already on the iPaaS.com transaction. Optional, but keep this mapping: removing it clears the subtotal on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.Total : TotalAmount;

Total

Keeps the total already on the iPaaS.com transaction; the QuickBooks invoice total is used only when the existing transaction cannot be read. Optional, but keep this mapping: removing it clears the total on every update.

Dynamic Formula

return DestinationValue != null ? DestinationValue.TotalQty : null;

TotalQty

Keeps the total quantity already on the iPaaS.com transaction. Optional, but keep this mapping: removing it clears the total quantity on every update.

The read-only Credit Applied field holds the total of the credit memos applied to the invoice in QuickBooks. It is not mapped in the default template; subscribers or their MiSP who want it can map it to a Transaction custom field created for it.

Add QuickBooks Online Payment TO iPaaS.com (child)

iPaaS.com data type: Transaction Payment

This collection has no mapping filter. Every payment the parent invoice carries is processed.

Mapping Type

Source Field (QuickBooks Online)

Destination Field (iPaaS.com)

Description

Translation

Method (translation QuickBooks Online Payment Method TO iPaaS.com)

Method

Required. Translates the QuickBooks payment method name into an iPaaS.com payment method (see Payment Method Translation Values below). A payment without a method is refused, and the refusal stops the whole invoice update, not only this payment.

Dynamic Formula

return "QuickBooks payment " + PaymentId + (PaymentDate != null ? " on " + PaymentDate : "") + (Reference != null ? " ref " + Reference : "");

Description

Recommended. Builds a description from the QuickBooks payment id, the payment date and the reference number (such as a check number) when present, for example QuickBooks payment 1046 on 2026-01-15 ref 1042, so anyone reading the transaction can find the payment in QuickBooks.

Field

Amount

Amount

Treat as required for meaningful payment data. The amount of the payment applied to this invoice: a 150.00 payment split 100.00 and 50.00 arrives on the first invoice's transaction as 100.00. Only cash is sent, and a payment voided or deleted in QuickBooks after it reached iPaaS.com is sent with 0.

Field

Status

Status

Recommended. Completed for a payment applied to the invoice, or Voided for a payment that reached iPaaS.com and was later voided or deleted in QuickBooks (its amount is then 0 and its method is kept). To use other words, replace this mapping with a Dynamic Formula that turns these two values into yours.

Invoice Status Translation Values

The integration reports one of six statuses, worked out from the invoice's total, balance, due date, credits and private note:

  • Paid: nothing left to pay.

  • PartiallyPaid: some, not all, paid.

  • Overdue: unpaid, and its due date is before today's date in UTC; an invoice due today is Open until the UTC date passes it.

  • Open: unpaid and not overdue.

  • Voided: voided in QuickBooks (total and balance 0, and a private note that starts with "Voided").

  • Credited: settled by credit memos, with no payment.

The Status mapping uses the translation QuickBooks Online Invoice Status TO iPaaS.com, which ships with these rows:

QuickBooks status

iPaaS.com status

PartiallyPaid

Awaiting Payment

Open

Awaiting Payment

Paid

Complete

Overdue

Awaiting Payment

Voided

Cancelled

Credited

Complete

An invoice settled by credit memos with no payment becomes Complete, because nothing is left to pay; subscribers or their MiSP who treat a full credit as a cancellation can change the Credited row to Cancelled.

Payment Method Translation Values

The Method mapping of the child collection uses the translation QuickBooks Online Payment Method TO iPaaS.com, which ships with these rows:

QuickBooks payment method

iPaaS.com payment method

Visa

VISA

Check

CHECK

Cash

CASH

American Express

AMEX

MasterCard

MASTERCARD

Discover

DISCOVER

Diners Club

CRCARD

None

Other

Every value in the right-hand column must exist as an iPaaS.com payment method, and every payment method your QuickBooks company uses on payments (for example a custom method named Venmo) must have a row. A QuickBooks method with no row arrives blank and the whole invoice update is refused. None is what a payment entered without a method arrives as. The translation does not round-trip with the FROM iPaaS.com payment-method translation: Diners Club arrives here as CRCARD, while CRCARD sent FROM iPaaS.com is recorded in QuickBooks as Visa.

Error Handling

Errors appear in Dashboard / Integration Monitoring / Error Logs, and iPaaS.com retries an errored transfer automatically on a growing schedule. An invoice with no linked iPaaS.com transaction is not transferred and raises no error. A refused payment stops its whole invoice update.

  • VALD-1024 - Required property 'status' not found (from iPaaS.com): the QuickBooks status has no row in QuickBooks Online Invoice Status TO iPaaS.com, or the Status mapping was removed. Restore the row or the mapping. iPaaS.com refuses a payment without a method in the same way when a QuickBooks payment method has no row in QuickBooks Online Payment Method TO iPaaS.com: add the row.

  • VALD-1036 - Value (VISA) provided for Payment Method is not valid. (from iPaaS.com): the translated payment method does not exist in iPaaS.com. Create that iPaaS.com payment method, or change the translation row to one that exists.

  • QBOL-EXTN-1013: QuickBooks limited the request rate; iPaaS.com retries after a minute.

  • Connection errors (QBOL-AUTH codes) are covered in QuickBooks Online Error Messages.

If an error keeps returning after the translations and mappings are fixed, contact your MiSP or iPaaS.com Support.

Testing & Validation

  1. Send an order on terms to QuickBooks through Add/Update QuickBooks Online Invoice FROM iPaaS.com, then transfer the invoice with Manual Sync (for example Invoice-1045) or wait for the next poll. Confirm the iPaaS.com transaction keeps its transaction number, customer and totals, has the status Awaiting Payment, and QuickBooks Balance equals the invoice total.

  2. Apply a partial payment to the invoice in QuickBooks and transfer it again. Confirm the status stays Awaiting Payment, QuickBooks Balance shows the amount still owed, QuickBooks Paid Date is empty, and the payment is on the transaction with its amount, translated method, status Completed and a description such as QuickBooks payment 1046 on 2026-01-15.

  3. Pay the rest and transfer it again. Confirm the status is Complete, QuickBooks Balance is 0.00, QuickBooks Paid Date is the latest payment's date, and the first payment was not added a second time.

  4. Void one of the payments in QuickBooks and transfer the invoice again. Confirm the payment stays on the transaction with the status Voided and an amount of 0.

  5. Enter a payment with a method that has no translation row (for example Venmo) and transfer the invoice. Confirm the update is refused in Dashboard / Integration Monitoring / Error Logs; add the row and confirm the retry succeeds.

  6. Void another invoice in QuickBooks and transfer it. Confirm its transaction becomes Cancelled and keeps its iPaaS.com total.

  7. Create an invoice directly in QuickBooks and transfer it. Confirm no iPaaS.com transaction is created.

Additional Notes

  • Out of scope: QuickBooks sales receipts (not sent TO iPaaS.com); creating iPaaS.com transactions from invoices entered in QuickBooks; taking an invoice's lines, addresses, taxes or amounts from QuickBooks; sending credit memos as payments.

  • Known limitations: changes arrive with the next poll, so with a 15-minute polling event a payment applied in QuickBooks can take up to 15 minutes to appear; paid orders can come back as Awaiting Payment when QuickBooks keeps an open balance; an invoice turns Overdue by the UTC date, so in US time zones a few hours before its due date ends locally; payments voided or deleted in QuickBooks stay on the transaction as Voided with 0; every invoice the integration writes is read back by the next poll. See QuickBooks Online Known Limitations.

Related Documents

Related Mapping Documentation

Did this answer your question?