QuickBooks Sync for Bills
Learn how bills synchronize between ReadyBuild and QuickBooks.
Overview
Bills sync bidirectionally with QuickBooks:
| Direction | When |
|---|---|
| ReadyBuild → QuickBooks | Bill saved with "Send to QuickBooks" enabled |
| QuickBooks → ReadyBuild | Scheduled sync job or manual import |
Both QuickBooks Desktop and QuickBooks Online are supported.
Enabling QuickBooks Sync
Per-Bill Setting
Each bill has a Send to QuickBooks toggle:
- Open the bill (new or existing)
- Enable Send to QuickBooks
- Save the bill
When enabled, the bill syncs on save.
Company-Level Settings
QuickBooks integration must be configured at the company level:
- Go to Admin → Integrations → QuickBooks Online (or Desktop)
- Connect your QuickBooks account
- Configure sync settings
Field Mapping
Bill Header
| ReadyBuild | QuickBooks | Notes |
|---|---|---|
bill_number | DocNumber | Auto-generated, unique |
vendor_id | VendorRef | Looked up via QuickbooksEntity |
due_date | DueDate | Payment due date |
invoice_date | TxnDate | Transaction date |
title | PrivateNote | Internal notes |
Line Items
| ReadyBuild | QuickBooks | Notes |
|---|---|---|
| Item total | Amount | qty × unit_cost |
name | Description | Line description |
cost_code_id | ItemRef | Maps to QB Item |
qty | Qty | Quantity |
unit_cost | UnitPrice | Per-unit price |
project_id | CustomerRef | Project as QB Customer |
Export to QuickBooks (RB → QB)
When a bill is saved with sync enabled:
- Bill data mapped to QB format
- Vendor lookup via QuickbooksEntity table
- Line items converted with ItemRef and CustomerRef
- Create or Update sent to QB API
- QuickbooksEntity record created/updated linking RB and QB records
Requirements for Export
- QuickBooks integration active
- Vendor exists in QB (or gets created)
- Cost codes mapped to QB Items (recommended)
What Gets Created
A Bill record in QuickBooks with:
- Linked to the correct Vendor
- Line items with quantities and prices
- Customer references for project tracking
- Private notes for internal reference
Import from QuickBooks (QB → RB)
When bills are imported from QuickBooks:
- Basic fields mapped from QB Bill
- Status determined by Balance and TotalAmt:
- Balance = 0, TotalAmt > 0 → PAID
- Balance > 0 → BILLED
- Line items created with automatic defaults if needed
- Vendor and project mapped via QuickbooksEntity
- Title set to "Quickbooks Online Vendor Bill"
Default Handling
When QB line items can't be fully mapped:
- Cost Code: First cost code in your company's list
- Unit: "LS" (Lump Sum) if not specified
- Bills may import as Draft if required fields are missing
Payment Sync
Paying Bills in ReadyBuild
When you mark a bill as Paid:
- BillPayment job queued if QB connected
- QB bill balance fetched to determine payment amount
- BillPayment created in QuickBooks:
- Payment amount (outstanding balance)
- Payment type (Check or CreditCard based on paid_by_id)
- Payment date
- Link to the original Bill
Payments Made in QuickBooks
When a BillPayment is created in QB:
- Linked bill found from LinkedTxn
- QB bill fetched to check remaining balance
- RB bill updated:
- Balance = 0 → Status = PAID
- Balance > 0 → Status = READY_TO_PAY (partial payment)
- Payment method mapped from QB PayType
- Payment account ref stored for reconciliation
Void Handling
When a bill is voided in ReadyBuild, the action in QuickBooks depends on company settings:
Delete Mode (Default)
- All linked BillPayments are deleted from QB
- The Bill is deleted from QB
- QuickbooksEntity records are removed
Note Mode
- BillPayments are kept in QB
- Bill's PrivateNote updated with "(VOIDED in ReadyBuild)"
- Use this to maintain QB audit trail
None Mode
No action taken in QuickBooks. Use when:
- You handle voids manually in QB
- You want QB and RB independent
Configuring Void Mode
Contact support or check company settings for:
QUICKBOOKS_BILL_VOID_ACTION = delete | note | none
Sync Troubleshooting
Bill Not Syncing
- Check "Send to QuickBooks" is enabled on the bill
- Verify QB integration is connected in Admin settings
- Check for sync errors in the audit log
- Ensure vendor exists in QuickBooks
Vendor Mapping Issues
If vendor doesn't map correctly:
- Check QuickbooksEntity table for the contact
- Verify vendor is synced to QB
- Manually sync vendor if needed
Line Item Mapping
If line items don't map to QB Items:
- Ensure cost codes have
qbo_list_idset - Default Item used if not mapped
- Consider mapping cost codes to QB Items in admin
Payment Sync Failures
If payments don't sync:
- Check that bill exists in QB (synced first)
- Verify QB bill has balance to pay
- Review payment job logs for errors
Audit Trail
All sync activities are logged:
- Export success/failure with QB entity ID
- Import success/failure with mapping details
- Payment sync with amounts and status changes
- Void actions with mode used
Access logs through:
- Bill's QuickBooks sync status indicator
- Company audit log
- Admin → Integrations → Sync History
Best Practices
1. Map Cost Codes to QB Items
For accurate line item mapping, configure cost codes with QB Item references.
2. Sync Vendors First
Ensure vendors are synced to QB before creating bills for them.
3. Use Consistent Naming
Match vendor names between RB and QB for automatic matching.
4. Review Imported Bills
Bills imported from QB may need review - check cost codes and status.
5. Monitor Sync Status
Regularly check for sync errors and address mapping issues.
6. Understand Void Behavior
Know your company's void mode setting to predict QB behavior.