Quickbooks Online Sync API
Integrate Quickbooks Online effortlessly with detailed API documentation for syncing payroll data.
The integration object
In this case, we are specifically referring to quickbooks online accounting integration objects.

Example

List integrations

Query Params

Example Response

Sync Attempt Object

Example

Example in the event of a failure

Sync


Returns an array of Sync Attempts, one for each Payroll
Sync Details
When a Payroll needs to be synced, a Sync Attempt message will be placed on a queue for processing. An asynchronous approach was chosen to not slow down Payroll approval. A Sync Attempt will be created with a status of pending. When the Sync Attempt is processed off the queue, its status will change to success or failure (depending on the response received from Quickbooks Online) and the attempted_at timestamp will be set. After a sync attempt is processed, we will send a webhook event following the structure of our other webhooks except with the “data” field matching the Sync Attempt object above; this event will be sent with the `Check-Topic` header of accounting_integration_sync_attempt.
A Payroll needs to be synced when either:
- A Payroll’s status moves to processing and the Accounting Integration has auto_sync enabled
- A sync request is received
A sync request’s body parameters can have one of the following shapes:
- No body parameters provided
- All Payrolls for the Company with a status of processing or paid without a successful Sync Attempt will be synced
- Example body parameters: {}
- resync param is set to true
- All Payrolls for the Company with a status of processing or paid will be synced, even if they have already been synced
- Validation will occur to ensure that a payrolls param is not provided (see below)
- Example body parameters: {“resync”: true}
- An array of Payroll ids are provided with the payrolls param
- Validation will occur to ensure the payrolls are associated with the Company
- Validation will occur to ensure the payrolls have a status of processing or paid
- The specified Payrolls will be synced, even if they have already been synced
- Validation will occur to ensure that the resync param is not provided because resync behavior is always true when payrolls are provided
- Example body parameters: {“payrolls”: [“pay_123”, “pay_456”]}
List Sync Attempts

Last updated on March 31, 2024