Skip to main content

iPaaS.com to QuickBooks Online Sales Receipt Mapping Documentation

How iPaaS.com orders paid in full by captured payments are posted to QuickBooks Online as sales receipts (or recorded on their own invoice when paid later or split across payment methods), with their lines, addresses and payment method.

Summary

The Add QuickBooks Online Sales Receipt FROM iPaaS.com mapping collection posts iPaaS.com orders that were paid in full at the time of sale to QuickBooks Online as sales receipts, one receipt per sale. Only captured payments count: payments whose iPaaS.com Status is Completed. Each receipt carries the order's product lines (through the child collection Add QuickBooks Online Sales Receipt Line FROM iPaaS.com), its billing and shipping addresses (Add QuickBooks Online Sales Receipt Address FROM iPaaS.com) and its payment method (Add QuickBooks Online Sales Receipt Payment FROM iPaaS.com). The integration also adds a shipping line and an order-level discount line, keeps the order's tax total, resolves or creates the QuickBooks customer, and matches or creates the items on the lines.

The collection name begins with "Add", but its sync type is Add/Update. Two kinds of paid order are not posted as a sales receipt:

  • Paid later: an order sold on terms or part-paid is posted as an invoice by Add/Update QuickBooks Online Invoice FROM iPaaS.com. When it is paid in full later and reaches this collection, its payments are recorded on the invoice the order was itself posted as, instead of posting a second sale.

  • Split tender: a sale paid with two or more payment methods is posted as an invoice paid by one QuickBooks payment per payment, so each tender lands in its own deposit.

The integration never emails the receipt to the customer and never charges a card: it records the payment method that iPaaS.com reports, and QuickBooks Payments is not used.

ID Format

  • Manual Sync ID: the iPaaS.com transaction ID, a number such as 100387.

  • External ID saved after sync: the QuickBooks record type and id, for example SalesReceipt-1050. This is the primary match: later transfers of the same order update that receipt. A paid-later order and a split-tender sale are linked to their invoice instead (for example Invoice-1045), and later transfers of the order update the invoice. A payment recorded on an invoice is linked as the invoice's external ID and the QuickBooks payment id, for example Invoice-1045|1046. Lines and addresses have no link of their own.

  • Fallback matches: the default template maps the iPaaS.com order number to DocNumber (shown on the receipt, and used on a new order to look for an existing receipt, and for an invoice with the same number and customer) and the iPaaS.com transaction Id to IpaasTransactionId (used to find the invoice a paid-later order was posted as). A blank document number turns the existing-receipt check off.

Deleted Record Support

Not supported. Deleting a transaction in iPaaS.com is not sent to QuickBooks, and the integration never voids or reverses a QuickBooks sales receipt.

