QuickBooks Integration for PHP

Overview

QuickBooks PHP DevKit

QuickBooks integration support for PHP 5.x+

The package you've downloaded contains code and documentation for connecting various versions and editions of QuickBooks to PHP, allowing your PHP applications to do fancy things like:

  • Automatically send orders placed on your website to QuickBooks Online or QuickBooks for Windows
  • Charge credit cards using Intuit Payments / QuickBooks Merchant Services
  • Connect to QuickBooks v3 APIs via OAuth
  • Get access to QuickBooks reports
  • Pull information out of QuickBooks and display it online
  • Connect to all Microsoft Windows versions of QuickBooks
  • Connect to all QuickBooks Online versions
  • Authenticate via OAuth
  • etc. etc. etc.

Almost anything you can do in the QuickBooks GUI, in QuickBooks Online Edition, and with QuickBooks Merchant Service can be accomplished via this framework.

Quick Start Guides

OAuth 1.0 to OAuth 2.0 migration

You can find information on how to migrate your app from OAuth v1.0 to OAuth v2.0 below. We are also working on getting OpenID Connect and an automated token migration process ready -- coming soon.

Updates and Improvements

Please follow me on Twitter to be notified about updates/improvements:

Support

Questions/general support

Before you ask for help make sure you:

Now that you have the output of the troubleshooting.php script and your code together, ask in one of these two places:

Bugs/pull requests

Examples

You will find examples in the docs/ folder.

Examples for QuickBooks ONLINE

If you are using QuickBooks ONLINE, then you need to look in this folder for examples:

  • docs/partner_platform/example_app_ipp_v3/

