Magento 2 reconciliation

Match your Magento 2 or Adobe Commerce orders against what your payment gateway, courier and BNPL provider actually paid you, and check every credit memo against a returned item.

Start free

Connect Magento 2, or upload the exports

Read-only connector: Magento 2 / Adobe Commerce

Sawwi's Magento 2 connector reads eleven reports through the Magento REST API with an integration token: orders, sales by payment method, invoices, invoices by store view and currency, credit memos (totals), credit memo lines (refunded items), shipment tracking numbers with weights, stock per SKU and source (Multi-Source Inventory), product prices with special prices and their dates, and, on Adobe Commerce only, gift card accounts and gift card and store credit redemptions. It only reads; Sawwi never writes to your store.

Run Magento with Microsoft Dynamics 365 Business Central? Sawwi checks that every Magento invoice and refund was posted in Business Central once, with the same total, VAT and customer, and that Magento's stock and prices match Business Central's inventory and unit prices, reading both sides through their connectors.

The connector is new. If it doesn't suit your setup yet, export the same data from the Magento admin and upload it. Magento 1 stores work through uploads of the order grid and credit memo exports.

13 Magento 2 reconciliations

Matching is done by Sawwi's own rules engine on keys, amounts and dates, never by AI, so the same files always give the same report.

Orders vs. payment gateway settlements

Match paid webstore orders to gateway settlements. Separate out MDR fees, refunds and chargebacks.

Files you need

  • Webstore order export: Orders exported from your store admin for the period.For example: Shopify orders CSV, Magento 1 order grid export, Magento 2 / Adobe Commerce order export, WooCommerce orders.
  • Gateway settlement report: Transaction-level settlement from your payment gateway.For example: Checkout.com settlement, Tap payouts, PayTabs transactions, Telr statement.

The Shopify connector can fill: Webstore order export. The Magento 2 / Adobe Commerce connector can fill: Webstore order export.

What Sawwi checks

  • Paid, not settled: The order is marked paid but there's no gateway capture for it.
  • Settled without an order: Gateway capture with no matching order in the webstore export.
  • Amount mismatch: Captured amount differs from the order total.
  • Chargebacks: Disputed transactions and their status.

Listed for you to review (not calculated automatically yet): refund mismatch; gateway fee above agreed rate.

Store invoices vs. ERP posted invoices

Check every invoiced webstore order reached your ERP once, as a posted invoice with the same total, VAT and customer.

Files you need

  • Webstore invoices: Invoices your store created for paid or delivered orders in the period.For example: Magento 2 / Adobe Commerce invoices, Shopify orders export (paid), WooCommerce orders.
  • ERP posted sales invoices: Sales invoices posted in your ERP for web orders, with the store's order number as their external reference.For example: Business Central posted sales invoices, Odoo customer invoices, Zoho Books invoices.

The Magento 2 / Adobe Commerce connector can fill: Webstore invoices. The Microsoft Dynamics 365 Business Central connector can fill: ERP posted sales invoices.

What Sawwi checks

  • Not posted in the ERP: The store invoiced the order, but the ERP has no posted invoice for it: the sync failed or is stuck.
  • Posted twice: The same order was posted more than once for the same amount, so revenue and VAT are overstated.
  • Total differs: The ERP's invoice total differs from the store's.
  • VAT differs: VAT posted in the ERP differs from the VAT on the store invoice.
  • Different customer: The ERP invoice carries another customer e-mail than the store order, e.g. posted to a guest or the wrong account. Ignore it if you post every web order to one customer.

Listed for you to review (not calculated automatically yet): posted without a store invoice.

Store refunds vs. ERP credit notes

Check every refund your webstore issued was posted in your ERP once, as a credit note for the same amount and VAT.

Files you need

  • Webstore credit memos (refunds): Credit memos your store created in the period, including shipping and goodwill refunds.For example: Magento 2 / Adobe Commerce credit memos, Shopify refunds export, WooCommerce refunds.
  • ERP posted credit notes: Sales credit memos posted in your ERP for web refunds, with the store's order number as their external reference.For example: Business Central posted sales credit memos, Odoo credit notes, Zoho Books credit notes.

The Magento 2 / Adobe Commerce connector can fill: Webstore credit memos (refunds). The Microsoft Dynamics 365 Business Central connector can fill: ERP posted credit notes.

