Money movements in Magento - invoices, shipments, credit memos - seem simple until partial fulfilment, partial refunds and payment-gateway timing enter the picture. Get them wrong and order totals, accounting exports and PSP records disagree in ways that take hours to untangle. Here is how the pieces fit and where the traps are.
The Document Model
An order accumulates documents:
- Invoice(s): what you have charged - can be partial (invoice 2 of 5 items now, the rest when stock lands)
- Shipment(s): what has gone out - independent of invoicing, also partial-capable
- Credit memo(s): what you have returned - against invoiced amounts, partial or full, itemised or adjustment-based
The order’s state derives from the document set: fully invoiced + fully shipped = complete; credit memo for everything = closed. Trust the documents, not manual status edits - the accounting export reads the documents.
Partial Invoices: The Backorder Pattern
Partial invoicing exists for real scenarios: dispatch what is in stock, invoice what you dispatched, capture only that amount. The trap: payment capture vs authorisation. If your gateway captured the full amount at order placement, you cannot invoice partially without a refund later. Decide the capture policy (authorize-at-order, capture-at-invoice) deliberately - it determines whether partial invoicing is clean or a refund ballet.
Credit Memos and Refunds
The credit memo screen offers online refund (via the payment gateway API) or offline refund (recorded in Magento, money moved by you - bank transfer, cheque, manual PSP action).
Rules that prevent pain:
- Prefer online refunds so Magento and the PSP agree automatically; verify the PSP supports refunds via API for your payment method (most do; some stored-value methods do not)
- Adjustment fields (adjustment fee/refund) exist for restocking fees and goodwill - itemise where possible instead, for cleaner accounting
- Shipping refunds are a separate line - refunding shipping on a returned order is a policy decision, not a default
The Consistency Checks
Monthly, reconcile three numbers: Magento’s invoiced total minus refunded total, the PSP’s net captured amount, and your accounting system’s revenue. They should match to the penny. Divergence sources to hunt: offline refunds nobody recorded in the PSP, partial invoices against full captures, currency rounding on multi-currency orders.
Refund Speed Is Reputation
Operationally: refund cycle time (return received to money back) is a metric customers feel. UK distance-selling rules give you 14 days; best practice is under five working days. Slow refunds convert reasonable customers into chargebacks - and chargebacks cost you fees regardless of who wins.
Master the document model, align capture policy with fulfilment reality, prefer online refunds - and the three-way reconciliation stays boring, which in finance is the highest praise available.