Vai al contenuto principale

FBA fees · intermediate · 4 min read

Settlement reconciliation, end to end

Every Amazon settlement line ties to an order, return, fee, or adjustment. This guide shows how to set up daily reconciliation that finds discrepancies.

By Kenderson Tripaldi · April 14, 2026

A clean settlement reconciliation is the difference between an FBA business that knows its margin and one that's flying blind. Every dollar Amazon pays you, every dollar Amazon takes back, every dollar in fees, every dollar in adjustments — they all flow through settlement reports, and the report is the only ground truth. This guide walks through how to set up a reconciliation process that catches the discrepancies most operators miss.

What a settlement actually contains

Amazon issues settlements on a fortnightly cycle (most marketplaces) or biweekly cycle, depending on your account history and risk profile. Every settlement is a flat list of line items, each one tagged with a type. The types you actually need to think about:

  • Order: principal payment for an order that shipped during the cycle.
  • Refund: principal returned for a refunded order.
  • Fee: a positive amount Amazon owes you, or (more commonly) a negative amount Amazon is taking out — referral fees, FBA fulfillment fees, storage fees, removal fees, return-processing fees.
  • Adjustment: a one-off correction. Reimbursements arrive here, as do manual corrections from Seller Support.
  • Other: a catch-all that's worth investigating when it appears.

Every line should reconcile to something — an order, a return, a fee schedule entry, or a tracked reimbursement case. Lines that don't reconcile are where the money leaks happen.

The MarginLock data model

When MarginLock pulls a settlement report, it produces three kinds of rows:

  • Settlement — one per settlement period, with totals.
  • SettlementLine — one per line in the report, typed and amount-bearing.
  • FeeAdjustment and Reimbursement — derived rows, produced by the fee engine and reimbursement detectors after the lines land.

The reconciliation flow is: SP-API report → SettlementLine rows → detector pass → FeeAdjustment and Reimbursement rows → human review queue.

Setting up daily reconciliation

Most reconciliation guides tell you to do it monthly. Don't. Monthly reconciliation means the average leak goes undetected for two weeks, and a fee dispute window can elapse before you've even noticed the discrepancy. Run reconciliation daily.

  1. Pull settlement reports as they close

    The Amazon report-request API takes about 10–30 minutes from settlement close to report availability. MarginLock polls automatically; if you're rolling your own, set up a 30-minute poll on the _GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2_ report type.

  2. Tie every line to a parent record

    For order and refund lines, match on order-id. For fee lines, match on order-id and fee-type. For adjustment lines, match on adjustment-id. Lines that don't tie are where you investigate.

  3. Run the detector pass

    For each fee line, check it against the fee schedule. For each refund line, check it against the original order. Discrepancies produce FeeAdjustment rows.

  4. Queue mismatches for human review

    Untied lines, unexpectedly large fees, and reimbursements that don't tie to a tracked case all go to a daily review queue. Most days the queue is short; the days it's not are exactly the days you wanted to know about.

The five most common discrepancies

In rough order of frequency:

  1. Misclassified referral fee. A SKU's category at sale time differs from the category Amazon billed against. This is silently common after category changes.
  2. Dim-weight overcharge. Amazon's measurement of your box came back higher than your manifest, and the FBA fulfillment fee billed on the inflated dim-weight tier.
  3. Duplicate return. A return arrives, gets processed, then arrives again because of an Amazon system bug or buyer-side reshipment. You get charged the return-processing fee twice.
  4. Reimbursement that doesn't tie. A reimbursement line shows up but doesn't match any case you opened. (Most of the time this is a good surprise. Always verify.)
  5. Storage-fee tier mistake. A SKU was charged at long-term storage rates that shouldn't apply because the inventory was newer than the threshold.

What to do when something doesn't tie

The dispute window for most fee categories is 90 days. If a discrepancy is small (under $50, say) and one-off, it's often not worth the operational cost of disputing — you can let it go. If it's large, or if it's a pattern across multiple SKUs or settlements, file a case immediately.

The MarginLock review queue surfaces both the dollar amount of the discrepancy and a recommended action — file a case, batch with similar discrepancies, or write off. The recommendation is advisory; the operator makes the call.

Beyond daily

Once daily reconciliation is in place, the next step is alerts on outliers. "Tell me when a single settlement has more than $500 of unreconciled fees" catches the cases worth dropping everything for. Set the threshold at ~1% of your weekly Amazon revenue and tune from there.