Accounting and QuickBooks settings reference.
Exact menu path: GymCore Admin > Integrations > QuickBooks<br>
Who can change it: the visible Integrations menu requires manage_options, and the QuickBooks form/action handlers require manage_woocommerce. The effective UI user needs both, normally a WordPress administrator.<br>
Visible actions: Connect to QuickBooks Online or Disconnect QBO controls authorization; Save Accounting Settings stores mappings and sync choices; Queue Re-Sync schedules a separate historical sync.<br>
Owning system: GymCore stores the connection and mappings; QuickBooks Online remains the accounting source.
This is a separate form, not GymCore Settings > Billing. Confirm the target QuickBooks company and account IDs before connecting, mapping, or re-syncing; queued and completed external records are not undone by changing a setting.
Connection controls
Client ID
- Stored key:
gym_core_qbo_client_id - Type/default: text; blank.
- Allowed value: Intuit OAuth application client ID.
- Purpose/dependency: identifies the approved Intuit app; required with Client Secret before Connect.
- Side effect: changes which OAuth app requests access.
- Change/leave: replace only during an approved app migration; leave unchanged while the connection is healthy.
- Security/privacy: account identifier; restrict screenshots and support logs.
Client Secret
- Stored key:
gym_core_qbo_client_secret - Type/default: password; blank.
- Allowed value: matching Intuit app secret.
- Purpose/dependency: authenticates the OAuth application.
- Side effect: replacing it can break refresh/token exchange until Intuit matches.
- Change/leave: rotate after exposure or owner/vendor change; leave it alone for ordinary reconnect troubleshooting.
- Security/privacy: high-value credential. The current form persists sanitized text in a WordPress option; protect database/backups and never share it.
Connect to QuickBooks / Disconnect
- Type/default: nonce-protected OAuth actions; disconnected until authorized.
- Allowed value: valid Intuit authorization, realm ID, callback code, and matching one-time state.
- Purpose/dependency: exchanges authorization for tokens or removes the current connection.
- Side effect: Connect grants access to the selected QuickBooks company. Disconnect stops future sync but does not undo previously created QuickBooks records.
- Change/leave: connect only to the verified production company; disconnect only with a reconciliation and rollback plan.
- Security/privacy: finance trust boundary; verify company name/realm and authorized staff before approving.
Sync options
Sync Payments
- Stored key:
gym_core_qbo_sync_orders - Type/default: checkbox; on.
- Allowed value: on/off.
- Purpose/dependency: syncs completed or processing WooCommerce orders as QuickBooks Sales Receipts.
- Side effect: can create accounting records automatically.
- Change/leave: turn on only after account mapping and duplicate tests; turn off during migration or incident containment.
- Security/privacy: financial and customer data crosses systems.
Sync Payouts
- Stored key:
gym_core_qbo_sync_payouts - Type/default: checkbox; on.
- Allowed value: on/off.
- Purpose/dependency: syncs WooPayments payouts as QuickBooks Bank Deposits.
- Side effect: can create deposit records used in reconciliation.
- Change/leave: enable after bank/clearing mapping is verified; leave off when payouts are entered another way.
- Security/privacy: financial records; duplicate deposits materially distort books.
Account mapping
Every account value is a free-text QuickBooks numeric account ID. The form does not prove the account exists, has the correct type, or belongs to the connected realm.
| Field | Stored key | Default | Purpose | When to change / security impact |
|---|---|---|---|---|
| Default Income Account ID | gym_core_qbo_default_income_account_id |
Blank | Fallback income account for sales receipts. | Set from the verified Chart of Accounts; a wrong ID misclassifies revenue. |
| Bank Account ID (Deposits) | gym_core_qbo_bank_account_id |
Blank | Bank target for deposits. | Match the actual settlement account; finance-admin only. |
| Clearing Account ID | gym_core_qbo_clearing_account_id |
Blank | Optional WooPayments/undeposited-funds account. | Use only when the accounting workflow requires clearing. |
| Deposit-To Account ID | gym_core_qbo_deposit_account_id |
Blank | Deposit destination mapping. | Verify it does not duplicate the bank/clearing role. |
| Shipping Income Account ID | gym_core_qbo_shipping_account_id |
Blank | Classifies shipping income. | Leave blank only when the integration has an approved fallback. |
| AR Account ID (Failed Retry Notes) | gym_core_qbo_ar_account_id |
Blank | Associates failed-retry receivable notes. | Verify account type and finance policy. |
| Product category account map | gym_core_qbo_category_account_map[category-slug] |
Blank per current WooCommerce category | Overrides income account by category. | Reconcile every active category; new categories may need mapping. |
Manual re-sync
From date / To date
- Type/default: required date inputs; no stored default.
- Allowed value: valid start and end dates.
- Purpose/dependency: finds up to 500 completed/processing orders in the range and schedules one sync action per order, staggered by two seconds.
- Side effect: queues real accounting writes. Existing deduplication behavior must be verified before a repeat.
- When to use: only for a documented gap after reconciling WooCommerce, sync logs, and QuickBooks.
- When to leave alone: do not use as a generic “refresh” button or after a timeout until the queue/log is checked.
- Security/privacy: bulk financial operation; take a backup/export and record operator, range, count, and reason.
Sync log
The page shows the most recent 50 events. Use it to identify source record, operation, time, and error, then verify the matching WooCommerce order/payout and QuickBooks record. A local success does not prove a bank settled funds.
Verify a settings or sync action
- After Save Accounting Settings, reload the page and confirm the company, account mappings, and sync choices remain.
- In WooCommerce, record the source order, refund, payout, amount, and timestamp before testing its normal sync path.
- Match that source record to the GymCore sync-log entry and then to the transaction in the connected QuickBooks company. QuickBooks is the final accounting source; a queued action or local success message is not sufficient.
- If using Queue Re-Sync, confirm the date range and expected order count before submitting, then monitor each queued record. Fix or reverse incorrect accounting entries in QuickBooks under your accounting policy; changing GymCore settings does not remove records already sent.
Related guides
Need help?
Describe one problem and the installed versions. Never send passwords, license keys, API keys, payment details, or member records.