What Sawwi checks

  • Refund not posted in the ERP: The store refunded the customer, but the ERP has no credit note for that order: revenue and VAT are overstated.
  • Credit note posted twice: The same refund was posted more than once for the same amount.
  • Amount differs: The ERP credited a different amount than the store refunded for that order.
  • VAT differs: VAT on the ERP credit note differs from the VAT the store refunded.

Listed for you to review (not calculated automatically yet): credit note without a store refund.

Store stock vs. ERP inventory

Compare what your webstore offers for sale per SKU with the inventory your ERP holds: catch overselling and stock hidden from shoppers.

Files you need

  • ERP item inventory: Your ERP's items with the quantity on hand right now.For example: Business Central items (inventory), Odoo stock on hand, Zoho Inventory items.
  • Webstore stock by source: The quantity your store can sell per SKU, one row per stock location if there are several.For example: Magento 2 MSI source items, Shopify inventory levels, WooCommerce stock export.

The Magento 2 / Adobe Commerce connector can fill: Webstore stock by source. The Microsoft Dynamics 365 Business Central connector can fill: ERP item inventory.

What Sawwi checks

  • Store sells more than you hold: The store offers more units than the ERP has on hand, so shoppers can buy stock you don't have.
  • Stock hidden from the store: The ERP holds more than the store offers: a source set out of stock, or a sync that didn't run.
  • Sold online, unknown to the ERP: The store has sellable stock for a SKU the ERP doesn't have, so its sales can't be posted.

Listed for you to review (not calculated automatically yet): in the erp, not in the store.

Store prices vs. ERP prices

Check each SKU's webstore price against your ERP's price, and catch special prices left running past their end date.

Files you need

  • Webstore prices: Your store's catalogue: price per SKU, with any special (sale) price and its dates.For example: Magento 2 product prices with special prices, Shopify products export, WooCommerce products export.
  • ERP item prices: The selling price your ERP holds per item, on the same VAT basis as the store.For example: Business Central items (unit price), Odoo product sales price, Zoho Inventory items.

The Magento 2 / Adobe Commerce connector can fill: Webstore prices. The Microsoft Dynamics 365 Business Central connector can fill: ERP item prices.

What Sawwi checks

  • Price differs from the ERP: The store's regular price isn't the ERP's price, so orders are invoiced at a different price than the shopper paid.
  • Special price past its end date: A special price whose end date has passed is still set. Magento stops applying it, but it's stale: remove it or extend it on purpose.
  • Special price above the regular price: The sale price is higher than the regular price, usually a typo.
  • Priced online, unknown to the ERP: A SKU the store sells that has no item in the ERP.

COD delivered vs. courier remittance

Make sure every cash-on-delivery order the courier delivered was remitted to you, in full and on time.

Files you need

  • Webstore order export: Orders exported from your store admin for the period.For example: Shopify orders CSV, Magento 1 order grid export, Magento 2 / Adobe Commerce order export, WooCommerce orders.
  • Courier delivery status report: Shipment-level delivery status from your courier.For example: Aramex shipment report, SMSA delivery report, iMile status export.
  • COD remittance statement: What the courier paid you, with deductions.For example: Aramex COD remittance, SMSA COD statement.

The Shopify connector can fill: Webstore order export. The Magento 2 / Adobe Commerce connector can fill: Webstore order export.

What Sawwi checks

  • Delivered, not remitted: Courier shows delivered but no remittance after the agreed cycle.
  • Collected short: Courier collected less than the COD amount.
  • Status conflict: Order is RTO or cancelled in your store, but the courier marked it delivered.

Listed for you to review (not calculated automatically yet): cod fee above contract.

BNPL settlements vs. orders

Reconcile Tabby / Tamara-style settlements: orders captured, refunds, merchant fees and payout batches.

Files you need

  • Webstore order export: Orders exported from your store admin for the period.For example: Shopify orders CSV, Magento 1 order grid export, Magento 2 / Adobe Commerce order export, WooCommerce orders.
  • BNPL settlement report: Order-level settlement report from your BNPL provider.For example: Tabby settlement report, Tamara payout report.

The Shopify connector can fill: Webstore order export. The Magento 2 / Adobe Commerce connector can fill: Webstore order export.

What Sawwi checks

  • Shipped, not captured: Order was fulfilled but the BNPL capture is missing, so you won't be paid.
  • Refund mismatch: Refund in the store differs from the BNPL refund.

Listed for you to review (not calculated automatically yet): merchant fee above agreed rate.

Refunds issued vs. returns received

Make sure every refund you paid out has a returned item, or an approved reason to have none.

