Skip to content

Distinguish refunds, returns and inventory disposal

5 min readBusiness

Use this page to tell a paid refund from a physical return, inventory disposal, or a Flexport cost basis event. It explains when Finanly treats a refund as cash-only, when it waits for return evidence, and what to do when source data is missing or a row is blocked for review.

Before you start

  • You are working in a business workspace with access to reconciliation.
  • For Shopify payout reconciliation, the bank line amount and currency must match the payout before you can post.
  • For the Flexport return-disposal job and other Flexport-based handling, active Flexport and ERPNext connections must be available in the workspace; if they are missing, Finanly skips or blocks the workflow instead of guessing.
  • If a workflow is not available in your current workspace, you need the right access before you can use it.

What each term means

A refund is the money returned to the customer. A return is the physical item coming back or being received by Flexport. Disposal is the accounting treatment for returned goods that are written off instead of restocked. These are different events, and Finanly treats them separately when the connected sources provide enough evidence.

  • Refunds affect cash and refund accounting.
  • Returns affect the physical goods trail and the return decision.
  • Disposal affects cost basis and inventory write-off treatment.
  • Flexport can be the source of truth for whether returned goods were received or lost in the warehouse.

How Finanly treats Shopify refunds

For Shopify refunds, Finanly can book the refund amount and, when the connected return evidence supports it, separate out the returned goods cost basis. The refund entry is not the same as the physical return itself. A refund may happen after a return, and some returns may never be refunded.

  1. Open the reconciliation workflow for the Shopify payout or the related refund context.
  2. Review the preview to see whether the item is treated as a refund only or whether returned goods are also included in the cost split.
  3. If the preview is not fully resolved, stop and review the source data before posting.

How Finanly treats Flexport returns and disposal

For the nightly Flexport return-disposal job, Finanly only posts disposal when the return is received or marked lost in the warehouse. It values the returned units at cost on the received date and posts one journal entry per return case when the cost basis is complete.

  • Received returns can be disposed at cost.
  • FP_WAREHOUSE_LOST is treated as a disposal case.
  • Returns that are still pending are not posted yet.
  • If cost basis cannot be resolved, the return stays blocked instead of being guessed.

Flexport models and original cost basis

When Flexport data is available, Finanly uses the received date and the connected cost basis rules to value the returned units. Returned items are grouped by product family, and the original cost basis is used instead of inventing a new amount. If the cost basis is missing, incomplete, or non-positive, the return is surfaced as an exception.

  • The received date is the accounting date for disposal.
  • Returned units are valued using the connected cost basis source.
  • If the cost basis cannot be fully resolved, Finanly does not post a zero-cost write-off.
  • Kit companions can be treated as part of the Machines family when the return rules call for that grouping.

Source windows and source identity

The matching and disposal workflows use exact source windows and source identity checks. That means Finanly relies on the connected source record for the payout, invoice, order, or return case instead of guessing from the bank line alone. If the source data is unavailable or does not match, the workflow stays blocked or unposted.

  • Shopify payout matching requires the bank line amount and currency to match the payout.
  • Flexport invoice and return workflows use the connected invoice or return identity from the source data.
  • If the workflow cannot prove the source, it refuses to post rather than guessing.
  • A stale or changed preview must be reviewed again before posting.

Approvals and posting states

A preview is not a posting. The approval step is what lets a posting go through. If the preview is incomplete, not reconciled, or contains unresolved source issues, Finanly keeps it out of the live post flow and shows it as something you still need to review.

  • Review preview means you are seeing a draft only.
  • Approve and post creates the accounting request.
  • Handled manually means the item is removed from the automation flow.
  • Retry sends an exception item back into the next run after the issue is fixed.

Common failure states and what to do

Typical blocked states and recovery
What you seeWhat it meansWhat to do next
unmapped charge categoriesThe connected source includes a category Finanly does not yet know how to route.Contact support to review the missing mapping, then preview again after it is confirmed.
return label unattributedA Flexport return-label row could not be assigned to a family.Contact support to review the required override before another preview.
preview not reconciledThe preview does not balance or does not match the bank line.Do not post. Review the source amounts and selection.
cost basis incompleteFinanly could not resolve the unit cost for the return.Wait for the source data to be fixed or review the exception manually.
returns snapshot unavailableThe Flexport snapshot could not be fetched.Try again after the source connection is available.

When a source is unavailable, Finanly keeps the item in an exception or waiting state instead of forcing a posting. If a bank line or source row is already posted, you should not rematch it to a different bank line.

How to recover safely

  1. Open the relevant reconciliation page for the workflow you are working on.
  2. Review the preview details and identify whether the issue is a refund, a physical return, or a disposal block.
  3. If the item is in exception, use Retry only after the missing source data or mapping has been fixed.Retry
  4. If the item was handled outside Finanly, choose Handled manually instead of trying to rebook it under a different identity.Handled manually
  5. If the preview changed, create or restore the current preview before approving and posting.

Updated

Related guides

We can help

Still need a hand?

Tell us which workspace and page you were using, what you expected, and what happened. Include the time and any request reference shown on screen.

Keep passwords, access tokens and private bank details out of your message. Review screenshots before sharing them.