The Approval Queue is where you review, edit, and post the daily journal entries the system has staged from your DRS data. In Manual Approval mode (the default and recommended sync mode), no journal entry reaches QuickBooks until you act on it here.
The Approval Queue — each row is one business day's staged journal entry, with status, doc number, totals, and per-row actions.
Who can use this: Admins only. The Manager, Shift Lead, Buyer, and Cashier roles don't have QuickBooks access.
Where to find it
From the admin sidebar: QuickBooks > Approval Queue. Direct URL: /admin/{typeNum}/quickbooks/approval-queue.
The Dashboard's "Needs your attention" panel surfaces a pending-approvals card with a shortcut. The page header also shows an amber pending count chip when there's work to do — at a glance, you know if the queue needs you.
How an entry gets here
Every night, BuyerKiosk reads your DRS daily close data and builds a balanced journal entry (debits = credits). In Manual Approval mode the entry is staged — written to a queue table with a pending_approval status and the full payload preserved — instead of being posted to QBO directly.
You'll see one row per business date.
Reading the queue
Each row shows:
Column | Meaning |
Date | The business date this entry covers (DRS close date) |
Status |
|
Doc Number | The DocNumber that will be sent to QBO (format |
Total Debits / Credits | If they don't match, the difference is the variance — see the balance banner below |
Actions | Per-status icon buttons (Approve, Edit, Reject, Void, Re-sync) |
Use the Status filter above the grid to narrow the list. By default you see only pending_approval so the queue is focused on actionable work.
The five statuses
Status | What it means | What you can do |
| Staged and waiting for review | Approve, Edit, Reject |
| Manually marked approved (rare — usually skipped via direct Approve & Post) | — |
| Successfully posted to QBO; you have a real journal entry | Void |
| You said no — the original is preserved as an audit record | Re-sync (creates a fresh staged entry) |
| Was posted, then voided in QBO | — |
Approving an entry
The three pending-row actions sit as compact icon buttons. Hover any one to see its color (green for Approve, red for Reject). The check icon already hints green even at rest.
Click the ✓
Approvebutton on apending_approvalrow.The Approve & Post modal opens. Review the journal lines, totals, and the QBO target accounts.
Review the balance preview banner — see Understanding the balance banner below.
Click
Approve & Post. The system calls QBO and posts the journal entry.On success the row flips to
postedand gets a QBO Journal Entry ID. The doc number in the Sync Log now links directly to the JE in QuickBooks Online.
The Approve & Post modal: totals summary, balance preview banner (when variance exists), and the post button.
Tip: Chronological ordering is enforced. You cannot approve March 5 if March 3 is still pending_approval. Approve oldest first. See Stuck on chronological order below for the escape valve.
If QBO returns an error (period closed, account no longer exists, rate limit) the entry stays pending_approval and a clear toast appears with the actual error — fix the cause and try again.
Understanding the balance banner
When the staged journal entry's debits don't equal its credits, the system needs to add a balancing line ("plug") to make the entry valid in QuickBooks. The Approve modal makes this explicit so you always know what will post.
The plug goes to your Cash Over/Short account (the account configured for cashOverShort in Account Mapping). The amount is the difference between debits and credits.
Three banner colors based on the size of the imbalance:
Banner | Imbalance range | What it means | Approve & Post button |
(none) | ≤ $0.01 | Entry is balanced as-is. No plug needed. | Enabled |
🟦 Blue (info) | ≤ auto-cap | Small imbalance — system silently plugs to Cash Over/Short. Normal drawer variance lives here. | Enabled |
🟨 Yellow (warning) | between caps | Larger imbalance — review carefully. Tick the confirmation checkbox to proceed. | Enabled only after checkbox is ticked |
🟥 Red (block) | > hard-cap | Very large imbalance. Almost always a mapping configuration error. | Disabled — fix mappings first |
Default thresholds: auto-cap $10.00, manual-review hard-cap $100.00. Adjust per store in QuickBooks > Settings > Approval thresholds — see Connect & Configure for the details.
Why the plug matters: prior to this transparency feature, the system silently injected the plug at post time without showing it in the queue. Configuration errors (e.g. an unmapped offset account causing one side of every transaction to be missing) hid behind the plug, posting as inflated Cash Over/Short on real books. Now you see the imbalance before you approve, and large imbalances block until you've checked the underlying mappings.
Tip: If you see a yellow or red banner consistently across multiple days, the issue is almost certainly an account mapping problem, not real drawer variance. Open the Account Mapping page and check that critical fields have the right accounts and (if applicable) offset accounts configured.
Editing before approval
The Edit modal: balance indicator at the top, journal lines table in the middle, adjustment lines section below.
Use ✎ Edit to change values before posting — useful for one-off corrections (e.g. DRS reported wrong cash count) without going back to fix source data.
Edit the line amounts in the modal.
If any field changes by more than $1.00 the system requires an
Edit Reason(10+ characters) for the audit trail.You cannot zero out
taxCollected— the system blocks this to prevent accidental tax reporting bugs.A maximum of 20 adjustment lines per entry.
After saving, the entry is still
pending_approval— clickApprove & Postto send the edited version to QBO.
The Approve modal shows a diff preview for edited entries — old value → new value side-by-side, so the approver can see exactly what was changed and why.
Rejecting an entry
Use 👎 Reject when the entry is wrong and you don't want it posted at all (e.g. the close report itself is bogus and you'll re-import).
Click
Rejecton the row. The Reject modal opens.Enter a rejection reason (10+ characters required).
Click confirm. The row's status becomes
rejected.
Rejected rows are preserved as audit records — they're never deleted. If you reject by mistake or get corrected source data, click Re-sync on the rejected row (or use the Sync Log's Re-sync action) to stage a fresh entry for the same date. The audit log shows the supersession chain.
Stuck on chronological order
PRD F5 Rule 1: entries must be approved in chronological order. If March 3 is pending and you try to approve March 5, the system blocks with:
Cannot approve out of chronological order. Earlier pending entries must be approved first.
Why: posting out of order can break bank reconciliation in QBO (retroactive entries into closed periods), inventory running totals, and other downstream accounting workflows. Forcing chronological order mirrors how a manual bookkeeper would process the same pile.
The escape valve — reject + re-stage:
If March 3 has a real problem you can't fix in 5 minutes, you can keep moving:
Reject March 3 with a clear reason ("data needs investigation, will re-stage later").
March 4, 5, 6 are now approvable (no earlier pending entry).
Fix the underlying issue (mis-mapped account, corrupt source file, whatever).
Once fixed, re-stage March 3 via the Sync Log's
Re-sync this dateaction — server creates a fresh staged entry. Approve it as soon as it appears.
So the rule isn't "approve in order or be stuck forever" — it's "either approve, reject, or fix the earliest pending entry before moving on."
Voiding a posted entry
Use ⊘ Void when an entry was already posted to QBO and needs to be reversed.
Click
Voidon apostedrow.Enter a void reason (10+ characters required).
Confirm. The system calls QBO's void endpoint and updates the local row to
voided.
Voiding in QBO does not delete the journal entry — it stamps it Void in QuickBooks (preserving the audit trail there too) so reports correctly reflect the reversal.
Bulk Approve
To approve multiple consecutive days in one click:
Tick the checkbox on each pending row you want to approve. The bulk action strip appears above the toolbar showing the selection count.
Click
Approve selectedin the strip.The Bulk Approve modal opens — confirm.
Entries are processed sequentially in chronological order. If one fails, processing stops and you're told which succeeded.
Tip: Bulk approve is most useful after a vacation week. The chronological-order rule still applies — you can only select consecutive pending entries.
Audit trail
Everything you do here is logged to the Audit Log:
sync_staged— system created the staged entryapproved→sync_posted— you approved, it posted to QBOsync_failed— QBO rejected the postedited— you modified the entry pre-approval (includes the edit reason + diff)rejected— you rejected the entry (includes the reason)voided— a posted entry was voided (includes the reason)
The audit log is append-only and includes user IDs, IP addresses, timestamps, and the full pre/post payload for every change.
What's next
Sync Log — see every posted entry (auto + manual) in one history with deep-links to the JE in QBO.
Audit Log — the full event history for compliance and debugging.
Reconciliation — periodic check that posted totals match DRS source data.





