{"id":3974,"date":"2026-09-26T23:08:51","date_gmt":"2026-09-26T16:08:51","guid":{"rendered":"https:\/\/easystatementsheet.com\/blog\/how-to-clean-up-bank-feed-missing-transactions\/"},"modified":"2026-09-26T23:37:41","modified_gmt":"2026-09-26T16:37:41","slug":"how-to-clean-up-bank-feed-missing-transactions","status":"publish","type":"post","link":"https:\/\/easystatementsheet.com\/blog\/how-to-clean-up-bank-feed-missing-transactions\/","title":{"rendered":"How to Clean Up Bank Feed Missing Transactions"},"content":{"rendered":"\n\n\n<p class=\"wp-block-paragraph\">You opened your client&#8217;s QuickBooks file, and the bank feed shows &#8220;Disconnected.&#8221; The last sync was 6 weeks ago. Maybe the feed has a 30-day gap where transactions appeared but didn&#8217;t actually clear. Maybe the feed stopped pulling entirely 6 weeks ago.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Whatever the form, you now have a client&#8217;s books where some transactions are correct and some are not, and the bank statement PDF is the only reliable source.<\/p>\n\n\n\n\n<blockquote><strong>Quick Answers:<\/strong> <strong>Cleaning up bank-feed gaps<\/strong> requires a 4-step workflow: (1) diagnose the gap (what&#8217;s missing, from when, in which direction), (2) get bank statements as PDF for the gap period, (3) convert PDFs to CSV\/Excel using a tool like <a href=\"\/blog\/convert-bank-statement-to-csv\/\">EasyStatementSheet<\/a>, (4) reconcile the converted transactions against existing bookkeeping records to find duplicates, missing entries, and discrepancies. A typical 90-day feed gap across one account takes 2-4 hours to clean up. Most feed gaps are caused by bank-side authentication expiring, OAuth re-authorizations not completing, or the bank changing its API without notice to third-party tools. The fix is usually straightforward once you have the gap period identified.<\/blockquote>\n\n\n\n\n<h2 class=\"wp-block-heading\">What causes bank feed gaps?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Bank feed gaps fall into four categories: complete disconnection (the feed stopped working entirely at some point and is not currently active), partial gap (the feed works but has a known missing window), stale data (the feed shows transactions but hasn&#8217;t updated in days or weeks), and match errors (the feed pulls transactions but they don&#8217;t match the bookkeeping records cleanly).<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Each cause has a different fix.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Complete disconnection is the most common cause. It happens when the OAuth token between QuickBooks and the bank expires or is revoked, when the bank&#8217;s API changes its authentication requirements, when the bank merges with another institution and the API is migrated, or when the client&#8217;s online banking password changes and the connection is broken.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The bank&#8217;s customer support can usually re-establish the connection, but the gap period (from disconnection to reconnection) requires manual reconciliation.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Partial gaps are typically caused by maintenance windows, API rate limits, or transactional posting delays. If the bank&#8217;s API was down for 3 days, those 3 days of transactions may not appear in QuickBooks even though they posted to the bank.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The fix is to download the missing period&#8217;s statements and reconcile manually.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Stale data usually means the feed is connected but is not syncing. This can be a QuickBooks-side issue (a bug, a scheduled maintenance, a rate limit) or a bank-side issue (API change, authentication change).<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The fix is to disconnect and reconnect, which forces a fresh sync, but the resulting sync may still miss recent transactions if the bank&#8217;s API is the problem.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Match errors are the trickiest cause. The feed pulls transactions, but QuickBooks cannot match them to existing records cleanly. This can be because of date mismatches, amount mismatches, payee name variations, or duplicate transaction entries.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The cleanup involves identifying which transactions are missing, which are duplicates, and which are simply mismatched and need manual matching.<\/p>\n\n\n\n\n<!-- wp:heading\">\n\n\n<h2 class=\"wp-block-heading\">How do you diagnose the gap?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The first step is to identify the exact gap. In <a href=\"\/blog\/convert-bank-statement-to-quickbooks\/\">QuickBooks Online<\/a>, the Banking tab shows the status of each connected account.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For each account, check: when was the last successful download, what is the current connected status, and what is the high water mark of the latest transaction pulled. Compare this to the actual bank records (e.g., login to the bank's online portal and check the latest transaction). The difference is the gap.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The diagnosis also includes determining the cause.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Check the disconnect reason in QuickBooks (often shown as \"Bank requires reauthorization\" or \"Connection lost\"). Check the bank's online banking system for any messages or alerts. Check the bank's customer support pages for known API issues.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">In some cases, the diagnosis is straightforward (e.g., the OAuth token expired and reauthorization is required); in other cases, you may need to call the bank to identify the issue.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Document the gap in your workpapers: gap start date, gap end date, affected accounts, transactions potentially missing, cause of the gap.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">This documentation is useful for the client (to explain what happened and what they need to do), for you (to track the cleanup progress), and for tax\/audit purposes (to demonstrate the books are accurate as of a specific date).<\/p>\n\n\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/easystatementsheet.com\/blog\/wp-content\/uploads\/bankfeed_body.jpg\" alt=\"Bank feed gap cleanup showing disconnected bank, PDF bank statements queued for upload, and reconciliation checklist\" title=\"\"><figcaption class=\"wp-block-image-caption\">Bank-feed gap cleanup: disconnected connection, PDF statements as fallback, reconciliation status checklist<\/figcaption><\/figure>\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Where do you get the PDF statements for the gap period?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For the gap period, you need bank statements as PDF. The source depends on the bank's online portal capabilities. Most banks allow PDF statement downloads for 12-24 months back through their online banking portal.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For older statements, you may need to request them from the bank directly (typically by phone or in-branch request, with a 1-2 week turnaround).<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">If you have online banking access (with explicit client authorization), you can download the statements yourself.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The workflow is: log in to each account, navigate to statements, select the statement period, download as PDF, save to a working folder named for the account and period. For a 90-day gap with monthly statements, this is 3 PDF downloads per account.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">If you don't have online banking access, the client must download and send the statements.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The email request to the client should be specific: \"Please log in to Chase Business Checking, navigate to Statements, download the monthly statements for January, February, and March 2026 as PDF files, and email them to me.\" Vague requests (\"please send me the statements\") often result in the wrong files or missing periods.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For some banks, the only statement format available is image-based PDF (an image of the printed statement rather than a text-based PDF). These statements still work for the cleanup, but they require OCR to extract the data, which adds time and potential for OCR errors.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">EasyStatementSheet handles both text-based and image-based PDFs in the same workflow.<\/p>\n\n\n\n\n<!-- wp:heading\">\n\n\n<h2 class=\"wp-block-heading\">How do you convert the PDFs and identify what was missed?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Convert the gap period PDFs using EasyStatementSheet. The conversion produces a CSV or Excel file with one transaction per row.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Compare this against the existing bookkeeping records for the same period to identify four types of discrepancies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type 1: transactions in both the converted data and the books. These are correct and need no action.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type 2: transactions in the converted data but not in the books. These are missing from the books and need to be added.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type 3: transactions in the books but not in the converted data. These are likely duplicates or errors in the books and need review.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type 4: transactions with mismatched amounts or dates between the two sources. The bank likely posted the transaction differently than the books recorded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The most common find is missing transactions.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">These are transactions that posted to the bank during the gap period but never made it into QuickBooks because the feed was broken. The fix is to import the missing transactions from the converted CSV, with correct date, amount, payee, and category.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For ongoing reconciliation, missing transactions can be significant in volume (e.g., 50-100 transactions for a 3-month gap on an active account).<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The second most common find is duplicates. These are transactions that exist in both the bookkeeping records and the converted data, often with slight variations.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For example, a transaction might appear in QuickBooks with a date of March 28 and the payee spelled as \"AMAZON.COM\", and in the converted data with a date of March 29 and the payee spelled as \"Amazon Com\".<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">QuickBooks may not auto-match these because of the date difference, so they appear as a duplicate that needs review.<\/p>\n\n\n\n\n\n\n\n<h2 class=\"wp-block-heading\">How do you actually fix the bookkeeping records?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The fix depends on the type of discrepancy.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For missing transactions, the fix is to add them in QuickBooks with the correct date, amount, payee, and category. For duplicates, the fix is to match the converted transaction to the existing bookkeeping transaction (which prevents a duplicate from being added) or to delete the duplicate in QuickBooks.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For mismatches, the fix is to review which side is correct (typically the bank is correct, since that's where the money actually moved) and update the books to match the bank.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">QuickBooks Online has tools that help with this cleanup. The Bank Feed page shows suggested matches between downloaded transactions and existing entries.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For each suggestion, you can: confirm the match (which marks the existing entry as cleared), add it as new (which creates a new transaction), or transfer it to a different account. For multi-month gaps with many transactions, this manual matching is the bulk of the cleanup work.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">For transactions that are too unclear to auto-match (e.g., the payee is something like \"SQ *COFFEE SHOP\" and the books show \"Square Coffee\"), the fix is to manually review and decide: is this the same transaction (and the payee is just spelled differently), or is it a different transaction (and the converted data and the books both have errors).<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">This is the cleanup work that requires bookkeeper judgment, not just clerical matching.<\/p>\n\n\n\n\n<!-- wp:heading\">\n\n\n<h2 class=\"wp-block-heading\">How do you prevent future feed gaps?<\/h2>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Prevention starts with awareness of common failure modes. The most common is OAuth token expiration.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Most banks require reauthorization every 90-180 days (the bank's policy varies), and QuickBooks will prompt the user to reauthorize when needed. If the client ignores the prompt, the feed eventually disconnects. The prevention is: have the client reauthorize promptly when prompted, or set a reminder to check the QuickBooks Banking tab monthly for any reconnect prompts.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The second most common is password changes. If the client changes their online banking password and does not update QuickBooks, the feed will eventually disconnect. The prevention is: instruct clients to update their password in QuickBooks as soon as they change it in the bank's portal. Some bookkeeping workflows include a check for this as part of the monthly close process.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The third most common is bank API changes. When banks change their API, third-party tools like QuickBooks may need updates to maintain compatibility. The bank's customer support typically announces major API changes with 30-60 days notice. QuickBooks typically updates automatically within a few days of the bank change.<\/p>\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">The prevention is: monitor bank announcements and have a relationship with the bank's small business support team, who can confirm whether the change affects QuickBooks feeds.<\/p>\n\n\n\n\n\n\n\n<p class=\"wp-block-paragraph\">Despite all prevention, feed gaps will still happen occasionally. The right preparation is: have a documented cleanup workflow (the one in this article), have a sample cleanup checklist, and have a relationship with EasyStatementSheet (or similar) so PDF statements can be converted quickly when needed. The 2-4 hours of cleanup per gap is much cheaper than ignoring the gap and accumulating errors.<\/p>\n\n\n\n<div class=\"easys-ess-cta easys-entity-placement\" id=\"easys-3667605638\"><div id=\"easys-3852941847\" role=\"region\" aria-label=\"Advertisements\"><div style=\"border:1px solid #e1e7e2;border-radius:8px;padding:20px;margin:28px 0;background:#f7faf7\">\r\n  <p style=\"margin:0 0 8px;font-size:18px;font-weight:700;line-height:1.3\">Turn That PDF Into a Spreadsheet in Minutes<\/p>\r\n  <p style=\"margin:0 0 16px;line-height:1.6\">You've seen how to do it manually \u2014 now let the tool handle the heavy lifting. Upload your bank statement and get Excel, CSV, or QBO in a few clicks.<\/p>\r\n  <a href=\"https:\/\/easystatementsheet.com\/?utm_source=blog&utm_campaign=ess-cta-01\" style=\"display:inline-block;background:#1e7a4c;color:#fff;text-decoration:none;padding:10px 18px;border-radius:6px;font-weight:600\">Try It Free<\/a>\r\n<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>When QuickBooks bank feed stops or has gaps, you fall back to PDF statements. Diagnose the gap, convert PDFs, identify missing transactions, and reconcile.<\/p>\n","protected":false},"author":2,"featured_media":3969,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bank-statement"],"_links":{"self":[{"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/posts\/3974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/comments?post=3974"}],"version-history":[{"count":2,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/posts\/3974\/revisions"}],"predecessor-version":[{"id":3981,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/posts\/3974\/revisions\/3981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/media\/3969"}],"wp:attachment":[{"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/media?parent=3974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/categories?post=3974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/easystatementsheet.com\/blog\/wp-json\/wp\/v2\/tags?post=3974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}