Make sure you look at the [quick start guide for Intuit Partner Platform/QuickBooks Online] (http://www.consolibyte.com/docs/index.php/PHP_DevKit_for_QuickBooks_-_Intuit_Partner_Platform_Quick-Start)

Examples for QuickBooks FOR WINDOWS

If you are using QuickBooks FOR WINDOWS, then you need to look in this folder for examples:

  • docs/web_connector/

Make sure you look at the quick start guide for the Web Connector/QuickBooks for Windows

Additional Info

There is additional documentation and additional examples on our legacy and new wikis:


###Keith Palmer###

Comments
  • mcrypt is deprecated in PHP 7

    mcrypt is deprecated in PHP 7

    In the Quickbooks/Aes.php file you are using mcrypt for encryption.

    https://github.com/consolibyte/quickbooks-php/blob/master/QuickBooks/Encryption/Aes.php#L34

    Mcrypthas been deprecated in PHP 7.1 in favor of openSSL.

    OSX users working locally may want to brew install php71-mcrypt. On Ubuntu you'll want to sudo apt-get install php7.1-mcrypt Or via yum with yum install php71-php-mcrypt

    opened by zackkrida 15
  • Fatal error when using OAuth2

    Fatal error when using OAuth2

    When OAuth2 support was implemented existing methods were renamed to have "V1" suffix and new methods with "V2" suffix were added.

    Unfortunately not all places, where old method names were used were updated.

    For QuickBooks_IPP_IntuitAnywhere PHP class:

    • oauthLoad method was renamed into oauthLoadV1
    • method use was replaced in load method
    • method use wasn't replaced in expiry, reconnect and disconnect methods
    opened by aik099 12
  • Loader is broken

    Loader is broken

    I get these errors when calling the autoloader. I recently upgraded to PHP 7.3.1 and Apache 2.4.37.

    ERROR - 2019-01-22 08:56:06 --> Severity: Warning --> array_merge(): Expected parameter 2 to be an array, bool given /var/www/html/dev_daniel/plugins/QuickBooks/Utilities.php 54 ERROR - 2019-01-22 08:56:06 --> Severity: Notice --> Undefined index: pass /var/www/html/dev_daniel/plugins/QuickBooks/Utilities.php 57 ERROR - 2019-01-22 08:56:06 --> Severity: Warning --> require_once(/var/www/html/dev_daniel/plugins/QuickBooks/Driver/.php): failed to open stream: No such file or directory /var/www/html/dev_daniel/plugins/QuickBooks/Loader.php 56

    opened by fleetclean 10
  • Error while using token & token_secret

    Error while using token & token_secret

    The token & token_secret generated by consolibyte/quickbooks-php is not authorized while using with rest client / postman.

    gives response: message=ApplicationAuthenticationFailed; errorCode=003200; statusCode=401

    help. thanks in advance.

    opened by mavvverick 9
  •  How many new projects are using PHP < 5.3?

    How many new projects are using PHP < 5.3?

    The next logical step for the development of the devkit would be to add PSR compliance. This of course would mean namespacing the module.

    The pros for this change would be:

    • Increased efficiency, as classes would be lazy loaded on a need be bases.
    • Better organization without the worry of name collisions with other libraries.
    • It will increase the ease of use for developers who are not contributing to the project, but simply using it in their own project.

    The downside would be changing the required PHP from 5+ to 5.3+. Which leads back to the question in the title, how many new projects are using PHP <5.3?

    I'm writing this post in an attempt to get a healthy debate going on the topic, so throw in your two cents.

    enhancement question 
    opened by mastermatt 9
  • Forums offline for maintenance

    Forums offline for maintenance

    The forums are still "down for maintenance tonight"...(have been down for several days now)... any ETA when they might be back online? google results direct there often and the only way to view is to try a cached version, which works... if the forums are broken or are going to be down for an extended period of time, can you put a read-only version online so this information is searchable/browseable?

    http://consolibyte.com/forum/

    Thank you for this project :)

    opened by attndeficit 8
  • Add support for Sandbox

    Add support for Sandbox

    In QuickBooks it's possible to enable sandbox mode. In that case URL for API is a bit different (the sandbox- is added in front of domain it seems.

    Please allow for setting base url externally instead of hardcoding it in here: https://github.com/consolibyte/quickbooks-php/blob/master/QuickBooks/IPP.php#L993

    opened by aik099 8
  • Error in QuickBooks_Loader::Load() after upgrading to PHP 5.6-30

    Error in QuickBooks_Loader::Load() after upgrading to PHP 5.6-30

    Our server's on 5.6.26 and the library works like a charm. I upgraded to 5.6.30 this morning to get the security and bug fixes contained in minor versions 5.6.27->5.6.30, and the library will no longer load!

    Not really sure what changed to break it. I'm lost as to what's happening: Error:

    PHP Fatal error:  require_once(): Failed opening required '.../libraries/quickbooks-php-master/QuickBooks/Driver/.php' in .../libraries/quickbooks-php-master/QuickBooks/Loader.php on line 56
    

    It successfully loads a lot of files, then appears to die when trying to load /QuickBooks/Driver/Mysqli.php, if I'm not mistaken.

    It looks like the usual order, from observing the same code running under PHP 5.6.26, is Utilities -> Factory -> Mysqli -> Sql -> Driver. Running under PHP 5.6.30 it tries loading: Utilities -> Factory -> loading file [/QuickBooks/Driver/.php].

    Adding a backtrace to Loader.php running PHP 5.6.26 shows:

    When loading Mysqli.php:
    	1) [main]
    	2) (our function that intializes Quickbooks)
    	3) .../QuickBooks/Utilities.php(628): QuickBooks_Utilities::driverFactory('mysqli://[redact]...', Array)
    	4) .../QuickBooks/Utilities.php(232): QuickBooks_Driver_Factory::create('mysqli://[redact]...', Array, Array, 1)
    	5) .../QuickBooks/Driver/Factory.php(95): class_exists('QuickBooks_Driv...')
    	6) [internal function]: spl_autoload_call('QuickBooks_Driv...')
    	7) [internal function]: QuickBooks_Loader::__autoload('QuickBooks_Driv...')
    
    Loading Driver.php
    	1) [main]
    	2) (our function that intializes Quickbooks)
    	3) ...quickbooks-php-master/QuickBooks/Utilities.php(628): QuickBooks_Utilities::driverFactory('mysqli://[redact]...', Array)
    	4) ...quickbooks-php-master/QuickBooks/Utilities.php(232): QuickBooks_Driver_Factory::create('mysqli://[redact]...', Array, Array, 1)
    	5) ...quickbooks-php-master/QuickBooks/Driver/Factory.php(95): class_exists('QuickBooks_Driv...')
    	6) [internal function]: spl_autoload_call('QuickBooks_Driv...')
    	7) [internal function]: QuickBooks_Loader::__autoload('QuickBooks_Driv...')
    	8) ...quickbooks-php-master/QuickBooks/Loader.php(120): QuickBooks_Loader::load('/QuickBooks/Dri...', false)
    	9) ...quickbooks-php-master/QuickBooks/Loader.php(72): require_once('/srv/www/[redact]...')
    	10) ...quickbooks-php-master/QuickBooks/Driver/Sql/Mysqli.php(31): QuickBooks_Loader::load('/QuickBooks/Dri...', false)
    	11) ...quickbooks-php-master/QuickBooks/Loader.php(72): require_once('/srv/www/[redact]...')
    	12) ...quickbooks-php-master/QuickBooks/Driver/Sql.php(367): spl_autoload_call('QuickBooks_Driv...')
    	13) [internal function]: QuickBooks_Loader::__autoload('QuickBooks_Driv...')
    

    Packages affected in Amazon Linux / Redhat Linux:

     php56                  x86_64         5.6.26-1.129.amzn1
     php56-bcmath           x86_64         5.6.26-1.129.amzn1
     php56-cli              x86_64         5.6.26-1.129.amzn1
     php56-common           x86_64         5.6.26-1.129.amzn1
     php56-gd               x86_64         5.6.26-1.129.amzn1
     php56-mbstring         x86_64         5.6.26-1.129.amzn1
     php56-mcrypt           x86_64         5.6.26-1.129.amzn1
     php56-mysqlnd          x86_64         5.6.26-1.129.amzn1
     php56-pdo              x86_64         5.6.26-1.129.amzn1
     php56-process          x86_64         5.6.26-1.129.amzn1
     php56-xml              x86_64         5.6.26-1.129.amzn1
     php56-xmlrpc           x86_64         5.6.26-1.129.amzn1
    

    Again, touching none of our/your code and reverting those 12 packages back to 5.6.26 lets the code work again. This was observed under our code at the time, a clone of this repo from mid-October, and again under the latest code, from a clone taken this morning.

    Any ideas?

    opened by Eiriksmal 7
  • Oauth 2 issue: Unserialized error in AES when attempting auth token refresh

    Oauth 2 issue: Unserialized error in AES when attempting auth token refresh

    I have the latest commits from last week or so. After an hour of being connected via OAuth2, and another QuickBooks API call is made, the auth token is invalid, the auth token is not being refreshed. We are getting the following errors when the token refresh is attempted.

    PHP Notice: unserialize(): Error at offset 0 of 904 bytes in /lib/QuickBooks/QuickBooks/Encryption/Aes.php on line 82 PHP Warning: current() expects parameter 1 to be array, boolean given in /lib/QuickBooks/QuickBooks/Encryption/Aes.php on line 83

    Any help would be greatly appreciated. Thanks.

    opened by jburgoyn 6
  • Case mismatch between loaded and declared class names

    Case mismatch between loaded and declared class names

    I am getting the following error when using the mysqli dsn:

    Case mismatch between loaded and declared class names: QuickBooks_Driver_Sql_Mysqli vs QuickBooks_Driver_SQL_Mysqli

    when I use the mysql dsn, it works but I get the warning that mysql_connect is deprecated. I just installed the quickbooks-php package using composer.

    I have also seen a similar error in this package that I fixed by changing the class name (I know, not a good idea, I just wanted to see if it would work) and it worked. I had to change the Quickbooks/Encryption/Aes/QuickBooks_Encryption_AES class name to QuickBooks_Encryption_Aes, or else I would get the 'case mismatch' error.

    I'm wondering, have I setup something wrong? It seems that others would have encountered these errors as well, but I can't find any other reference.

    I am using PHP 5.6.16, and I don't know if this makes a difference, but I wrapped the package to work with the Symfony Framework.

    opened by setharell 6
  • Unicode character support?

    Unicode character support?

    I use QB v3 to add a customer with name has unicode characters, for example: "Ngụy Như Kon Tum". After imported successfully, customer name will be "Ngåy Nh° Kon Tum".

    How can I fix this?

    Best Regards.

    opened by anhdd-savvycom 6
  • Anyone available for premium consult to help me build my Quickbooks webconnec to PHP?

    Anyone available for premium consult to help me build my Quickbooks webconnec to PHP?

    I am trying to build a lighter weight solution using simple files for request result storage using PHP SOAP. Anyone on this project available for premium consult?

    opened by webservant316 0
  • Prevent fatal error when QuickBooks Online returns incomplete XML

    Prevent fatal error when QuickBooks Online returns incomplete XML

    This diff looks much bloodier than it is. All I did was wrap the call to $List = $Root->getChildAt('IntuitResponse QueryResponse') in an IF, and return false in the ELSE.

    Prevents a fatal error when QuickBooks Online returns incomplete XML, and the call to $List = $Root->getChildAt('IntuitResponse QueryResponse') returns FALSE, so $List->attributes() throws an error.

    opened by emilebourquin 1
  • Support PHP 8.1 + other improvements

    Support PHP 8.1 + other improvements

    These changes accommodate PHP 8.1.

    I did also change the SQL sort in order to make explicit prioritization work more like how most would expect it to work.

    And I added an "error threshold" setting to better comply with SOAP error code definitions whereby an error code below 500 is considered non-blocking and execution should proceed.

    Sorry for bundling this all in, these are just changes accumulated for my own project over the past few months which I am proposing to share back to the project. Up to you! :)

    opened by GregPeden 0
  • Missing file called CustomerCommunicationEmailAddr.php

    Missing file called CustomerCommunicationEmailAddr.php

    We've been using quickbooks-php for years and never had this problem. Today we suddenly started getting errors saying:

    require_once(/var/www/workglue/qbo/quickbooks-php/QuickBooks/IPP/Object/CustomerCommunicationEmailAddr.php): failed to open stream: No such file or directory in /var/www/workglue/qbo/quickbooks-php/QuickBooks/Loader.php on line 56

    There is no file with that name, and it looks like there never was (I don't see it in this GitHub repository). However, there is a file called CustomerCommunicationAddr.php

    I was desperate and trying anything so I simply copied that file and made a small change to the content like this and the error went away:

    opened by rstoeber 14
Releases(v3.6)
Owner
Keith Palmer
Keith Palmer
the repository uses some of the code from php-meminfo to simplify integration

the repository uses some of the code from php-meminfo to simplify integration

Dmitriy Bulgar 1 Nov 18, 2021
Laravel Integration for Switchover PHP SDK. Feature Toggle Management made easy.

Switchover Laravel Integration Switchover Switchover is a Software-As-A-Service for managing feature toggles (aka switches, flags or feature flips) in

Switchover 6 Nov 6, 2022
Simple php-imap integration for Symfony 2.8, 3.x and 4.x.

PHP-IMAP integration bundle Simple php-imap integration for Symfony 4.x, 5.x and 6.x. The version 1.5 and above are only compatible with Symfony 4+. P

null 52 Dec 20, 2022
A project of a Login screen made in PHP/CSS3/HTML5/JS with MySQL database integration

A project of a Login screen made in PHP/CSS3/HTML5/JS with MySQL database integration. And animations made with CSS3 and JavaScript itself! ??

Marcel Leite de Farias 2 Apr 26, 2022
ShurjoPay payment gateway integration for PHP applications.

ShurjoPay PHP Library Using this library you can integrate ShurjoPay payment gateway into your PHP applications. If you face any problem then create i

Raziul Islam 6 Jun 17, 2022
🚦 Viewi PHP integration for your Leaf apps

Leaf Viewi Module This module allows you to quickly and easily integrate Viewi into your Leaf apps without any pain at all. Installation You can easil

Leaf Framework 4 Aug 21, 2022
Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

Source control integration plugin framework for MantisBT, including support for Github, Gitlab, Bitbucket, Gitweb, Cgit, Subversion, Mercurial and more

MantisBT Community Plugins 175 Sep 3, 2022
Paddle.com API integration for Laravel with support for webhooks/events

Laravel Paddle This package provides an integration with Paddle.com for Laravel. Read the blogpost about the introduction of the package! Features Sup

Protone Media 179 Dec 16, 2022
Tabler.io bundle for Symfony - a backend/admin theme for easy integration

Tabler Bundle for Symfony This repository contains a Symfony bundle, integrating the fantastic Tabler.io HTML Template into your Symfony project. It s

Kevin Papst 22 Jan 2, 2023
Adds factory functions for WooCommerce to be used with wp-browser integration tests.

wp-browser-woocommerce This library simplifies testing of WooCommerce themes and plugins with wp-browser. Several Unit Test Factories are added that a

Level Level 12 Dec 29, 2022
Krayin Zoom Integration

1. Introduction: Krayin Zoom Integration. It packs in lots of demanding features that allows your business to scale in no time: Admin user can connect

Krayin CRM 2 Dec 15, 2021
Paddle.com API integration for Laravel with support for webhooks/events

Laravel Paddle This package provides an integration with Paddle.com for Laravel. Read the blogpost about the introduction of the package! Features Sup

Protone Media 180 Jan 1, 2023
🧩 Laravel Query Builder integration for PhpStorm

Laravel Query Laravel + DataGrip = ♥️ This plugin provides database integration for Laravel query builder. Features Schemas, tables, views and columns

Ernestas Kvedaras 41 Dec 14, 2022
TXP-Tweet - arc twitter - Twitter-Textpattern integration

TXP Tweet This is TXP Tweet, a collection of Textpattern plugins for Twitter integration. TXP Tweet consists of two plugins: arc_twitter (the core Tex

Andy Carter 11 Sep 20, 2021
Hak tinymce - TinyMCE integration for Textpattern

This plugin adds a TinyMCE based WYSIWYG editor to Textpattern. Installation Upload the included TinyMCE distribution to somewhere in your document ro

Patrick Woods 8 Aug 25, 2022
MageCI - [ABADONED] Magento Continuous Integration Tools

Magento Continuous Integration Tools A set of tools to help set up a proper environment for testing magento Installation Installation is very easy tho

EcomDev B.V. 77 Dec 13, 2021
Algolia Search integration for Magento 1 - compatible with versions from 1.6.x to 1.9.x

Algolia Search for Magento 1.6+ End of Support ?? The Algolia Magento 1 extension has reached End of Life regarding support and maintenance. We do not

Algolia 163 Dec 20, 2022
LiqPay integration extension for Magento 2

LiqPay Extension for Magento 2 LiqPay payment integration extension for Magento 2. Check out the Wiki pages for the project details. Idea The idea of

Max Pronko 21 Nov 2, 2021
FULL, FREE and SUPPORTED integration with MailChimp Email Marketing for Magento 2.

MageMonkey has been deprecated, please use MailChimp for Magento instead MailChimp official Magento extension Support MageMonkey, Subscribe for a free

Ebizmarts 47 May 23, 2022