If you're an importer in Canada who logs into the CARM Client Portal on the 25th of the month, downloads your Statement of Account, and then stares at your broker's invoice trying to figure out why the numbers don't line up — you are not alone, and you are not doing anything wrong.
The two documents are designed to show different things. They come from different systems, on different billing cycles, with different scopes. A difference between them is expected. The question isn't whether they'll match — the question is whether the difference can be explained.
This article walks through the nine real reasons the numbers diverge, how to identify which reason applies to your situation, and a repeatable reconciliation method you can run every month in under an hour.
Why the two documents exist
Before getting into why they don't match, it's worth understanding why they're two separate documents in the first place.
Your Statement of Account (SOA) is issued by the Canada Border Services Agency (CBSA) through the CARM Client Portal on the 25th of each month. It summarizes every commercial accounting declaration (CAD) that was released between the 18th of the previous month and the 17th of the current month, plus any adjustments, credits, interest, and penalties posted during that period. The SOA exists for one purpose: to tell you how much you owe CBSA, and when payment is due.
Your customs broker's invoice is issued by your broker (Livingston, Cole, Farrow, FedEx, or any of the hundreds of licensed Canadian customs brokers). It covers the broker's entire service relationship with you for a given period — including the duty and GST they paid to CBSA on your behalf (if applicable), the brokerage service fees they charge for filing each CAD, disbursement fees, and sometimes freight, warehousing, or inspection charges.
The SOA is a government ledger. The broker invoice is a service bill. They measure different things, so they almost never agree on a total. That's the starting point.
The nine real causes of SOA-vs-broker-invoice variance
Here are the nine reasons the numbers diverge, in rough order of how commonly they show up.
1. Brokerage service fees
Every CAD your broker files on your behalf earns them a service fee. Most brokers charge per entry — typically $75 to $350 depending on complexity, origin, and your contract. For a company doing 20 shipments a month, that's $1,500 to $7,000 in brokerage fees monthly.
None of those fees appear on your SOA. The SOA only reflects what CBSA itself has assessed — duty, GST, excise, SIMA duties, surtaxes, interest, and penalties. Brokerage service fees are a commercial transaction between you and your broker, not a government charge.
So the first and biggest reason your totals differ is this: your broker's invoice includes their service fees on top of the CBSA charges, while the SOA shows only the CBSA charges. The difference between the two — at minimum — will equal your total brokerage service fees for the period.
What to check: Your broker's invoice should have a clear line item for "brokerage fees" or "service charges" separated from the duty and GST amounts. If it doesn't, that's the first thing to request from them — an itemized breakdown showing duty, GST, brokerage, and other charges as separate line items.
2. GST on brokerage services (separate from GST on imports)
Here's where it gets confusing for bookkeepers. There are two kinds of GST in play on your import operation:
- GST on the imported goods themselves — paid to CBSA at the time of import, appears on your SOA and on every CAD filed on your behalf. Claimable as an Input Tax Credit (ITC) on your GST/HST return.
- GST on your broker's service fees — paid to your broker (who remits it to CRA separately as any service business does), appears only on the broker invoice. Also claimable as an ITC on your GST/HST return.
Both are claimable. Both are legitimate ITCs. But they come from different places and show up on different documents.
A common mistake is treating the total GST on the broker invoice as a single number representing "GST on imports," when in reality it may be a combination of GST on imports (pass-through from CBSA) plus GST on brokerage fees (the broker's own charge). If your bookkeeper is claiming the total GST number from the broker invoice as import ITCs, they may be misattributing which portion came from where — which doesn't change the total ITC amount, but creates documentation problems if CRA audits.
What to check: The CADs filed on your behalf show the exact GST paid to CBSA per shipment. That number should appear on your SOA in aggregate as "GST/HST collected" under the revenue breakdown section. Any GST amount on the broker invoice beyond that number is GST on the broker's own services.
3. Disbursement and ancillary fees
Many brokers add disbursement fees — charges that reimburse them for expenses incurred on your behalf or cover small administrative costs. These can include:
- Bond fees (if they post their own security for special circumstances)
- EDI filing fees
- Warehouse entry fees
- Inspection coordination fees
- Courier fees for physical document delivery
- PGA (Participating Government Agency) coordination fees for CFIA, Health Canada, Transport Canada, or other regulatory touchpoints
These are commercial charges that don't exist on the SOA. They'll typically appear on the broker invoice as "disbursements," "other charges," or individual line items.
What to check: Ask your broker for a glossary of every non-duty, non-GST line item they bill you. You should know what every charge is for. If they can't explain what a charge represents, that's a problem worth pushing back on.
4. Historical debits and credits on your CBSA account
This is the cause that trips up even experienced importers. The SOA total isn't just the current period's activity — it includes any outstanding balances carried over from prior periods.
Historical debits come from:
- Adjustments filed by your broker on past shipments (corrections that resulted in more duty or GST owed)
- Reassessments by CBSA on past shipments (when CBSA's post-release verification finds an error)
- Late accounting penalties from previous periods that weren't paid
- Interest on unpaid balances
Historical credits come from:
- Refunds owed to you from past adjustments that reduced duty or GST
- Overpayments from previous periods
- Cash deposits posted as security that exceed current requirements
When CBSA's payment allocation rule kicks in, any payment you make gets applied to the oldest outstanding balance first. So you might pay the current month's SOA total exactly, but the payment goes toward a six-month-old historical debit, leaving the current period still showing as unpaid. This creates the illusion of a reconciliation problem when it's actually just a payment allocation artifact.
What to check: In the CARM Client Portal, go to Financial Information → Transaction History and filter by a date range that goes back 12-24 months. Look for any transactions labeled as adjustments, reassessments, interest, or penalties that are older than the current billing period. If historical debits or credits exist, the current SOA balance won't match the sum of the current period's CADs.
5. Multiple broker scenarios
If you use more than one customs broker — which is more common than you'd think among importers with diversified product lines or multiple shipping lanes — each broker's invoice shows only the transactions they handled. But your SOA shows every CAD filed on your behalf, regardless of which broker filed it.
So if Broker A filed 15 CADs and Broker B filed 5 CADs for you this month, Broker A's invoice will show totals for their 15 entries and Broker B's will show totals for their 5. Neither invoice will match the SOA, but the sum of both should approximately match the CBSA-charge portion of the SOA.
What to check: If you see a discrepancy that can't be explained by the other items in this list, ask yourself: did any shipment get filed by a different broker, a freight forwarder, or a courier service (UPS, FedEx, DHL, Purolator) acting as its own broker? Those transactions still appear on your SOA under your business number, but may not appear on your primary broker's invoice.
6. Timing mismatches between billing cycles
Your SOA covers a specific, CBSA-defined billing cycle: the 18th of one month to the 17th of the next. It's issued on the 25th. Payment is due 10 business days after the 17th — typically around the first week of the following month.
Your broker's invoice cycle may be different. Some brokers invoice weekly. Some invoice monthly on a different date (often the 1st or the 15th). Some invoice within 5 business days of each filing. Some bundle multiple shipments into a single invoice issued at month-end on their own calendar.
This creates timing drift. A shipment released on April 16 appears on your April SOA (because the billing cycle closes April 17). But if your broker invoices on April 30, the service fee for that shipment appears on your April broker invoice too. Another shipment released on April 18 appears on your May SOA (next billing cycle) — but if your broker's invoice runs through April 30, the service fee for it may still be on your April broker invoice.
Over a single month, the timing differences will leave one or two shipments straddling the cycle. That's normal. Over a 12-month period, it washes out.
What to check: When comparing a specific SOA against a specific broker invoice, check the release date range covered by each. The SOA will be exactly the 18th-to-17th cycle. The broker invoice may cover a slightly different span. Map each shipment to both documents by release date, and any "mismatch" that's actually just timing will become obvious.
7. Correction and adjustment timing
A CAD can be corrected by the broker between its initial submission and the payment due date — this is the "correction window," and corrections during this period are penalty-free. After the payment due date, changes become adjustments, which may trigger penalties and interest.
When a CAD is corrected, the original version is superseded. The SOA reflects the final corrected version. But your broker may have issued an invoice based on the original CAD before the correction was filed.
Example: Broker files a CAD on April 20 with $1,000 in duty. Broker invoices you on April 25 based on that amount. On April 30, broker realizes the classification was wrong and files a correction — duty drops to $600. The SOA, issued on May 25 for the April cycle, reflects the corrected $600. Your April broker invoice still shows $1,000.
What to check: Ask your broker if any corrections were filed in the current period, and for which shipments. Compare the version history of each CAD in the CARM portal against the amounts on the broker invoice. Corrected CADs are the single most common source of apparent "discrepancies" that are actually just version drift.
8. SIMA duties, excise, and surtaxes
CBSA's SOA breaks out every revenue type separately: customs duty, excise duty, excise tax, SIMA (Special Import Measures Act) duties, anti-dumping duties, countervailing duties, surtaxes, GST/HST, and PST/QST. Each is a distinct line on the revenue breakdown.
Your broker's invoice may bundle all of these together as "duties and taxes" or just "CBSA charges." From your broker's perspective, a dollar paid to CBSA is a dollar paid to CBSA — it doesn't really matter which bucket it came from. From CBSA's perspective, the distinction matters hugely because different buckets have different legal bases and different adjustment rules.
If you're importing goods subject to SIMA (steel, aluminum, certain chemicals, certain consumer goods from specific origin countries) or carrying a surtax (like the current 10% IEEPA-response surtax on certain US-origin goods, or sector-specific surtaxes on steel and aluminum), those amounts will be itemized on your SOA but may be rolled up on your broker invoice.
What to check: Review the SOA's revenue breakdown section — it shows amounts by type. Check if any category is non-zero beyond duty and GST. If SIMA or surtaxes exist, they're the reason part of your duty total on the SOA is higher than expected, not a reconciliation error.
9. Late accounting penalties, late payment penalties, and interest
Starting January 2026, CBSA's transition period for waiving late payment penalties and interest ended. As of February 2026, overdue balances accrue interest and attract penalties. Late accounting penalties (LAPs) — issued when a CAD isn't filed within 5 business days of release — have been enforced since January 2025.
These amounts appear on the SOA as distinct charges. They typically do not appear on your broker invoice because they're CBSA-assessed penalties, not broker service charges. If you see unexplained additions on your SOA that aren't in your broker invoice, check whether any transactions from previous months triggered LAPs or late payment charges.
What to check: In the CARM portal, look at the "Invoices" section under Financial Information. LAPs and late payment penalties are typically posted as separate invoices (K23 miscellaneous invoices) with clear descriptions. If any exist, they're part of your current SOA balance but not reflected on your broker invoice.
How to reconcile your SOA against your broker invoice — a repeatable monthly method
Given all nine causes above, here's the practical method to close out a month's reconciliation in about an hour.
Step 1: Download both documents.
From the CARM Client Portal, download your SOA for the current period. From your broker, request an itemized invoice that separates duty, GST, brokerage fees, and other charges per shipment.
Step 2: Pull individual CADs from the portal.
In the CARM Client Portal, go to Declarations and export all CADs filed in the SOA's billing period. Each CAD shows the HS codes, duty, and GST at the line-item level.
Step 3: Build a reconciliation spreadsheet.
Create a table with one row per shipment and columns for:
- CAD reference number
- Release date
- Supplier
- CAD duty (from the portal)
- CAD GST (from the portal)
- Broker invoice duty (from the invoice)
- Broker invoice GST (from the invoice)
- Broker invoice service fee
- Broker invoice other charges
- Total per shipment (CAD duty + CAD GST + broker service fee + other)
Step 4: Match shipments across both documents.
Map each shipment from the SOA to the corresponding line on the broker invoice. Most will match cleanly. Flag any that don't.
Step 5: Investigate each flag.
For every flagged shipment, check against the nine causes above in order:
- Is the shipment on a different broker's invoice? (Cause 5)
- Was a correction filed? (Cause 7)
- Is the shipment in a timing gap? (Cause 6)
- Does it involve SIMA or surtax? (Cause 8)
Step 6: Reconcile the totals.
Your equation should balance like this:
SOA total payable = (Sum of all CAD duty from the period) + (Sum of all CAD GST from the period) + (SIMA/surtax/excise if any) + (Late payment penalties if any) + (Historical balances if any)
Broker invoice total = (Sum of all CAD duty paid on your behalf) + (Sum of all CAD GST paid on your behalf) + (Brokerage service fees) + (GST on brokerage fees) + (Disbursement fees) + (Other charges)
The difference between the two should be explainable as: broker service fees + GST on brokerage + disbursement fees + historical balance effects.
If the difference isn't explainable after going through the nine causes, that's when you escalate to your broker and ask for a written explanation. Under CARM, you're personally liable for accuracy on every filing under Section 17 of the Customs Act — so unexplained variance isn't just an accounting nuisance, it's a compliance risk.
What a clean reconciliation actually looks like
When the numbers reconcile cleanly, every dollar on both documents has a source you can point to, every shipment appears in both places with matching duty and GST amounts, and the only difference between the totals is the broker's service layer (fees + GST on fees + disbursements).
When reconciliation is broken, typically one of three patterns is present:
Pattern 1: The broker invoice is a lump sum. No itemization. One number for "CBSA charges" or "duties and taxes." This is the most common pattern for SMB importers and it makes reconciliation practically impossible without requesting an itemized breakdown. If your broker is sending lump-sum invoices, request itemized ones going forward — this should be standard.
Pattern 2: Classifications changed between CAD filing and your reconciliation. A shipment that looked straightforward at filing may have been adjusted. The SOA reflects the final version. Your invoice reflects an earlier version. Neither is wrong, but they represent different moments in the filing lifecycle.
Pattern 3: You have unexplained historical debits or credits. These show up in the CARM portal transaction history as adjustments, reassessments, or allocation artifacts from past periods. Cleaning these up requires reviewing 12-24 months of history and often a call with CBSA or your broker to resolve specific line items.
The bigger picture: why monthly reconciliation matters
Under CARM and particularly under Section 17 of the Customs Act (in force as of January 2026), the importer of record is personally liable for classification accuracy, duty calculations, and compliance on every shipment. CBSA has a four-year reassessment window. That means anything filed today can be audited until April 2030, and if CBSA finds errors, the bill — including any back-duties, penalties, and interest — lands on you, not your broker.
Monthly reconciliation isn't just accounting hygiene. It's your Section 17 defense. If you can't reconcile your SOA against your broker's invoice each month, you can't demonstrate that you exercised reasonable care in reviewing the filings made on your behalf. And if CBSA comes asking in 2028 about a shipment from 2026, you need the reconciliation worksheet, the CADs, the broker invoice, and the resolution notes all in one place.
Beyond compliance, the reconciliation also protects your bookkeeping. Input Tax Credits on imported goods are claimable on your GST/HST return — but only with supporting documentation. The CAD is the primary documentation the CRA accepts. If you're estimating the GST portion from a lump-sum broker invoice, your ITC claim may not hold up under audit. A clean reconciliation means your ITC claim is backed by actual CBSA-assessed GST amounts, traceable to specific CADs, supported by the SOA.
When the manual method breaks down
The nine-cause framework and six-step method above work well if you're doing 5-20 shipments a month. At that volume, an hour of monthly reconciliation is manageable.
If you're doing 50-500 shipments a month, manual reconciliation becomes a multi-day project. The timing mismatches, correction versions, and payment allocation artifacts compound quickly. Most importers at this volume either skip reconciliation entirely (paying the SOA total and hoping it's right) or hire an external accountant to clean it up at year-end (which is expensive and too late for correction windows).
This is the gap that ClearBorder was built for. ClearBorder takes your CADs, your SOA, and your broker invoice, pulls out the per-shipment breakdown automatically, flags missed preferential rates and classification discrepancies, and generates a monthly reconciliation report you can file as your Section 17 due diligence record. It's the manual method above, automated.
If you'd like to try it on your actual documents, it's free and there's no signup required to generate a report. Upload a month's worth of CADs, your SOA, and your broker invoice, and you'll have a reconciliation in about 60 seconds. [Try it at clearborder.ca.]
Final notes
A few practical reminders:
Your SOA will not show what's on your broker invoice. Ever. They're different documents with different scopes. Stop trying to make them match total-to-total.
The correct reconciliation is shipment-by-shipment, not total-to-total. Map each CAD across both documents. Differences that look huge at the total level often disappear when you go one shipment at a time.
Keep everything for 6 years. CBSA requires 6-year retention of records. Your SOA, your CADs, your broker invoices, and your reconciliation worksheets all count. Save them as PDFs, name them consistently, and store them somewhere you can find them in 2032 if CBSA asks.
Ask your broker for itemized invoices. You have the right to a clear breakdown of what you're being charged for. Lump-sum invoicing is convenient for the broker but makes your job impossible. If your broker refuses to itemize, that's a signal to shop.
Don't panic if you can't reconcile your first few months. Most importers have 12+ months of historical balance artifacts that need to be cleaned up before current-period reconciliation works cleanly. Build the discipline month-over-month. After 6 months of clean reconciliation, the process takes 15 minutes.
The SOA and the broker invoice were never meant to match. They exist to answer two different questions — what you owe the government and what you owe your broker. The job of reconciliation is to prove that every dollar on both documents has a legitimate source, and that you, as the importer of record, know where each one came from.
Have a specific reconciliation problem we didn't cover? Drop it in the comments — we'll update this article as new patterns emerge.
Try ClearBorder
Stop reconciling your CARM documents by hand. Upload your CADs, SOA, and broker invoice. Get back a full monthly report in 60 seconds. No signup required.