Quickbooks Online Integration .net DLL to work with our existing application
Budget: $750 – $1,500 USD
Overview
We develop a software application that our customers download and use. We bill our customers based upon their usage each month. We have a separate application that we call our billing system. This is a vb.net desktop application that calculates the billing for all of our customers. It interfaces with Quickbooks desktop. It adds customers to QB, updates their addresses if they change, adds invoices, posts payments, and reads all invoice, payment and credit details for customers and stores that in our own database so customers can see their invoices and payments online.
We would like to move to Quickbooks Online, so we are looking for a .net interface to QB Online that handles all of the interactions. Ideally we would like source code. We also require receiving compiled assemblies, and they must work with our vb.net application. Below are all the QB functions we require.
We assume that you have your own data structures for moving the data into and out of QB. We will write code to map our data to yours, or we may contract with you to do this work.
Our preference is for this to be done in c#, as we will probably migrate our vb.net application to c# in the future. Your deliverables should include a .net dll that does all of the communication with QBO, and a c# exe (with full source) that demonstrates each method. For example, the exe would have buttons for “Add Customer”, “Get All Customers”, “Get All Invoices for a Customer”, “Add Invoice”, “Modify Invoice”, “Post Payment”, etc. Each button would have code to show how to use that method.
This is the QBO functionality we require:
Customers
Customer List: We must be able to get a complete list of customers from QB. Our internal systems use account numbers, so we enter customer names into QB in the form “ABC Customer (1234)” where 1234 is their account number. If we want to find account 1234, we get a list of all customers from QB and search for the one that ends with “(1234)”. If QB online has a more direct way of storing account numbers, we are open to switching.
Customer Details: We also need to be able to get the customer details for a specific customer. This currently is based upon the customer name. We need:
Addresses
Phone numbers
Other contact information
Open balance
Add Customer: We pass you the customer name, addresses, etc., and you add the customer to QB
Modify Customer: We need to be able to change the customer name, addresses, and any other information
Item List
Our billing system needs to be able to read, add and update Sales Tax Items. Ideally it should be able to do this for all items. When adding a sales tax item, we need to specify:
Sales Tax Name
Description
Tax Rate (%)
Tax Agency
Invoices
We need to be able to retrieve all invoices for a specific customer. This must contain all invoice items (item, description, quantity, price per unit, taxable), payments applied, open balance, sales tax, memo, date, invoice number and custom fields.
We need to be able to create/add invoices for a specific customer with all of the fields noted above. Please note that the memo field is a requirement for us as well.
We need to be able to change an existing invoice. This is generally voiding the invoice - to do this we need to be able to change the quantities of each invoice item, and also change the memo field. We store information for our application in the memo field.
Payments
We need to be able to retrieve all payments for a customer. (It’s probably best to have a single query for all invoices, payments, credits, refunds, etc. This is how we currently operate. Separate calls are fine if necessary.).
We need to be able to post a payment to a specific customer and apply the payment to one or more invoices. Often customers will send us a payment for several invoices, and our current QB interface allows us to post a single payment and apply it to all the invoices they are paying.
Authentication
Ideally you’ll let us know how to generate required authentication information for your interface, and it should be easy to pass to your interface.
Other Functionality
Please let us know what other functionality you can provide as well.
We develop a software application that our customers download and use. We bill our customers based upon their usage each month. We have a separate application that we call our billing system. This is a vb.net desktop application that calculates the billing for all of our customers. It interfaces with Quickbooks desktop. It adds customers to QB, updates their addresses if they change, adds invoices, posts payments, and reads all invoice, payment and credit details for customers and stores that in our own database so customers can see their invoices and payments online.
We would like to move to Quickbooks Online, so we are looking for a .net interface to QB Online that handles all of the interactions. Ideally we would like source code. We also require receiving compiled assemblies, and they must work with our vb.net application. Below are all the QB functions we require.
We assume that you have your own data structures for moving the data into and out of QB. We will write code to map our data to yours, or we may contract with you to do this work.
Our preference is for this to be done in c#, as we will probably migrate our vb.net application to c# in the future. Your deliverables should include a .net dll that does all of the communication with QBO, and a c# exe (with full source) that demonstrates each method. For example, the exe would have buttons for “Add Customer”, “Get All Customers”, “Get All Invoices for a Customer”, “Add Invoice”, “Modify Invoice”, “Post Payment”, etc. Each button would have code to show how to use that method.
This is the QBO functionality we require:
Customers
Customer List: We must be able to get a complete list of customers from QB. Our internal systems use account numbers, so we enter customer names into QB in the form “ABC Customer (1234)” where 1234 is their account number. If we want to find account 1234, we get a list of all customers from QB and search for the one that ends with “(1234)”. If QB online has a more direct way of storing account numbers, we are open to switching.
Customer Details: We also need to be able to get the customer details for a specific customer. This currently is based upon the customer name. We need:
Addresses
Phone numbers
Other contact information
Open balance
Add Customer: We pass you the customer name, addresses, etc., and you add the customer to QB
Modify Customer: We need to be able to change the customer name, addresses, and any other information
Item List
Our billing system needs to be able to read, add and update Sales Tax Items. Ideally it should be able to do this for all items. When adding a sales tax item, we need to specify:
Sales Tax Name
Description
Tax Rate (%)
Tax Agency
Invoices
We need to be able to retrieve all invoices for a specific customer. This must contain all invoice items (item, description, quantity, price per unit, taxable), payments applied, open balance, sales tax, memo, date, invoice number and custom fields.
We need to be able to create/add invoices for a specific customer with all of the fields noted above. Please note that the memo field is a requirement for us as well.
We need to be able to change an existing invoice. This is generally voiding the invoice - to do this we need to be able to change the quantities of each invoice item, and also change the memo field. We store information for our application in the memo field.
Payments
We need to be able to retrieve all payments for a customer. (It’s probably best to have a single query for all invoices, payments, credits, refunds, etc. This is how we currently operate. Separate calls are fine if necessary.).
We need to be able to post a payment to a specific customer and apply the payment to one or more invoices. Often customers will send us a payment for several invoices, and our current QB interface allows us to post a single payment and apply it to all the invoices they are paying.
Authentication
Ideally you’ll let us know how to generate required authentication information for your interface, and it should be easy to pass to your interface.
Other Functionality
Please let us know what other functionality you can provide as well.