- How do I install quickbooks/v3-php-sdk in a Laravel application?
- Run composer require quickbooks/v3-php-sdk and configure your Intuit client ID, client secret, redirect URI, and sandbox or production base URL. There is no service provider, facade, or publishable config, so you wire the SDK into a service class or singleton in your own AppServiceProvider. Most teams wrap DataService construction and token handling in a dedicated QuickBooks client class rather than injecting the SDK directly into controllers.
- Does this SDK support Laravel 11 and Laravel 12?
- It is a plain Composer library with no Laravel-specific version constraints, so it works wherever your PHP version satisfies the SDK's requirements. Laravel 11 and 12 themselves are not the limiting factor; check the SDK composer.json for the supported PHP range and test on your target PHP minor. Because Intuit does not ship Laravel integration, framework upgrades are your responsibility to validate.
- How should I store QuickBooks OAuth tokens for a multi-tenant Laravel app?
- Do not use the SDK's default file-based token storage or its sample cookie flow, because neither is safe across multiple app servers or tenants. Implement a custom token store backed by your database with encryption, keyed by tenant and realm ID, or bypass SDK persistence entirely and hand a fresh access token to DataService on each construction. This is the single most important design decision to make before you build the rest of the integration.
- How do I handle QuickBooks refresh token rotation in Laravel queues?
- QuickBooks access tokens last about 60 minutes, and the refresh token rotates every time you refresh, so the new value must be persisted atomically. Concurrent jobs refreshing the same realm will invalidate each other unless you wrap refresh in a cache lock or similar mutual exclusion. Store the token version and realm ID with the record, and treat refresh failures as a distinct error path that can pause sync jobs.
- Does quickbooks/v3-php-sdk handle rate limits and 429 retries?
- No. The SDK does not provide retry, backoff, jitter, or rate-limit awareness, so your Laravel jobs must own throttling and retries. QuickBooks enforces roughly 500 requests per minute plus a daily cap per realm, which means you need per-realm limiting rather than a single global queue rate. Also add idempotency around the requestid field, because the SDK does not manage that for you.
- How do I test QuickBooks API calls in Laravel without hitting Intuit?
- Laravel's Http::fake() will not intercept this SDK because its transport is internal cURL rather than PSR-18 or Guzzle. The practical approach is to wrap the SDK behind your own adapter interface and fake that interface in feature tests. For integration-level confidence, use record-and-replay at the network layer or a dedicated sandbox test realm.
- Does this package handle QuickBooks webhooks?
- Not meaningfully. Intuit sends an intuit-signature HMAC header, and you are responsible for verifying it, routing events, and handling duplicates or retries in your Laravel application. The SDK covers outbound Accounting API requests, not webhook ingestion. Build a small webhook controller with signature verification and a queue-backed handler for change events.
- What QuickBooks entities and endpoints does the SDK cover?
- It generates entity classes that mirror the QuickBooks Online XSD and exposes CRUD operations for Accounting entities such as Invoice, Bill, Customer, JournalEntry, and Payment. It also supports the SQL-like query() endpoint, the reports endpoint, and change data capture for incremental sync. Webhooks and higher-level sync orchestration are outside its scope.
- Is there an official Laravel wrapper for the QuickBooks API?
- There is no official Laravel package from Intuit. quickbooks/v3-php-sdk is a plain PHP SDK, and any Laravel wrapper you find is community-maintained and should be evaluated separately. Many teams use the official SDK directly behind a small application-specific service layer, which keeps upgrade and replacement options open.
- Is quickbooks/v3-php-sdk maintained enough for production use?
- It is the official Intuit SDK, but PHP is not Intuit's priority ecosystem, and the community surface is thin, so expect to be largely self-supporting when triaging regressions. Generated entity classes can accumulate deprecation noise on new PHP minors, so pin PHP and test upgrades deliberately. Sandbox behavior also diverges from production in data and edge cases, so treat passing sandbox tests as weak evidence and add production monitoring.