Complete OAuth Setup
POST/api/qbo/integrations/complete
Completes new QBO integration setup using the OAuth state. Only for new integrations (reconnections are handled automatically via callback).
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
Send just the state value returned by the authorization flow.
Connecting does not start a schedule on its own — it links QuickBooks and downloads reference data (accounts, tax codes, vendors). Nothing syncs on a schedule until at least one transaction type is enabled via PUT /api/accounting/sync-settings, and the connection is active (see GET /api/accounting/sync-settings/connection).
Deprecated field: is_auto_sync_enabled is optional and no longer governs what syncs. It sets a legacy coarse schedule flag that the accounting push path does not read. It is still accepted for backward compatibility; omitted, it defaults to true.
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.