Skip to main content
Table of Contents

How Retail Returns Sync to METRC

Retail returns sync to METRC in different ways depending on whether the return is partial or full. This distinction is important because METRC handles sale updates and sale deletions very differently…

NIr Malchy
Updated by NIr Malchy

Retail returns sync to METRC in different ways depending on whether the return is partial or full. This distinction is important because METRC handles sale updates and sale deletions very differently.

This article explains both scenarios step by step and outlines what happens to package quantities in each case.

Key Definitions

  • Partial return
    Only some of the quantities from the original sale are returned.
  • Full return
    All quantities from all order lines on the original sale are returned.

Case 1: Partial Return

(Some quantities from the original sale are returned)

What Flourish does

  1. Flourish updates the existing sale in METRC.
  2. The updated sale includes only the packages and quantities that should still be considered sold after the return.
  3. Any package that was part of the original sale but is not included in the updated sale is implicitly treated as returned.

What METRC does

  1. METRC automatically detects that the package is no longer part of the sale.
  2. METRC unfinishes the package and restores the applicable quantity as part of its internal sale-update behavior.

Important notes

  • Flourish does not explicitly unfinish packages in this scenario.
  • Quantity restoration is handled entirely by METRC.

Summary

For partial returns, Flourish updates the sale and relies on METRC’s native behavior to restore returned quantities.

Case 2: Full Return

(All quantities from all order lines are returned)

Why is this case different

METRC does not support updating a sale to represent a complete return. When everything is returned, the sale must be removed instead.

What Flourish does

  1. Flourish deletes the original sale in METRC.
  2. As part of this automated deletion process, Flourish evaluates which packages may need to be unfinished.

How package unfinishing is determined

  1. For each package involved in the original sale, Flourish checks the package’s remaining quantity.
  2. Flourish applies the same conservative safety logic used when finishing packages, but in reverse:
    • If the remaining quantity is 1 unit or less, the package is added to a list of packages to possibly be unfinished.
    • If the remaining quantity is greater than 1 unit, the package is skipped and left unchanged.

Why this safeguard exists

  • Packages with more than 1 unit remaining clearly still represent active inventory.
  • Automatically unfinishing those packages could result in incorrect inventory states.
  • This logic ensures that only packages that appear effectively depleted are considered for unfinishing.

Summary

For full returns, Flourish deletes the sale and then conditionally unfinishes packages using automated, conservative rules designed to protect inventory integrity.

Why Partial and Full Returns Behave Differently

This behavior is driven by METRC’s API constraints and how it interprets sales data.

Scenario

How METRC Is Updated

How Quantities Are Restored

Partial return

The sale is updated

METRC restores quantities automatically

Full return

The sale is deleted

Flourish conditionally unfinishes packages

Final Notes

  • All return handling is automatic—no manual steps are required.
  • Partial returns rely on METRC’s implicit behavior when a sale is updated.
  • Full returns require sale deletion and additional automated logic to determine whether packages should be unfinished.

This approach ensures retail returns remain compliant while protecting package and inventory integrity in METRC.

Warm regards

How did we do?

How to order your Metrc Tags

METRC - Update your METRC API Key

Contact