QuickBooks Online Invoice Data Destination

Note:The ProntoForms connection with QuickBooks must be made with a QuickBooks Online Plus account.Learn how to check if an account is QuickBooks Online Plus.

Supported on the Advanced and Enterprise tiers:



The QuickBooks Invoice Data DestinationClosed A Data Destination specifies where to send data from a submitted form. You can use Data Destinations to automate data sharing and storage, routing data to a specific service (such as email or cloud storage) in several different formats. creates invoices in QuickBooks Online when mobile forms are submitted, and automatically attaches them to the appropriate clients' and employees' accounts. QuickBooks Online Data Destinations must pull some data from a QuickBooks Online Data Destination to work properly.

For an overview on requirements for integrating Quickbooks and ProntoForms, please read: Quickbooks Online: Detailed Integration Guide.

Organizations of all sizes use QuickBooks Online to manage their accounting processes. QuickBooks Online is highly customizable and designed to work with add-on applications, making it a flexible and powerful tool for managing many of your business functions. Looking for two-way integration? Read more about the ways ProntoForms can connect to QuickBooks Online.

Basic Set Up

  1. Create the data destination following the instructions here.

  2. Destination Basics: Name the destination. Optionally choose to auto-link forms and documents to this destination.

  3. Optionally add Filtering: With a filter set up, form submissions will only be sent through the destination if the filter is met. Read more here.

  4. Connection: Set up a QuickBooks Online Connection or choose an existing connection.

  5. Set up the Invoice Fields tab as discussed below.

Populating an Invoice in Quickbooks Online

When you're integrating mobile forms with a system like Quickbooks Online, that system often requires a lot of specific information in order for a valid record to be created as the result of a form submission.

Invoice Requirements in Quickbooks Online

Below is what an Invoice looks like in Quickbooks Online. The orange markup and asterisks have been added overtop to help explain.

  • The fields circled in orange are the ones that can be filled by ProntoForms.
  • The fields with a red asterisk are the ones that must be filled by ProntoForms.

Whether you are creating an Invoice manually in the Quickbooks interface, or creating it using a ProntoForms data destination, there are certain requirements in order for it to be a save-able Invoice.

The tricky ones are explained here.


An Invoice must be assigned to a valid customer that exists in Quickbooks.

While Quickbooks shows the Customer name in the user interface, it actually uses a unique Customer ID that Quickbooks generated for that customer in the background. That way, if you modify the customer's name, the Invoice will still be assigned to that customer.

You can't see that Customer ID anywhere in Quickbooks Online, but it does exist, and ProntoForms can't create an Invoice without it.


The invoice must have at least one line item (a product or service) that the customer is being charged for, and a dollar amount on it. Basically, it doesn't make sense to send that customer an invoice if they aren't being charged for anything!

Like the customer, the product/service on each line item must be a valid product/service that exists in Quickbooks. Again, while the product/service name shows in the Quickbooks user interface, it actually uses a unique product/service ID that Quickbooks generated in the background.

Again, you can't see that ID anywhere in Quickbooks, but it does exist, and ProntoForms can't create an invoice without it.

How do I find Customer or Product/Service ID?

As mentioned, these ID's aren't actually visible in Quickbooks Online anywhere. But, you can access them through ProntoForms using a QuickBooks Online Data Source. While there is a column showing Customer Name, there is another column showing Customer ID. You'll need to use this data source in the form.

Setting up a ProntoForm to Fill an Invoice

Typically, users in your form will choose the Customer Name in a dropdown question. Set up that dropdown question to push data from the Customer ID column into a hidden text field. This way, your mobile users will see the familiar customer name, but the form can provide the ID to the data destination.

Mapping to Invoice Fields on the Data Destination

On the data destination, in the Invoice Fields tab, you can see the entire list of fields that ProntoForms is allowed to fill out when the data destination creates the Invoice. Use Data Reference Expression Language to reference the questions in your form that collect the corresponding information.

Invoice Information

  • Invoice Date (Required):
    • The date must come from a question with a date data type.
    • Or, use %d to reference the date the form is submitted
  • Due Date (Required):
    • The payment due date must come from a question with a date data type.

Customer Information

  • Customer ID (Required)
    •  The unique customer ID being collected must match a QuickBooks Online customer ID.
    • Remember: Read above to learn how to get the ID field into your form.
      • Be sure to reference the hidden question that uses the ID, not the dropdown with the customer name.
  • Street, City, State, Address:
    • These are optional, and can be filled by any kind of question.
  • Email:
    • Optional. Ensure the email is collected by a question with an email data type.

Line Items

This is where you reference the questions that determine what the customer is actually paying for.

Note: Read how to add multiple line items below.

  • Product/Service ID (required)

    • The ID must  match a QuickBooks Online product/service ID.

    • Remember: Read above to learn how to get the ID field into your form.
      • Be sure to reference the hidden question that uses the ID, not the dropdown with the product/service name.
  • Description:

    • Optional. The data can be anything.
  • Quantity:

    • Optional. Ensure the quantity is collected by a question with an integer data type.
  • Rate:

    • Optional. Ensure the rate is collected by a question with an currency data type.
  • Line Amount (Required):
    • Ensure the line amount is collected by a question with an currency data type.

To send multiple line items to QuickBooks Online:

  • When building the form: Give numbered labels to matching line item fields (i.e. Activity 1, Activity 2, Activity 3).

  • When setting up the destination: Map all fields with one label (i.e. %a[Activity ##]).


These are like the footer to the invoice, just showing the total amount the customer will be charged across all line items.

  • Discount
    • Optional. Ensure the discount is collected by a question with an integer or decimal data type.
  • Total Amount
    • Optional, because Quickbooks will just calculate this based on all the line items. If you'd prefer to send it, ensure it is correct by referencing a calculation question that totals up your line items. Ensure the question has a currency data type.

Testing and Troubleshooting

Test all data destinations before using them in production. This is key to ensuring that ProntoForms data is received. Please read the recommendations for testing and troubleshooting data destinations.

If you encounter errors on a Quickbooks Online data destination, refer to this article for errors specific to Quickbooks Online.