Finish packages
Finish a list of packages. Sets each package's status to FINISHED and records the finish time. Finishing marks a fully depleted package as closed out for compliance; it removes the package from active inventory listings but does not itself deduct any quantity.
package_ids is a non-empty list of at most 300 package IDs. Optionally pass finished_datetime (ISO 8601) to set the finish time; it defaults to the current time.
Every package must be finishable, or the whole request fails. A package is rejected when it: • still has active quantity — a package must already be at zero quantity before it can be finished • is already finished • is discontinued, on hold, inactive, or has been transferred out of its license • is still syncing with Metrc from an earlier operation • has an unresolved Metrc compliance discrepancy
This operation is atomic: if any package cannot be finished the entire request is rejected and no packages are changed. In that case the error message lists the offending packages by their compliance label; it is a single human-readable string, not a per-package structured error.
Metrc only — not supported for BioTrack packages, and a working Metrc connection is required. Metrc is updated asynchronously: a successful response means the packages were finished in Distru and a pending Metrc activity was created for each one. Distru syncs those activities to Metrc sequentially in the background, so the 200 response is not confirmation that the packages are finished in Metrc. Poll GET /public/v1/packages to observe the synced result. Requires a Metrc key configured with permission to finish packages in Metrc.
Required permission: products_permissions_adjust_inventory.
Request body
Response
The finished packages
Changes
No recorded changes to this endpoint across all 1 revision of this API.