Reversals at the source. When an order already posted as a sales receipt becomes Cancelled, Refunded, Partially Refunded or Returned at the source, the filter lets the order through and the transfer stops with QBOL-BIZL-1007, naming the QuickBooks receipt and the reversal to enter (a refund receipt for the money returned; for a cancelled sale, a refund of the whole receipt). Nothing is changed in QuickBooks. Enter the reversal in QuickBooks, then dismiss the error; iPaaS.com retries it until it is dismissed. An order cancelled, refunded or returned before it was ever posted is skipped, as there is nothing to reverse. Subscribers who do not want the check can unmap SourceStatus and remove the reversal clause from the filter (the part that begins || (DestinationValue != null and lists the four statuses).

Mapping Collection Status

  • Status: Enabled.

  • Trigger events: the iPaaS.com transaction/created and transaction/updated events, once subscribed under Outbound Data Flows. Whether a transfer creates or updates a QuickBooks record depends on whether the order is already linked to one, not on which event fired.

Duplicate or Conflicting Mappings

These collections also write or read the same QuickBooks documents:

  • Add/Update QuickBooks Online Invoice FROM iPaaS.com: also writes iPaaS.com orders to QuickBooks, as invoices. The two filters split orders by their captured payments, so each order goes to one collection at a time: paid in full to this collection; sold on terms or part-paid to the invoice collection; no captured payment to neither (held). An order posted as an invoice and then paid in full is applied to that invoice.

  • Update QuickBooks Online Invoice TO iPaaS.com: sends invoice status, balance and payments back to iPaaS.com. Sales receipts are not sent TO iPaaS.com.

Important: Review both transaction filters together before enabling either collection, and keep iPaaS.com as the source of truth for orders. The shipped filter skips posted sales receipts, so a change made to the order at the source after posting does not reach QuickBooks: correct a posted sale in QuickBooks with a refund receipt or credit memo, not by changing and re-sending the order. Fields this collection does not send are left as they are in QuickBooks.

Paid-sale guard. The shipped filter checks the QuickBooks record an order is already linked to (DestinationValue: empty on the first transfer, then the linked receipt or invoice with its type and open Balance):

  • New sales post: the first transfer of an order always passes the guard.

  • Posted receipts are not rewritten: once an order is linked to a sales receipt, every later transfer is skipped, including line, price and address changes. For example, an order corrected at the source from 40.00 to 30.00 leaves the 40.00 receipt as it is. The one exception is a reversal at the source, which is reported (see Deleted Record Support).

  • Paid-later payments are recorded while the invoice is open: an order linked to an invoice passes while the invoice has an open balance, so a payment added to the order later is recorded on it. A part-paid invoice can therefore still be updated, including its lines.

  • Fully paid invoices are skipped: once the invoice's balance is zero, every later transfer of the order is skipped.

  • The skip is silent: a skipped transfer does not appear in Dashboard / Integration Monitoring / Error Logs.

  • Changing the guard: subscribers or their MiSP can change or remove it. Without it, every update rewrites the posted receipt and replaces all of its lines. Validate the change in a staging environment before relying on it in production.

Edits made in QuickBooks. Every write of a sales receipt (or of an invoice reached through this collection) ends its private note with a mark that starts with iPaaS.com sync, which records the line amounts the integration posted. Before an update, the integration compares the document's lines in QuickBooks with that mark. When a line was added, removed or repriced in QuickBooks, or the document was voided, the transfer stops with QBOL-BIZL-1008 naming the document, and nothing is overwritten. 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 and send the order again. Payments and credits 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.

Collision handling. The Collision Handling Method setting is on this mapping collection's settings in iPaaS.com. The default template ships with no method set, which behaves as Error. When a new order's document number matches an existing QuickBooks sales receipt:

  • Error: the transfer fails with QBOL-BIZL-1006, naming the existing receipt. Link the receipt or choose another method.

  • Remap and Link: the existing receipt is linked to the order and then rewritten with the order's lines and values.

  • Update and Link: the existing receipt is rewritten with the order's lines and values and linked to the order.

  • Update and No Link: the existing receipt is rewritten, but no link is saved, so the next transfer of the order runs this check again.

Because every method other than Error rewrites the matched receipt, check for document-number collisions (for example orders whose numbers share the same last 21 characters) before choosing one.

The same method decides when a new paid order has the document number and customer of an existing QuickBooks invoice that is not the invoice the order was posted as (for example an invoice entered by hand, or numbered by QuickBooks):

  • Error: the transfer fails with QBOL-BIZL-1006 naming the invoice; nothing is posted or paid. If it is this order's invoice, link the order to it; otherwise change one of the numbers. When IpaasTransactionId is blank, the message says so.

  • Remap and Link or Update and Link: the invoice is linked to the order, and the create records nothing on it. A later update of the linked invoice records only payments it does not already have.

An invoice with the same number for another customer is not a collision, and the receipt is posted. Short numeric order numbers can match QuickBooks' own invoice numbers for a repeat customer; subscribers or their MiSP can avoid this by giving iPaaS.com order numbers a distinctive prefix that QuickBooks invoice numbering never uses (for example WEB- or POS-).

Supported Child Collections

  • Add QuickBooks Online Sales Receipt Line FROM iPaaS.com: the order's product lines. Each line is written with its receipt; an update replaces every line.

  • Add QuickBooks Online Sales Receipt Address FROM iPaaS.com: the order's billing and shipping addresses, written as the receipt's billing and shipping addresses.

  • Add QuickBooks Online Sales Receipt Payment FROM iPaaS.com: the order's payments. On a sales receipt they supply the payment method and reference, and no separate QuickBooks payment is created. When the order is applied to its invoice, or posted as an invoice because it was paid with several methods, each payment is recorded once as a QuickBooks payment on that invoice, with its own amount.

The children are sent with their order and have no triggers or Manual Sync of their own.

System Caveats

QuickBooks Online Caveats

  • United States companies: the line tax codes the integration sends (TAX and NON) exist only in United States companies. Companies on manual and on automated sales tax are supported; companies outside the United States are outside the scope of this integration, and nothing blocks them from connecting.

  • Receipts are always paid in full: QuickBooks records a sales receipt as fully paid for its total, calculated from the lines, shipping, discount and tax; it is not compared with the iPaaS.com order total.

  • Payment methods must exist in QuickBooks: each translated name, such as American Express, must exist as a QuickBooks payment method with exactly that name, or the transfer fails with QBOL-NFND-1007. Add QuickBooks Online Payment Method FROM iPaaS.com creates methods under their iPaaS.com names, which can differ from the translated names (for example AMEX rather than American Express).

  • Deposit account: the receipt is deposited to the account in the Deposit Account setting; when the setting is blank, QuickBooks uses Undeposited Funds. A named account that does not exist fails with QBOL-NFND-1009.

  • Items created by a sale: a missing item is created with the Default Item Type setting (non-inventory or service) and the Income Account setting, never as an inventory item, so sales of created items do not reduce QuickBooks stock. With Create Missing Items off, a line whose item is not found fails with QBOL-NFND-1006. QuickBooks categories and bundles are never used as a line's item.

  • Item names are unique across item types: a line whose name belongs to a QuickBooks category or bundle, and that has a SKU, gets its own item named with the SKU added, for example Gift Basket (GB-100); the next sale finds it by SKU. A line whose SKU belongs to a bundle, or whose name belongs to a category or bundle and that has no SKU, fails with QBOL-BIZL-1005 naming the item and its type, and nothing is posted.

  • Customer names: QuickBooks display names are unique across customers, vendors and employees. A sale with no email whose name belongs to a vendor or employee fails with QBOL-EXTN-1010; a sale with an email whose name is taken is created with the email added to the name.

  • Overpayment on an invoice: on the invoice path (paid later or split tender), a payment larger than the open balance is recorded in full, and QuickBooks keeps the excess as unapplied customer credit, with no error.

  • Rounding: amounts are rounded to 2 decimals using half-to-even rounding, so 2.505 becomes 2.50.

  • Rate limits: QuickBooks Online allows 500 requests a minute and 10 requests a second for each company. When QuickBooks limits the rate, iPaaS.com holds the transfer and retries it after about a minute (see QuickBooks Online Known Limitations).

iPaaS.com Caveats

  • Captured status: the filters count a payment only when its Status is exactly Completed. If your source system reports a captured payment with another status (for example Paid or Captured), change "Completed" in this filter, in the invoice filter and in both payment filters, or every paid order is held. Validate in a staging environment before relying on it in production.

  • Held orders are not reported: an order that carries payments, none of them captured (a declined card, or an authorisation not yet captured), is posted by neither this collection nor the invoice collection, and nothing is recorded in QuickBooks. When the source captures the payment and iPaaS.com sends the order again, it is posted. Review orders whose payments are still pending or declined and that have no QuickBooks document, for example as part of the month-end reconciliation. Subscribers or their MiSP who would rather record them straight away can post them as open invoices instead (see iPaaS.com to QuickBooks Online Invoice Mapping Documentation); this collection's filter does not change.

  • Order date is the UTC day: TxnDate is the UTC calendar day of the order's created time, so a sale made in the US evening can be dated the next day, in the next accounting and sales tax period.

  • What the filter can read: DestinationValue exposes the existing QuickBooks record's header values (such as transaction type, total, balance, document number and status) but not its lines or addresses. A sales receipt's balance is always zero.

  • Customer links: send customers through Add/Update QuickBooks Online Customer FROM iPaaS.com first for the most reliable match; otherwise the receipt is matched by email or name, or a customer is created.

  • Errors and retries: iPaaS.com retries every errored transfer on a growing schedule, so a transfer that cannot succeed fails again on each retry until the mapping, setting or record is fixed, or the error is dismissed.

Prerequisite Handling

None as separate transfers. The integration resolves what a receipt needs inside the same transfer:

  • Customer: the linked QuickBooks customer; else the customer with the order's email; else, when the order has no email, the customer with the same display name; else a customer created from the name, email and billing address. Customers created this way are not linked to an iPaaS.com customer.

  • Items: by mapped ItemId, else by SKU, else by name, among QuickBooks Inventory, Non-inventory and Service items; created when Create Missing Items is on.

  • Payment methods: by translated name; they must already exist in QuickBooks.

Customers and items created during a transfer stay in QuickBooks even when a later step fails; the retry finds and reuses them.

Setup Requirements

iPaaS.com Configuration

Automatic transfers do not activate by default. In the subscription configuration, open Outbound Data Flows and subscribe to the transaction events transaction/created and transaction/updated. Until they are subscribed, no orders transfer automatically.

Before going live:

  1. On manual sales tax, fill the Sales Tax Code setting with the tax code or group QuickBooks uses; on automated sales tax, leave the setting blank and do not map TaxCode (both are ignored there).

  2. Review the Deposit Account, Shipping Item, Create Missing Items, Default Item Type and Income Account settings.

  3. Add a row to the QuickBooks Online Payment Method FROM iPaaS.com translation for every payment method your orders can carry (see Payment Method Translation Values).

  4. Choose this collection's Collision Handling Method, and review the shipped filter: the captured-payment status (Completed), the paid-sale guard and the reversal clause. Keep IpaasTransactionId and SourceStatus mapped.

QuickBooks Online Configuration

  1. Confirm the company is a United States company and whether it uses manual or automated sales tax. On automated sales tax, make sure a tax agency is set up for every state the company collects tax in.

  2. Make sure every translated payment method exists in QuickBooks under exactly that name.

  3. When orders carry shipping and the company's sales form Shipping field is off, create the service item named in the Shipping Item setting, or turn Create Missing Items on.

  4. To fill sales form custom fields, define them under Settings > Account and settings > Sales > Custom fields.

Integration Flow

  1. The transaction/created or transaction/updated event, or Manual Sync with the iPaaS.com transaction ID, starts the transfer. The filter decides whether the order is posted (see Mappings).

  2. Linked order (update): when the order is already linked, the integration updates the linked QuickBooks document. A receipt whose order is reversed at the source stops with QBOL-BIZL-1007. On an invoice (paid later or split tender), new payments are checked first (see Payments already recorded), the invoice's lines are replaced unless it was changed in QuickBooks (QBOL-BIZL-1008), and each new payment is recorded once. The remaining steps apply to new orders.

  3. Existing receipt check: when the order has a document number, the integration looks for a QuickBooks sales receipt with that number and applies the Collision Handling Method if one is found.

  4. Payment methods: every payment's method is checked against the payment method translation before anything is written. A method with no translation row fails the transfer with QBOL-NFND-1007 naming it, whichever payment carries it.

  5. Paid-later invoice: when the order was already posted as a QuickBooks invoice by the invoice collection, the integration finds that invoice through the order's iPaaS.com link (read with IpaasTransactionId), records the order's payments on it, each once, and stops: no sales receipt is posted, and the order stays linked to the invoice. If the link cannot be read from iPaaS.com, the transfer fails with QBOL-INTL-1002 and nothing is posted. This runs before the customer is resolved, so a refused payment creates no customer.

  6. Customer: the integration resolves or creates the QuickBooks customer (see Prerequisite Handling). When two or more QuickBooks customers have the order's email, the transfer fails with QBOL-BIZL-1002 naming them, and nothing is posted.

  7. Same-numbered invoice: a QuickBooks invoice with the order's document number and the same customer, that is not the order's own invoice, follows the Collision Handling Method.

  8. Split tender: when the order's payments above zero use two or more payment methods and no single PaymentMethod is mapped, the order is posted as an invoice instead of a sales receipt.

  9. Receipt: the integration builds the header (payment method, reference and deposit account; class and location when mapped; billing and shipping addresses), the lines (each item matched or created), the shipping and discount lines, the tax total and any sales form custom fields.

  10. Write: the receipt (or split-tender invoice) is created, ending its private note with the iPaaS.com sync mark. On a split-tender invoice, each payment is then recorded as its own QuickBooks payment. A retried create carries the same request id as the first attempt, so when QuickBooks created the document but its answer was lost, QuickBooks returns that document instead of creating a second one; this needs a document number or an IpaasTransactionId on the order.

  11. iPaaS.com saves the QuickBooks document as the order's external ID (for example SalesReceipt-1050 or Invoice-1045).

Mappings

Add QuickBooks Online Sales Receipt FROM iPaaS.com

iPaaS.com data type: Transaction

Mapping Filter

// Orders paid in full by captured payments (Status Completed), not cancelled, refunded, returned or drafts; never rewrite a posted receipt or a fully paid invoice.
// A posted receipt cancelled, refunded or returned at the source passes, so the integration reports it (QBOL-BIZL-1007).
return Type == "Order" && ((Status != "Cancelled" && Status != "Refunded" && Status != "Partially Refunded" && Status != "Returned" && Status != "Draft" && Payments != null && Payments.Count > 0 && Payments.Sum(p => p.Status == "Completed" ? p.Amount : 0) >= Total && (DestinationValue == null || (DestinationValue.TransactionType == "Invoice" && DestinationValue.Balance > 0))) || (DestinationValue != null && DestinationValue.TransactionType == "SalesReceipt" && (Status == "Cancelled" || Status == "Refunded" || Status == "Partially Refunded" || Status == "Returned")));

Filter Description. Only iPaaS.com transactions of type Order pass; invoices and other transaction types are skipped. An order then passes by one of two branches:

  • Paid sale (first branch): every one of these must hold:

  • Not reversed or draft: the order's Status is not Cancelled, Refunded, Partially Refunded, Returned or Draft. An order in one of these states that was never posted is skipped, as there is nothing to post or reverse.

  • Has payments: the order carries at least one payment. An order with no payments (sold on terms) is left to the invoice collection.

  • Paid in full by captured payments: the sum of the payments whose Status is Completed is at least the order Total. Declined, pending (authorised but not captured) and refunded payments count as zero. A part-paid order is left to the invoice collection; an order with payments but none captured is held by both collections.

  • Paid-sale guard: DestinationValue is empty (the order is not linked yet: a new sale), or the order is linked to a QuickBooks Invoice whose Balance is above zero (a paid-later or split-tender invoice still open). An order linked to a sales receipt, or to a fully paid invoice, is skipped.

  • Reversal report (second branch): the order is already linked to a QuickBooks SalesReceipt and its Status is Cancelled, Refunded, Partially Refunded or Returned. It passes so that the integration can report it with QBOL-BIZL-1007; nothing is changed in QuickBooks.

Every other order is skipped without an error, and a skipped or held order does not appear in Dashboard / Integration Monitoring / Error Logs.

Mapping Type

Source Field (iPaaS.com)

Destination Field (QuickBooks Online)

Description

Static

"SalesReceipt"

TransactionType

Required. Tells the integration to post this collection's orders as sales receipts; leave it as SalesReceipt. A split-tender sale is still posted as an invoice. Blank fails with QBOL-VALD-1012.

Dynamic Formula

return TransactionNumber != null && TransactionNumber.Length > 21 ? TransactionNumber.Substring(TransactionNumber.Length - 21) : TransactionNumber;

DocNumber

Recommended; keep it mapped. The iPaaS.com order number as the QuickBooks document number; QuickBooks allows 21 characters, so a longer number keeps its last 21 (the full number goes to PrivateNote). It drives the existing-receipt and same-numbered-invoice checks; a value over 21 characters from a changed formula fails with QBOL-VALD-1009.

Dynamic Formula

return TransactionCreatedDateTime == null ? null : TransactionCreatedDateTime.Value.ToString("yyyy-MM-dd");

TxnDate

Recommended. The order's created date, for example 2026-10-21, taken as the UTC calendar day; subscribers or their MiSP can convert to their own time zone first when the period cutoff matters. Blank lets QuickBooks date the receipt today.

Dynamic Formula

return GetExternalId(CustomerId, "Customer", SpaceportSystemId);

CustomerId

Recommended. The QuickBooks customer linked to the order's iPaaS.com customer (for example one sent by Add/Update QuickBooks Online Customer FROM iPaaS.com). When blank, the customer is resolved by email, then by name, or created.

Field

EmailAddress

CustomerEmail

Recommended. Finds the QuickBooks customer, including inactive ones, when CustomerId is blank, and is given to a customer the integration creates. Two or more QuickBooks customers with the email fail the transfer with QBOL-BIZL-1002.

Dynamic Formula

return (CustomerId == null || CustomerId == 0) && string.IsNullOrWhiteSpace(EmailAddress) ? "Walk-in Customer" : null;

CustomerName

Recommended. An order with no iPaaS.com customer and no email posts to one QuickBooks customer named Walk-in Customer, created on the first such sale and reused afterwards; otherwise blank, and a created customer is named from the billing address name. Subscribers or their MiSP can replace the name (for example Cash Sales).

Dynamic Formula

return "iPaaS.com order " + TransactionNumber;

PrivateNote

Optional. Writes iPaaS.com order and the full order number to the private note (not shown to the customer). The integration adds its iPaaS.com sync mark at the end; QuickBooks keeps up to 4,000 characters.

Field

TaxAmount

TaxTotal

Required. The order's tax total, including 0.00, kept as the receipt's total tax so QuickBooks does not recalculate it. On manual sales tax a total above zero also needs a tax code (QBOL-VALD-1014); with a total of zero every line is non-taxable.

Field

ShippingAmount

ShippingAmount

Recommended. Posted as a shipping line, using QuickBooks' own shipping item when the sales form Shipping field is on, else the Shipping Item setting's item. Blank or zero adds no line.

Field

DiscountAmount

DiscountAmount

Recommended. Posted as one order-level discount line for a fixed amount, not a percentage; a negative value is posted as the same positive discount. Blank or zero adds no line.

Field

Status

SourceStatus

Recommended. Turns on the reversal check: a posted receipt whose order becomes Cancelled, Refunded, Partially Refunded or Returned stops with QBOL-BIZL-1007. To turn the check off, unmap it and remove the reversal clause from the filter.

Field

Id

IpaasTransactionId

Recommended; keep it mapped. Lets a paid-later order find, through its iPaaS.com link, the invoice it was posted as, and lets a retried create be recognised. When blank, a paid-later order's own invoice is not found.

Shipping, discount and tax.

  • Shipping: with the sales form Shipping field off, the item named in the Shipping Item setting (default Shipping) is used, and created as a service item if it is missing and Create Missing Items is on. With the setting off, an order with shipping fails with QBOL-NFND-1006 until the item exists.

  • Tax: each line is sent as taxable unless the line's Taxable field is mapped to false, or the order's tax total is zero (then every line is non-taxable and the receipt carries no tax). Keep TaxTotal mapped: on automated sales tax, without it QuickBooks calculates its own tax, so the receipt's tax and total can differ from what the customer paid, with no error.

  • Manual sales tax: a tax total above zero needs a tax code: a mapped TaxCode, else the Sales Tax Code setting. Without either, the transfer fails with QBOL-VALD-1014.

  • Automated sales tax: the integration ignores the Sales Tax Code setting and any TaxCode mapping and sends no tax code; QuickBooks keeps the tax total and assigns it to its own jurisdictions. QuickBooks calculates tax at the rate for the shipping address, else the company address (a billing address alone is not used), and only for states that have a tax agency set up in the company; a tax amount sent for a shipping address in a state with no agency is recorded as the transaction's tax but is not assigned to any agency. When the iPaaS.com amount differs from what QuickBooks would calculate, the iPaaS.com amount is recorded, with no error or warning.

Custom fields. QuickBooks sales receipts carry up to three text custom fields. To fill one, add a custom field mapping to this collection whose destination name matches the QuickBooks custom field name exactly (letter case does not matter), for example Sales Channel. Values are cut to 31 characters. A name that does not exist in QuickBooks fails the transfer with QBOL-NFND-1008. A purchase order number mapped to PONumber is written to a custom field named P.O. Number or PO Number when the company has one, and otherwise to the private note.

Header options not in the template. Subscribers or their MiSP can also map:

  • PaymentMethod: a QuickBooks payment method name or id; overrides the method from the payment collection. With it mapped, a sale paid with several methods stays one sales receipt under this method.

  • PaymentReference: a check number or card authorization, cut to 21 characters; overrides the payment collection's reference.

  • DepositAccount: a QuickBooks account name or id; overrides the Deposit Account setting for this receipt.

  • CustomerMemo: a message shown to the customer on the receipt, up to 1,000 characters.

  • Class and Location: a QuickBooks class or location name or id, when class or location tracking is on.

  • TaxCode: a QuickBooks tax code or tax group name or id, for companies on manual sales tax; overrides the Sales Tax Code setting and is ignored on automated sales tax.

  • PONumber: the customer's purchase order number (see Custom fields).

Add QuickBooks Online Sales Receipt Line FROM iPaaS.com (child)

iPaaS.com data type: Transaction Line

Mapping Type

Source Field (iPaaS.com)

Destination Field (QuickBooks Online)

Description

Field

Sku

Sku

Recommended; keep it mapped. The first key used to find the QuickBooks item (inactive items included). When no item has it, the item is looked for by ItemName, then created with this SKU if Create Missing Items is on (default on); with the setting off, the transfer fails with QBOL-NFND-1006.

Field

Description

ItemName

Recommended. The item name used when no item has the SKU, and the name of a created item (unique, up to 100 characters). Keep item names different from QuickBooks category and bundle names (see QuickBooks Online Caveats). When blank, the line description is used, then the SKU.

Field

Description

Description

Recommended. The line description shown on the receipt, and the sales description of an item the integration creates.

Field

Qty

Quantity

Recommended. The quantity sold; a blank quantity posts as 1.

Field

UnitPrice

UnitPrice

Recommended. The unit price, and the sales price of a created item. When Amount differs from quantity times this price, the unit price is derived from the amount; with no price and no amount the line posts at 0.00.

Field

ExtendedPrice

Amount

Recommended. The line total after any line discount, rounded to 2 decimals. For example 3 at 10.00 with a 3.00 line discount posts 27.00 at a unit price of 9.00. When blank, the line amount is quantity times unit price.

Every receipt needs at least one line, shipping or discount, or the transfer fails with QBOL-VALD-1010. The shipping and discount lines are added by the parent collection. Subscribers or their MiSP can also map ItemId (a QuickBooks item id, which skips the SKU and name match), Taxable (false marks the line non-taxable), ServiceDate (year-month-day) and Class (when class tracking per line is on).

Add QuickBooks Online Sales Receipt Address FROM iPaaS.com (child)

iPaaS.com data type: Transaction Address

Mapping Type

Source Field (iPaaS.com)

Destination Field (QuickBooks Online)

Description

Dynamic Formula

return IsPrimaryShipping == true && IsPrimaryBilling != true ? "SHIP" : "BILL";

AddressType

Recommended. An address marked primary shipping and not primary billing becomes the receipt's shipping address (SHIP); every other address, including one marked both, becomes the billing address (BILL). Without it, no shipping address is written.

Dynamic Formula

return Company != null ? Company : FirstName + " " + LastName;

Name

Recommended. The name at the top of the address block: the company, else first and last name. The billing address name also names a customer the integration creates, and is used to find an existing customer for an order with no email and no walk-in default.

Field

Address1

Line1

Recommended. The first street line; when Name has a value it moves to the second QuickBooks address line.

Field

Address2

Line2

Optional. The second street line (suite, unit or building).

Field

City

City

Recommended. The city of the address.

Field

Region

State

Recommended. Written as stored in iPaaS.com (for example CA); no code conversion is applied.

Field

PostalCode

PostalCode

Recommended. The postal or ZIP code.

Field

Country

Country

Optional. Written as stored in iPaaS.com.

Address selection. The first non-empty billing address and the first non-empty shipping address are written to the receipt; further addresses of the same type are not written, and an address whose mapped fields are all empty is skipped. The name and two street lines fill the first three QuickBooks address lines (up to 500 characters each), blank values skipped. The billing address's street, city, state, postal code and country also become the billing address of a customer the integration creates. An existing QuickBooks customer's addresses are not changed. An address edited in QuickBooks is not detected by the QBOL-BIZL-1008 check, which compares lines only, so an update writes over it.

Add QuickBooks Online Sales Receipt Payment FROM iPaaS.com (child)

iPaaS.com data type: Transaction Payment

Mapping Filter

// Captured payments above 0 only.
return Status == "Completed" && Amount > 0;

Filter Description. Only captured payments are included: payments whose Status is exactly Completed and whose Amount is greater than zero. Declined, pending and refunded payments, and payments of zero or less, are left out without an error. If your source system reports a captured payment with another status, change the value here, in the other payment filter and in both transaction filters.

Mapping Type

Source Field (iPaaS.com)

Destination Field (QuickBooks Online)

Description

Field

Amount

Amount

Required. On a sales receipt, QuickBooks records the receipt as paid in full for its total. On an invoice (split tender or paid later), each payment is recorded as its own QuickBooks payment for this amount, rounded to 2 decimals; a blank, zero or negative amount there fails with QBOL-VALD-1015.

Translation

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

Method

Recommended. Translates the iPaaS.com payment method to a QuickBooks payment method name, which must exist in QuickBooks. Every payment's method is checked before anything is written; a method with no row, or not in QuickBooks, fails with QBOL-NFND-1007.

Field

Method

SourceMethod

Recommended. The untranslated method, so a method with no translation row fails with QBOL-NFND-1007 naming it instead of posting the sale with no payment method. Keep it mapped to the same source field as Method.

One method or several. A sales receipt takes one payment method: the mapped PaymentMethod on the parent collection, or else the method of the order's payments (two payments with the same method stay one sales receipt, to one deposit). The payment's reference, when mapped, becomes the receipt's payment reference, cut to 21 characters. When two or more payments above zero carry different methods and no PaymentMethod is mapped, the order is posted as an invoice and each payment is recorded on it with its own method, amount, reference and deposit account, so card settlements and store-credit or gift-card tenders reconcile.

Payments already recorded. On an invoice (paid later or split tender), a payment already applied is not recorded again. The integration recognises it by the iPaaS.com payment {id} marker at the start of the QuickBooks payment's memo 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; a different date alone is refused with QBOL-BIZL-1010. A payment of the same amount entered by hand in QuickBooks, with nothing that tells them apart, is refused with QBOL-BIZL-1010 and nothing is written: the message says how to settle it in the QuickBooks payment's memo (iPaaS.com payment {id} if it is the same payment, or iPaaS.com: not this payment, after which the integration records the payment itself). The default templates map no payment date or reference.

Optional payment fields. Subscribers or their MiSP can also map Reference (a check number or card authorization), DepositAccount (for payments recorded on an invoice, overriding the Deposit Account setting), and PaymentDate and Memo (for payments recorded on an invoice). A mapped date and reference also keep apart two payments of the same amount.

Payment Method Translation Values

The Method mapping uses the translation QuickBooks Online Payment Method FROM iPaaS.com, which ships with these rows:

iPaaS.com payment method

QuickBooks payment method

VISA

Visa

DISCOVER

Discover

AMEX

American Express

MASTERCARD

MasterCard

CASH

Cash

CHECK

Check

CreditCard-Visa

Visa

CRCARD

Visa

Any payment with the method CRCARD posts as Visa; this includes Diners Club payments, which reach iPaaS.com from QuickBooks as CRCARD. There is no row for store credit (SC). Add a row for every payment method your orders can carry, pointing at a QuickBooks payment method of that exact name, before enabling the collection.

Error Handling

Errors appear in Dashboard / Integration Monitoring / Error Logs, and iPaaS.com retries an errored transfer automatically on a growing schedule. Orders skipped or held by the filter are not errors.

  • QBOL-NFND-1007 - The iPaaS.com payment method '{method}' has no QuickBooks payment method in the payment-method translation. Add a row for it (iPaaS.com: the collection's Method translation), then retry. Also raised as QuickBooks has no payment method '{name}' when the translated name does not exist in QuickBooks. Nothing is posted.

  • QBOL-BIZL-1002 - QuickBooks has {2 or 3 or more} customers with the email {email}: ... Nothing is posted. Link the customer so CustomerId is filled, or give each QuickBooks customer its own email.

  • QBOL-BIZL-1006 - QuickBooks already has {type} {id} numbered {number}. Link it, or set the collection's collision handling to Remap and Link or Update and Link. A receipt with the same document number exists. A second form names an invoice with the same number for this customer that is not the order's own invoice; nothing is posted or paid.

  • QBOL-BIZL-1007 - The iPaaS.com transaction {number} is {status} at the source, but it is already posted to QuickBooks as {type} {id}. ... Enter the reversal the message names in QuickBooks, then dismiss the error.

  • QBOL-BIZL-1008 - {type} {id} was changed in QuickBooks since iPaaS.com last wrote it (its lines or amounts differ, or it was voided). Nothing was overwritten. ... Dismiss the error to keep the QuickBooks version, or delete the iPaaS.com sync mark and resend to replace it.

  • QBOL-BIZL-1010 - Invoice {id} already has QuickBooks payment {QuickBooks payment id} of {amount}, entered in QuickBooks, and nothing tells whether this iPaaS.com payment {payment id} of {amount} is the same payment. ... Edit that QuickBooks payment's memo as the message says, then resend.

  • QBOL-BIZL-1005 - The {SKU or name} belongs to QuickBooks {Category or Group} {id} ('{name}'), which is not a product or service and cannot be sold or linked. Rename one of them, or map the line's QuickBooks Item Id.

  • QBOL-BIZL-1011 - The iPaaS.com transaction {number} is {status} at the source and was not posted to QuickBooks, so there is no sale to post. ... Raised only when a changed filter lets through an order cancelled, refunded or returned before it was posted; the shipped filter skips it.

  • QBOL-INTL-1002 - Could not read iPaaS.com transaction {id}'s link to QuickBooks ({reason}); nothing was posted. The transfer is retried.

  • QBOL-EXTN-1012 - Invoice {id} was created, but a payment could not be recorded: {the payment's error} (and QBOL-EXTN-1011 for an updated invoice): the split-tender or paid-later invoice was saved and linked; the retry records only the missing payment.

  • QBOL-VALD-1009: a document number longer than 21 characters from a changed DocNumber formula.

  • QBOL-VALD-1010 - A QuickBooks sales receipt or invoice needs at least one line. Check the transaction's line mapping.

  • QBOL-VALD-1011 - The transaction has no QuickBooks customer: map Customer Id (the customer's QuickBooks external id), Customer Email or Customer Name.

  • QBOL-VALD-1012 - Transaction Type is required: SalesReceipt or Invoice (the default templates set it).

  • QBOL-VALD-1014 - This QuickBooks company uses manual sales tax, so a tax amount needs a tax code. Fill the Sales Tax Code setting (e.g. the tax code or group named for the state) or map Tax Code.

  • QBOL-VALD-1015 - A payment for invoice {id} needs a positive amount (got {amount or none}). ... Fix the payment at the source, or exclude it with the payment collection's filter.

  • QBOL-NFND-1006 - QuickBooks has no item with SKU '{sku}' or name '{name}', and Create Missing Items is off. Create the item, send the product first, or turn the setting on. Also raised for a missing shipping item.

  • QBOL-NFND-1008 - QuickBooks has no sales form custom field named '{name}'. ... Add it in QuickBooks or remove the mapping.

  • QBOL-NFND-1009 - QuickBooks has no {payment term, deposit account, class, location or sales tax code} '{name}'. ... Create it in QuickBooks, or fix the setting or mapping that supplies it.

  • QBOL-EXTN-1010 (QuickBooks code 6240, duplicate name): a customer the integration had to create has a name that belongs to a vendor or employee, and the order has no email.

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

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

If rate-limit errors continue for hours, or an error persists after the data is corrected, contact your MiSP or iPaaS.com Support.

Testing & Validation

  1. Create an iPaaS.com order with an email, a primary billing address, two lines with SKUs, shipping and tax, and one Completed payment by VISA that covers the total, and send it with Manual Sync. Confirm QuickBooks has a sales receipt numbered with the order number, with both lines, a shipping line, the tax total, payment method Visa and the iPaaS.com sync mark in its private note, and that the order's external ID is SalesReceipt- followed by the QuickBooks id.

  2. Change a line price on the same order and send it again. Confirm the transfer is skipped and the receipt is unchanged.

  3. Set the order's status to Refunded and send it again. Confirm the transfer fails with QBOL-BIZL-1007 naming the receipt, and nothing changes in QuickBooks.

  4. Send an order with no customer and no email. Confirm the receipt posts to Walk-in Customer.

  5. Send an order paid 30.00 by VISA and 10.00 by CASH. Confirm QuickBooks has an invoice paid in full by two payments, one per method, and the order is linked as Invoice- followed by the QuickBooks id.

  6. Send an order whose only payment is pending (not Completed). Confirm nothing is posted by either collection; mark the payment Completed, send it again, and confirm the receipt is posted.

  7. Post an order on terms through the invoice collection, then add a Completed payment for the full total and send it. Confirm the payment is recorded on that invoice and no sales receipt is created.

  8. Send an order with a payment method that has no translation row (for example SC). Confirm the transfer fails with QBOL-NFND-1007 naming it and nothing is posted.

Additional Notes

  • Out of scope: daily or per-store summary receipts (each order posts its own receipt); voids, refunds and credit memos (reported with QBOL-BIZL-1007, entered in QuickBooks); sales receipts TO iPaaS.com; card processing; customer address updates (maintained by Add/Update QuickBooks Online Customer FROM iPaaS.com); bundles and group items as lines.

  • Known limitations: posted receipts and fully paid invoices are skipped silently; orders with no captured payment are held and not reported; reversals are reported, not entered; an edit in QuickBooks that keeps every line amount is not detected; a blank document number turns off the existing-receipt check, and with IpaasTransactionId also blank a retried transfer whose first answer was lost can post the sale twice; orders whose numbers share the last 21 characters get the same document number; a sale with no email and no linked customer posts to an existing customer of the same name; a line whose SKU belongs to a bundle, or whose name belongs to a category and that has no SKU, fails with QBOL-BIZL-1005. See QuickBooks Online Known Limitations.

Related Documents

Related Mapping Documentation

Did this answer your question?