Files you need

  • Refunds issued: Refunds or credit memos from your store admin.For example: Shopify refunds export, Magento 1 / Magento 2 credit memos, WooCommerce refunds.
  • Returns received: Items physically received back in your warehouse.For example: WMS returns inward, Returns app export.

The Magento 2 / Adobe Commerce connector can fill: Refunds issued.

What Sawwi checks

  • Refund without a return: Refund paid but the item wasn't received back.
  • Return without a refund: Item received but no refund issued, so the customer may be waiting.
  • Quantity mismatch: Refunded quantity differs from the quantity received.

Courier freight invoice vs. shipments

Check courier invoices against your shipments and contracted rates: weight disputes, zone errors, duplicate AWBs.

Files you need

  • Shipment manifest: Shipments you booked, with declared weights and destinations.For example: Courier booking export, Shipping app (e.g. ShipStation) export.
  • Courier freight invoice: Line-level invoice from the courier.For example: Aramex invoice detail, SMSA billing detail, DHL invoice CSV.
  • Courier rate card: Contracted rate by zone and weight slab.For example: Courier contract rate sheet.

The Magento 2 / Adobe Commerce connector can fill: Shipment manifest.

What Sawwi checks

  • Charged weight above declared: Billed at a higher weight slab than you declared.
  • Duplicate AWB billed: The same AWB is billed more than once.
  • Billed AWB not in manifest: Invoice line for a shipment you didn't book.

Listed for you to review (not calculated automatically yet): rate above contract.

Multi-currency store invoices vs. ERP

For each store view and currency, check the ERP booked every invoice in the right currency and at the base value Magento recorded, within an FX tolerance.

Files you need

  • Webstore invoices by store and currency: Invoices from every store view in the period, with the order currency, the base currency total and the exchange rate the store recorded.For example: Magento 2 invoices with base and order currency, Shopify Markets orders export (shop and presentment currency).
  • ERP posted invoices in two currencies: Posted sales invoices for web orders with their currency, the amount in that currency and in your local currency, and the store they belong to (a dimension).For example: Business Central posted sales invoices with currency and dimension, ERP sales register with FCY and LCY amounts.

The Magento 2 / Adobe Commerce connector can fill: Webstore invoices by store and currency. The Microsoft Dynamics 365 Business Central connector can fill: ERP posted invoices in two currencies.

What Sawwi checks

  • FX difference above tolerance: The ERP's local-currency amount differs from the base value the store recorded by more than 1.00: a different rate, or a different amount.
  • Posted in the wrong currency: The ERP invoice is in another currency than the store order.
  • Not posted in the ERP: A store invoice with no posted ERP invoice.
  • Store missing from the ERP: No ERP invoice carries this store's code in its dimension: the store isn't connected to the ERP, or its dimension isn't set.

Webstore sales by payment method vs. payouts and bank

Total webstore sales per payment provider (card, PayPal, Apple Pay, Tabby, COD), check each paid out what you sold, and that every payout reached the bank.

Files you need

  • Webstore sales by payment method: What the store sold in the period per payment provider and method, net of refunds paid back through the provider.For example: Magento 2 sales by payment method, Shopify sales by payment gateway report, WooCommerce payment gateway totals.
  • Expected payouts: Payout batches from each provider, with the fees it kept. Name each provider as in the store's sales report (e.g. Stripe, PayPal, Tabby, Cash on delivery).For example: Marketplace disbursement summary, Gateway payouts list, Courier remittance summary.
  • Bank statement: Bank statement for the account that receives payouts.For example: Emirates NBD / ADCB / Al Rajhi / SNB statement (CSV or Excel), MT940 converted to CSV.

The Magento 2 / Adobe Commerce connector can fill: Webstore sales by payment method.

What Sawwi checks

  • Sold, not yet paid out: The provider paid out less (before its fees) than the store sold through it: payouts still to come, or money missing.
  • Paid out more than sold: The provider paid out more than the store sold through it: orders missing from the store export, or another period's sales.
  • No payouts from this provider: The store sold through a provider that sent no payout in the period.
  • Payouts from a provider with no sales: A payout from a provider the store's report doesn't name. Check the provider's name matches.
  • Payout not credited: Provider says paid, but the bank shows no credit.
  • Bank credit differs from the payout: The amount differs because of currency conversion or bank charges.
  • Unidentified bank credit: Bank credit not linked to any payout.

Gift cards and store credit roll-forward

Adobe Commerce: check each gift card and store credit balance rolls forward (opening + issued − redeemed − expired = closing) against order redemptions.

Files you need

  • Gift card accounts: Each gift card's balance at the start and end of the period, with what was issued and expired. Gift card accounts are an Adobe Commerce feature, not part of Magento Open Source.For example: Adobe Commerce gift card accounts, Gift card provider balance report.
  • Store credit balances(optional): Each customer's store credit at the start and end of the period, with what was issued and expired. Store credit is an Adobe Commerce feature; export it from the admin.For example: Adobe Commerce store credit export, Customer wallet balance report.
  • Redemptions on orders: Gift card and store credit amounts used on orders in the period, one row each, with the gift card code or the customer's e-mail.For example: Adobe Commerce orders (gift cards and store credit used), Order export with gift card columns.

The Magento 2 / Adobe Commerce connector can fill: Gift card accounts, Redemptions on orders.

What Sawwi checks

  • Gift card balance doesn't roll forward: Opening + issued − redeemed − expired doesn't equal the closing balance: a gift card movement is missing or a balance was changed by hand.
  • Gift card redeemed above its balance: More was spent than the gift card held (opening + issued − expired).
  • Negative gift card balance: A gift card closed the period below zero.
  • Gift card redeemed with no issuance: An order used a gift card that isn't in the balances: it was never issued, or the balances are incomplete.
  • Store credit balance doesn't roll forward: Opening + issued − redeemed − expired doesn't equal the closing balance: a store credit movement is missing or a balance was changed by hand.
  • Store credit redeemed above its balance: More was spent than the store credit held (opening + issued − expired).
  • Negative store credit balance: A store credit closed the period below zero.
  • Store credit redeemed with no issuance: An order used a store credit that isn't in the balances: it was never issued, or the balances are incomplete.

Bank statement vs. expected payouts

Match every payout you expect from marketplaces, gateways, BNPL providers and couriers to actual bank credits, including FX differences.

Files you need

  • Expected payouts: Payout batches from one or more providers (marketplace, gateway, BNPL, courier).For example: Marketplace disbursement summary, Gateway payouts list, Courier remittance summary.
  • Bank statement: Bank statement for the account that receives payouts.For example: Emirates NBD / ADCB / Al Rajhi / SNB statement (CSV or Excel), MT940 converted to CSV.

What Sawwi checks

  • Payout not credited: Provider says paid, but the bank shows no credit.
  • Unidentified bank credit: Bank credit not linked to any payout.
  • FX / bank charge difference: The amount differs because of currency conversion or bank charges.

How it works

  1. 1

    Pick the reconciliation

    Each one knows which files it needs and what to check.

  2. 2

    Add the files

    Upload exports as they are, or pull them from a connection. Columns are mapped for you and remembered.

  3. 3

    Work the exceptions

    Every exception with its value, ranked by what it costs you, and every table downloads to Excel.

Questions

Which Magento versions does Sawwi work with?
The connector works with Magento 2 and Adobe Commerce through the REST API. On Magento 2.4.4 and later, the store must allow integration tokens to be used as bearer tokens. Magento 1 stores can upload their order and credit memo exports instead.
Does Sawwi handle several store views and currencies?
Yes. Sawwi reads each invoice's store view, order currency, base currency and the exchange rate Magento recorded, and checks Business Central booked it in the same currency and at the same local-currency value, within a tolerance. Stores whose invoices never reach Business Central are flagged too.
Can Sawwi reconcile gift cards and store credit?
Yes, on Adobe Commerce, where gift cards and store credit are built in; Magento Open Source doesn't have them. Sawwi checks each balance rolls forward (opening + issued − redeemed − expired = closing) against the redemptions on orders, and flags cards redeemed above their balance, negative balances and redemptions with no issuance. Store credit balances come from an admin export.
Does Sawwi change anything in my Magento store?
No. The connector only reads orders, invoices, credit memos, shipments, stock and prices, with a token you create for Sawwi and can revoke at any time. The token is stored encrypted.
Which payment gateways can I reconcile Magento orders against?
Any gateway whose settlement or transaction report you can download, for example Checkout.com, Tap, PayTabs, Telr or Stripe. Sawwi matches each order to its captures, refunds and chargebacks by the order reference.
Does AI decide which orders match?
No. Matching is done by a deterministic engine on order references, amounts and dates, with tolerances you can see. AI is only used to help read column headers.

Related reconciliations

Bring last month's exports and see what's missing.

Setup takes two minutes. Or try the demo store with invented data first, no sign-up.

Create your workspace