Getting Started

REST

Representational State Transfer (REST) is a set of best practices for designing maintainable web services. REST defines a simple and generic interface, however, we make use of a more simplified variant:

Example GET POST PUT DELETE
Listing URL
/items/v2
Retrieve a list of all elements Create a new element Update an existing element(s) Discontinue or disable an existing element
/plants/v2 ONLY
Element URL
/plants/v2/{id}
Retrieve a specific element Update an existing element(s) Discontinue or disable an existing element
Element Action URL
/plants/v2/{action}
/plants/v2/{id}/{action}
Perform {action} on existing element(s) Perform idempotent {action} on existing element(s)

The PUT and DELETE methods are referred to as idempotent, meaning that the operation will produce the same result no matter how many times it is repeated. The GET method is a safe method (or nullipotent), meaning that calling it produces no side-effects. In other words, retrieving or accessing a record does not change it. POST, on the other hand, is not required to be idempotent, therefore, calling it multiple times will likely perform the same action or change each time.

Read more about REST in the Representational State Transfer Wikipedia article.

Vendor API Key

Your Vendor API Key is specific to your company and the software you develop. Vendor API keys can be created and maintained within Metrc Connect. Your Vendor API Key is to be used by every instance of your software at all times, regardless of which customer, location, or user is using it. Keep this API key safe and protected, and do not share it.

User API Key

API calls require a user API key, which your industry customer creates and provides to you. The user API key is tied directly to the user's account (not the company or facility), and everything your software does is tied to your integrator API key and the user API key. Your software will be limited by the permissions granted to the user within Metrc.

Authentication

The Metrc API requires two pieces of information to authenticate each request - the software vendor's API key and the user's API key.

Both authenticating API keys must be sent through the Authorization HTTP header using the basic access authentication method. Basic access authentication combines a username and password, encodes them using Base64, and the resulting value is then passed through via the Authorization HTTP header. For our API, the username is equivalent to the software vendor's API key and the password is equivalent to the user's API key. The Authorization HTTP header for this API is prepared as follows:

  1. Both API keys are combined into a single string in the following manner:
    software_api_key:user_api_key
    • software_api_key = Software vendor's API key
    • user_api_key = User's API key
  2. The combined string is then encoded using RFC2045-MIME Base64 without the 76 char/line limit.
  3. The HTTP header value is composed of the literal word Basic followed by a space and the encoded string:
    Basic encoded_api_keys

Please Note: Most programming frameworks already include mechanisms for generating an Authorization HTTP header using basic access authentication. The above is provided only as a rudimentary reference of the actual process. See the Basic access authentication Mozilla Developer Network article for more details.

Authorization

Authorizations and permissions are solely dependent on the validated user's permissions.

Working with the API

The API endpoints will only establish communication over the HTTP Secure (HTTPS) communication protocol.

All API endpoints make use of the JSON format for sending and receiving data. All POST and PUT requests are expected to contain JSON formatted data and are required to have a Content-Type header of application/json.

Below is a short list of sites that may be of assistance while developing using JSON:

JSON on Wikipedia
Overview of the JSON format, its history, and numerous samples.
JSON on MDN
Provides technical details of the JSON format.
JSON (.org)
Large compilation of development libraries that add support, processing, and/or parsing of JSON.
JSONLint
Provides validation and pretty-formatting (no coloring, however) of JSON data.

Please note: The above list of links, articles, and websites are provided for assistance by the Metrc developers, and are not directly or indirectly endorsed by Metrc LLC, Franwell Inc, or their subsidiaries.

Dates and Times

All date and date/time fields submited to the server are expected to be in ISO 8601 format. Likewise, all date and date/time fields returned by the server will be in ISO 8601 format.

The only ISO 8601 date format supported is YYYY-MM-DD. Even though the standard defines YYYY-DDD as valid, it is currently not supported.

Examples of valid ISO 8601 date/time formats:

Example Description
2015-08-04T22:04:50Z The above date/time format represents August 4th, 2015 10:04:50 PM (UTC) using the Z identifier. The API will assume 000 milliseconds.
2015-08-04T22:04:50+00:00 The format above represents the same August 4th, 2015 10:04:50 PM (UTC) using a numerical time zone offset of +00:00. The API will assume 000 milliseconds.
2015-10-03T16:30:40.345+00:00 The format above represents October 3rd, 2015 4:30:40.345 PM (UTC) using a numerical time zone offset of +00:00. Note the addition of the milliseconds portion of the time in this example.
2016-02-04T22:20:30.456-06:00 The format above represents February 4th, 2016 10:20:30.456 PM (MDT) using a numerical time zone offset of -06:00. Note the addition of the milliseconds portion of the time in this example.

Please note: The API will accept any time zone offset specified, and convert it to UTC for storage.

Making Calls with Timestamps

When a date/time is used in a query string, such as during a GET call, it is essential that the URL is properly encoded. In particular, when a plus sign (+) is used in a time zone offset, it must be correctly encoded as %2B. Failure to encode the plus sign correctly will cause the date/time to be misinterpreted.

For example, let's say you wish to call GET /packages/v2/active and return all active packages for license number 123-ABC that have been modified since 2023-11-01T08:00:00+02:00. If you make a call to:
GET /packages/v2/active?licenseNumber=123-ABC&lastModifiedStart=2023-11-01T08:00:00+02:00,
the call will not return the expected results. You should instead make the call to:
GET /packages/v2/active?licenseNumber=123-ABC&lastModifiedStart=2023-11-01T08:00:00%2B02:00.

Last Modified Filter Range

Metrc makes a LastModified field available on most data provided via the API. This field represents the date and time when an entity was last changed, regardless of the source (a user, an API call, etc.) and how minor of a change it was.

If the software ensures that a request is made covering every minute of the day, it will always have up-to-the-minute data. For example, let's assume the software has a 1-hour scheduled job which requests all changes made within the last 1-hour and 5-minutes (5 min buffer, because of potential clock drift between systems). This will enable the software to stay on top of all data changes that occur within Metrc. If the scheduled job is paused or falls out of sync, then simply requesting the last run time plus 5 minutes should cover all changes that occurred since the last sync.

Server Responses

200 OK Server processed the request successfully.
400 Bad Request

An error has occurred while executing your request.

Example Response
[
	{
		"row": 0,
		"message": "-- error description --"
	},
	{
		"row": 1,
		"message": "-- error description --"
	}
]
401 Unauthorized Invalid or no authentication provided.
403 Forbidden The authenticated user does not have access to the requested resource.
404 Not Found The requested resource could not be found (incorrect or invalid URI).
413 Content Too Large The request exceeds the maximum number of objects allowed. See the Object Limiting section for details.
429 Too Many Requests The limit of API calls allowed has been exceeded. Please pace the usage rate of the API more apart.
500 Internal Server Error An error has occurred while executing your request. The error message is typically included in the body of the response.

Postman

Postman is a great tool for quickly testing out requests to an API. Below you will find a collection you can import into Postman to start making requests right away.

Import the following collection:

Postman JSON


Prepare your environment:

  • Edit the collection's root folder.
    • On the Authorization tab, ensure Basic Auth
  • Update the variables tab - Customize your environment with variables you use most often.
    • Set the host to your URL
    • Set username to your software API key
    • Set password to your user API key
    • Set the licenseNumber to your facility license number

With these changes, you should be able to make requests. The default data in the POST and PUT examples may need to be modified for a successful response.

Best Practices

Maintaining Inventory in Sync

Packages can only leave a Facility's active inventory via Finishing, Discontinuing, and Outgoing Transfers. A Facility's active inventory is available through the /packages/v1/active endpoint.

When needing to sync your software's inventory with Metrc's, the following endpoints will enable you to accomplish that:

  • /packages/v1/active - provides the list of Packages currently considered "active" inventory.
  • /packages/v1/inactive - provides the list of Packages considered "inactive". Packages can only reach this status by being Finished or Discontinued.
  • And, finally, via the Outgoing Transfers:
    1. First query /transfers/v1/outgoing.
    2. Use the Id field from the returned objects as the {id} parameter in /transfers/v1/{id}/deliveries.
      • Please be mindful of rate limiting, as you must make one call per returned object, since the ID is part of the URL.
    3. Then, use the Id field from the deliveries objects as the {id} parameter in /transfers/v1/deliveries/{id}/packages.
      • Again, please keep in mind the rate limiting, as you must make one call per returned object, since the ID is part of the URL.
    4. And, finally, the returned Package objects will include a PackageId and PackageLabel enabling your software to keep track of Packages leaving the active inventory.

Please Note: There are other State-sanctioned methods whereby Packages could leave active inventory, however, there is no way for the API to track those. Those State-sanctioned methods are more hands-on and will likely require manual adjustments from your users.

Requesting Multiple Days' Data

Due to the existing Last Modified filter requirement, a single call cannot be made to request a large amount of data. This restriction is enforced using a date range filter applied to the date and time of last modification.

Sometimes there is a need to request more data than allowed in a single request. In order to ensure no data is missed, the requests must be done in chronological order - start with older Last Modified date/times and move to more recent ones.

The Last Modified field can only logically move forward to a more recent date/time; it will never move backwards. This means that if you request data in reverse chronological order (newest first), you may happen to request the most recent data, followed by the next set. However, a change may occur causing a record to move within the most recent set (which was already requested). This would cause your software to miss that record, possibly until the next update.

What's New in Version 2

Rate Limiting

Rate limiting is on a per facility basis. There are a few end points that do not require a facility license number and these requests will be on an individual API key basis. If a user makes too many requests in the time frame an HTTP response of 429 (Too many requests) will be returned with the time window in the header of the message. Remember to make your requests with multiple documents instead of sending a new request for each entry you would like to record i.e... posting multiple sales receipts.

Object Limiting

The Metrc API utilizes object limiting in order to ensure reliable performance and fair usage for all users. Object limiting minimizes batching an excessive number of records within a single request. For all API calls that accept an array of objects within the request body (this is typically POST and PUT calls but can include some DELETE calls), you are limited to submitting no more than 10 objects. If you attempt to make a call with more than 10 objects, you will receive a HTTP 413 error code with a message that the content being submitted is too large. Ensure you are making calls with no more than the allowed number of objects and that your integration workflows handle HTTP 413 errors gracefully.

Receiving IDs from POST requests

When making a successful POST request, you will now receive back the newly created object’s ID in the response. The order of the IDs will correspond to the order of the objects in the request body.

Changed endpoints

Employees

Version 2 Version 1
GET /employees/v2/ GET /employees/v1/

Facilities

Version 2 Version 1
GET /facilities/v2/ GET /facilities/v1/

Harvests

Version 2 Version 1
GET /harvests/v2/{id} GET /harvests/v1/{id}
GET /harvests/v2/active GET /harvests/v1/active
GET /harvests/v2/onhold GET /harvests/v1/onhold
GET /harvests/v2/inactive GET /harvests/v1/inactive
GET /harvests/v2/waste No endpoint for this version
GET /harvests/v2/waste/types GET /harvests/v1/waste/types
POST /harvests/v2/packages/testing POST /harvests/v1/create/packages/testing
POST /harvests/v2/packages POST /harvests/v1/create/packages
PUT /harvests/v2/location PUT /harvests/v1/move
POST /harvests/v2/waste POST /harvests/v1/removewaste
PUT /harvests/v2/rename PUT /harvests/v1/rename
PUT /harvests/v2/finish POST /harvests/v1/finish
PUT /harvests/v2/unfinish POST /harvests/v1/unfinish
PUT /harvests/v2/restore/harvestedplants No endpoint for this version
DELETE /harvests/v2/waste/{id} No endpoint for this version

Items

Version 2 Version 1
GET /items/v2/{id} GET /items/v1/{id}
GET /items/v2/active GET /items/v1/active
GET /items/v2/inactive GET /items/v1/inactive
GET /items/v2/categories GET /items/v1/categories
GET /items/v2/brands GET /items/v1/brands
GET /items/v2/photo/{id} GET /items/v1/photo/{id}
POST /items/v2/ POST /items/v1/create
PUT /items/v2/ POST /items/v1/update
POST /items/v2/photo POST /items/v1/photo
DELETE /items/v2/{id} DELETE /items/v1/{id}
DELETE /items/v2/brand/{id} No endpoint for this version
POST /items/v2/brand No endpoint for this version
PUT /items/v2/brand No endpoint for this version

Lab Tests

Version 2 Version 1
GET /labtests/v2/states GET /labtests/v1/states
GET /labtests/v2/batches No endpoint for this version
GET /labtests/v2/types GET /labtests/v1/types
GET /labtests/v2/results GET /labtests/v1/results
POST /labtests/v2/record POST /labtests/v1/record
PUT /labtests/v2/labtestdocument PUT /labtests/v1/labtestdocument
PUT /labtests/v2/results/release PUT /labtests/v1/results/release
GET /labtests/v2/labtestdocument/{id} GET /labtests/v1/labtestdocument/{id}

Locations

Version 2 Version 1
GET /locations/v2/{id} GET /locations/v1/{id}
GET /locations/v2/active GET /locations/v1/active
GET /locations/v2/inactive No endpoint for this version
GET /locations/v2/types GET /locations/v1/types
POST /locations/v2/ POST /locations/v1/create
PUT /locations/v2/ POST /locations/v1/update
DELETE /locations/v2/{id} DELETE /locations/v1/{id}

Packages

Version 2 Version 1
GET /packages/v2/{id} GET /packages/v1/{id}
GET /packages/v2/{id}/source/harvests No endpoint for this version
GET /packages/v2/{label} GET /packages/v1/{label}
GET /packages/v2/active GET /packages/v1/active
GET /packages/v2/onhold GET /packages/v1/onhold
GET /packages/v2/inactive GET /packages/v1/inactive
GET /packages/v2/intransit No endpoint for this version
GET /packages/v2/labsamples No endpoint for this version
GET /packages/v2/types GET /packages/v1/types
GET /packages/v2/adjust/reasons GET /packages/v1/adjust/reasons
POST /packages/v2/ POST /packages/v1/create
POST /packages/v2/testing POST /packages/v1/create/testing
POST /packages/v2/plantings POST /packages/v1/create/plantings
PUT /packages/v2/donation/flag No endpoint for this version
PUT /packages/v2/donation/unflag No endpoint for this version
PUT /packages/v2/usebydate No endpoint for this version
PUT /packages/v2/item POST /packages/v1/change/item
PUT /packages/v2/note PUT /packages/v1/change/note
PUT /packages/v2/location POST /packages/v1/change/locations
PUT /packages/v2/labtests/required No endpoint for this version
PUT /packages/v2/tradesample/flag No endpoint for this version
PUT /packages/v2/tradesample/unflag No endpoint for this version
PUT /packages/v2/adjust No endpoint for this version
POST /packages/v2/adjust POST /packages/v1/adjust
PUT /packages/v2/remediate POST /packages/v1/remediate
PUT /packages/v2/finish POST /packages/v1/finish
PUT /packages/v2/unfinish POST /packages/v1/unfinish
DELETE /packages/v2/{id} No endpoint for this version

Patients Status

Version 2 Version 1
GET /patients/v2/statuses/{patientLicenseNumber} GET /patients/v1/statuses/{patientLicenseNumber}

Plant Batches

Version 2 Version 1
GET /plantbatches/v2/{id} GET /plantbatches/v1/{id}
GET /plantbatches/v2/active GET /plantbatches/v1/active
GET /plantbatches/v2/inactive GET /plantbatches/v1/inactive
GET /plantbatches/v2/types GET /plantbatches/v1/types
DELETE /plantbatches/v2/ DELETE /plantbatches/v1/
GET /plantbatches/v2/waste/reasons GET /plantbatches/v1/waste/reasons
POST /plantbatches/v2/waste POST /plantbatches/v1/waste
POST /plantbatches/v2/adjust POST /plantbatches/v1/adjust
POST /plantbatches/v2/additives POST /plantbatches/v1/additives
POST /plantbatches/v2/plantings POST /plantbatches/v1/createplantings
POST /plantbatches/v2/packages POST /plantbatches/v1/createpackages
POST /plantbatches/v2/packages/frommotherplant POST /plantbatches/v1/create/packages/frommotherplant
POST /plantbatches/v2/split POST /plantbatches/v1/split
POST /plantbatches/v2/growthphase POST /plantbatches/v1/changegrowthphase
PUT /plantbatches/v2/tag No endpoint for this version
PUT /plantbatches/v2/strain No endpoint for this version
PUT /plantbatches/v2/location PUT /plantbatches/v1/moveplantbatches

Plants

Version 2 Version 1
GET /plants/v2/additives/types GET /plants/v1/additives/types
GET /plants/v2/{id} GET /plants/v1/{id}
GET /plants/v2/{label} GET /plants/v1/{label}
GET /plants/v2/vegetative GET /plants/v1/vegetative
GET /plants/v2/flowering GET /plants/v1/flowering
GET /plants/v2/onhold GET /plants/v1/onhold
GET /plants/v2/inactive GET /plants/v1/inactive
GET /plants/v2/additives GET /plants/v1/additives
GET /plants/v2/growthphases GET /plants/v1/growthphases
GET /plants/v2/waste/reasons GET /plants/v1/waste/reasons
POST /plants/v2/additives POST /plants/v1/additives
POST /plants/v2/additives/bylocation POST /plants/v1/additives/bylocation
POST /plants/v2/plantings POST /plants/v1/create/plantings
POST /plants/v2/plantbatch/packages POST /plants/v1/create/plantbatch/packages
POST /plants/v2/manicure POST /plants/v1/manicureplants
PUT /plants/v2/location POST /plants/v1/moveplants
PUT /plants/v2/growthphase POST /plants/v1/changegrowthphases
PUT /plants/v2/tag No endpoint for this version
PUT /plants/v2/strain No endpoint for this version
PUT /plants/v2/harvest POST /plants/v1/harvestplants
PUT /plants/v2/merge No endpoint for this version
DELETE /plants/v2/ DELETE /plants/v1/
POST /plants/v2/waste POST /plants/v1/waste
GET /plants/v2/waste/methods/all GET /plants/v1/waste/methods/all
PUT /plants/v2/split No endpoint for this version

Sales

Version 2 Version 1
GET /sales/v2/customertypes GET /sales/v1/customertypes
GET /sales/v2/patientregistration/locations GET /sales/v1/patientregistration/locations
GET /sales/v2/deliveries/{id} GET /sales/v1/deliveries/{id}
GET /sales/v2/deliveries/active GET /sales/v1/deliveries/active
GET /sales/v2/deliveries/inactive GET /sales/v1/deliveries/inactive
GET /sales/v2/deliveries/returnreasons GET /sales/v1/deliveries/returnreasons
GET /sales/v2/counties GET /sales/v1/counties
GET /sales/v2/paymenttypes GET /sales/v1/paymenttypes
GET /sales/v2/receipts/{id} GET /sales/v1/receipts/{id}
GET /sales/v2/receipts/external/{externalNumber} No endpoint for this version
GET /sales/v2/receipts/active GET /sales/v1/receipts/active
GET /sales/v2/receipts/inactive GET /sales/v1/receipts/inactive
POST /sales/v2/deliveries POST /sales/v1/deliveries
POST /sales/v2/receipts POST /sales/v1/receipts
PUT /sales/v2/deliveries/hub PUT /sales/v1/deliveries/hub
PUT /sales/v2/deliveries/hub/accept PUT /sales/v1/deliveries/hub/accept
PUT /sales/v2/deliveries/complete PUT /sales/v1/deliveries/complete
PUT /sales/v2/deliveries/hub/depart PUT /sales/v1/deliveries/hub/depart
PUT /sales/v2/deliveries/hub/verifyID PUT /sales/v1/deliveries/hub/verifyID
PUT /sales/v2/deliveries PUT /sales/v1/deliveries
PUT /sales/v2/receipts PUT /sales/v1/receipts
PUT /sales/v2/receipts/finalize No endpoint for this version
PUT /sales/v2/receipts/unfinalize No endpoint for this version
DELETE /sales/v2/deliveries/{id} DELETE /sales/v1/deliveries/{id}
DELETE /sales/v2/receipts/{id} DELETE /sales/v1/receipts/{id}
GET /sales/v2/deliveries/retailer/active GET /sales/v1/deliveries/retailer/active
GET /sales/v2/deliveries/retailer/inactive GET /sales/v1/deliveries/retailer/inactive
GET /sales/v2/deliveries/retailer/{id} GET /sales/v1/deliveries/retailer/{id}
POST /sales/v2/deliveries/retailer POST /sales/v1/deliveries/retailer
PUT /sales/v2/deliveries/retailer PUT /sales/v1/deliveries/retailer
DELETE /sales/v2/deliveries/retailer/{id} DELETE /sales/v1/deliveries/retailer/{id}
POST /sales/v2/deliveries/retailer/depart POST /sales/v1/deliveries/retailer/depart
POST /sales/v2/deliveries/retailer/restock POST /sales/v1/deliveries/retailer/restock
POST /sales/v2/deliveries/retailer/sale POST /sales/v1/deliveries/retailer/sale
POST /sales/v2/deliveries/retailer/end POST /sales/v1/deliveries/retailer/end

Strains

Version 2 Version 1
GET /strains/v2/{id} GET /strains/v1/{id}
GET /strains/v2/active GET /strains/v1/active
GET /strains/v2/inactive No endpoint for this version
POST /strains/v2/ POST /strains/v1/create
PUT /strains/v2/ POST /strains/v1/update
DELETE /strains/v2/{id} DELETE /strains/v1/{id}

Tags

Version 2 Version 1
GET /tags/v2/plant/available No endpoint for this version
GET /tags/v2/package/available No endpoint for this version

Transfers

Version 2 Version 1
GET /transfers/v2/hub No endpoint for this version
GET /transfers/v2/incoming GET /transfers/v1/incoming
GET /transfers/v2/outgoing GET /transfers/v1/outgoing
GET /transfers/v2/rejected GET /transfers/v1/rejected
GET /transfers/v2/{id}/deliveries GET /transfers/v1/{id}/deliveries
GET /transfers/v2/deliveries/{id}/transporters GET /transfers/v1/deliveries/{id}/transporters
GET /transfers/v2/deliveries/{id}/transporters/details GET /transfers/v1/deliveries/{id}/transporters/details
GET /transfers/v2/deliveries/{id}/packages GET /transfers/v1/deliveries/{id}/packages
GET /transfers/v2/deliveries/{id}/packages/wholesale GET /transfers/v1/deliveries/{id}/packages/wholesale
GET /transfers/v2/deliveries/package/{id}/requiredlabtestbatches GET /transfers/v1/deliveries/package/{id}/requiredlabtestbatches
GET /transfers/v2/deliveries/packages/states GET /transfers/v1/deliveries/packages/states
GET /transfers/v2/templates/outgoing GET /transfers/v1/templates
GET /transfers/v2/templates/outgoing/{id}/deliveries GET /transfers/v1/templates/{id}/deliveries
GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters GET /transfers/v1/templates/deliveries/{id}/transporters
GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters/details GET /transfers/v1/templates/deliveries/{id}/transporters/details
GET /transfers/v2/templates/outgoing/deliveries/{id}/packages GET /transfers/v1/templates/deliveries/{id}/packages
GET /transfers/v2/types GET /transfers/v1/types
POST /transfers/v2/external/incoming POST /transfers/v1/external/incoming
POST /transfers/v2/templates/outgoing POST /transfers/v1/templates
PUT /transfers/v2/external/incoming PUT /transfers/v1/external/incoming
PUT /transfers/v2/templates/outgoing PUT /transfers/v1/templates
DELETE /transfers/v2/external/incoming/{id} DELETE /transfers/v1/external/incoming/{id}
DELETE /transfers/v2/templates/outgoing/{id} DELETE /transfers/v1/templates/{id}

Transporters

Version 2 Version 1
GET /transporters/v2/drivers No endpoint for this version
GET /transporters/v2/drivers/{id} No endpoint for this version
POST /transporters/v2/drivers No endpoint for this version
PUT /transporters/v2/drivers No endpoint for this version
DELETE /transporters/v2/drivers/{id} No endpoint for this version
GET /transporters/v2/vehicles No endpoint for this version
GET /transporters/v2/vehicles/{id} No endpoint for this version
POST /transporters/v2/vehicles No endpoint for this version
PUT /transporters/v2/vehicles No endpoint for this version
DELETE /transporters/v2/vehicles/{id} No endpoint for this version

Units Of Measure

Version 2 Version 1
GET /unitsofmeasure/v2/active GET /unitsofmeasure/v1/active
GET /unitsofmeasure/v2/inactive No endpoint for this version

Pagination

The Metrc API has been updated to support pagination of API responses in the future. Pagination provides benefits such as improved API performance by breaking up large response payloads into more manageable chunks.

Pagination is not currently enabled, and we will notify integrators well in advance of enabling it. Until it is enabled, all response data will be returned on one page. However, the structure of the API responses has changed to support pagination. You may need to make updates to how you are handling API responses in order to account for the new response structure. You can also begin planning for any future changes needed to support paging through a response when necessary.


Previously, API calls returned data in the following general format:


	[
		{
			Object #1
		},
		{
			Object #2
		}
	]

Now, API calls will return data in the following general format. The Page attribute identifies the current page of the response, and the TotalPages attribute identifies the total number of pages in the response.


	[
		"Data":
			[
				{
					Object #1
				},
				{
					Object #2
				}
			],
		"TotalRecords" : 2
		"RecordsOnPage" : 2
		"CurrentPage": 1,
		"TotalPages": 1,
	]


Paginated endpoints

Employees

GET /employees/v2/

Harvests

GET /harvests/v2/active
GET /harvests/v2/onhold
GET /harvests/v2/inactive
GET /harvests/v2/waste
GET /harvests/v2/waste/types

Items

GET /items/v2/active
GET /items/v2/inactive
GET /items/v2/categories
GET /items/v2/brands

Lab Tests

GET /labtests/v2/batches
GET /labtests/v2/types
GET /labtests/v2/results

Locations

GET /locations/v2/active
GET /locations/v2/inactive
GET /locations/v2/types

Packages

GET /packages/v2/active
GET /packages/v2/onhold
GET /packages/v2/inactive
GET /packages/v2/intransit
GET /packages/v2/labsamples
GET /packages/v2/adjust/reasons

Plant Batches

GET /plantbatches/v2/active
GET /plantbatches/v2/inactive
GET /plantbatches/v2/types

Plants

GET /plants/v2/vegetative
GET /plants/v2/flowering
GET /plants/v2/onhold
GET /plants/v2/inactive
GET /plants/v2/additives
GET /plants/v2/waste/reasons
GET /plants/v2/waste/methods/all

Sales

GET /sales/v2/deliveries/active
GET /sales/v2/deliveries/inactive
GET /sales/v2/deliveries/returnreasons
GET /sales/v2/receipts/active
GET /sales/v2/receipts/inactive
GET /sales/v2/deliveries/retailer/active
GET /sales/v2/deliveries/retailer/inactive

Strains

GET /strains/v2/active
GET /strains/v2/inactive

Transfers

GET /transfers/v2/hub
GET /transfers/v2/incoming
GET /transfers/v2/outgoing
GET /transfers/v2/rejected
GET /transfers/v2/{id}/deliveries
GET /transfers/v2/deliveries/{id}/transporters
GET /transfers/v2/deliveries/{id}/transporters/details
GET /transfers/v2/deliveries/{id}/packages
GET /transfers/v2/deliveries/{id}/packages/wholesale
GET /transfers/v2/deliveries/package/{id}/requiredlabtestbatches
GET /transfers/v2/templates/outgoing
GET /transfers/v2/templates/outgoing/{id}/deliveries
GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters
GET /transfers/v2/templates/outgoing/deliveries/{id}/packages
GET /transfers/v2/types

Transporters

GET /transporters/v2/drivers
GET /transporters/v2/vehicles

Webhooks

Note: the availability of webhooks depends on your subscription plan. Contact your Metrc representative for more information.

Webhooks are a key feature that allow you to reduce polling and stay up-to-date on changes within a deployment. Webhooks are available with v2 of the API.

You can use API calls to manage your webhook subscriptions. You can also manage them via Metrc Connect; see below. If you choose to manage webhook subscriptions via API, the base URL for webhook calls is https://services-connect.metrc.com/.

Authentication

Authenticating the webhook endpoints is a little different than authenticating to the Metrc API. To authenticate, include a header labeled X-Metrc-Auth. Set the value of the header to an integrator API key. It can be any API key for your organization that is valid for that deployment.

While the API key in the header does not need to match the integrator key used in the webhook call (e.g., the key used in the body of a subscription call), both keys need to be associated with the same deployment.

Subscribing to webhooks

To create a new webhook subscription, you will send a PUT request to the /webhooks/v2 endpoint. The body of the request should look something like this:


	[
		{
			"objectType": "string",
			"url": "string",
			"verb": "string",
			"status": "string",
			"userApiKey": "string",
			"tpiApiKey": "string",
			"serverPublicKeyFingerprint": "string",
			"template": "{\"data\":#DATA#, \"datacount\":#DATACOUNT#}",
			"errorResponseJsonTemplate": "{\"error\": #ERRORMESSAGE#, \"errorcode\": #ERRORCODE#}",
			"facilityLicenseNumbers": [
				"facilityLicense1",
				"facilityLicense2"
			]
		}
	]			

Note that you can send in multiple subscriptions at once using an array. Here's an explanation of each object key:

  • ObjectType: a string representing the object you are subscribing to. See the Defined values section below for specifics.
  • Url: the URL you wish to have webhook notifications sent to. The server at this URL should be listening and prepared to recieve webhooks.
  • Verb: whether the webhook notifications should be sent to the URL as a PUT or POST call. Enter "PUT" or "POST" here.
  • Status: whether the webhook subscription is active or inactive. Enter "Active" or "inactive" here.
  • UserApiKey: the API key tied to the user subscribing to webhooks.
  • ServerPublicKeyFingerprint: this key is not currently used and can be excluded.
  • Template: this optional key can be used to define the format in which you want to receive webhook notifications. It is a JSON-encoded string that uses the special values #DATA# and #DATACOUNT# to format the data. The default format is "{\"data\":#DATA#, \"datacount\":#DATACOUNT#}".
  • ErrorResponseJsonTemplate: this optional key can be used to define the format for error messages. It is a JSON-encoded string that uses the special values #ERRORMESSAGE# and #ERRORCODE# to format the error details. The default format is "{\"error\":#ERRORMESSAGE#, \"errorcode\": #ERRORCODE#}".
  • FacilityLicenseNumbers: this is an array of facility license numbers for which the subscription will apply.

The response to the PUT subscription call will be an array of JSON objects, like this:


	[
		{
			"subscriptionId": 0,
			"username": "string",
			"apiKeyName": "string",
			"objectType": "string",
			"url": "string",
			"verb": "string",
			"status": "string",
			"errorMessage": "string",
			"serverPublicKeyFingerprint": "string",
			"template": "string",
			"errorResponseJsonTemplate": "string",
			"facilities": [
				{
					"facilityLicenseNumber": "string",
					"invalidPermission": true
				}
			],
			"deployment": "string"
		}
	]

A subscriptionId key will provide the ID of the webhook subscription for future use if you need to modify or delete it. Do not rely on the HTTP status code returned by the subscription call to know if the subscription was successful. Instead, inspect the errorMessage key in the response as well as the invalidPermission key within the facilities array.

Viewing existing webhook subscriptions

GET/webhooks/v2 will return a list of subscriptions. The list is determined by inspecting the API key used in the header of the call, and all subscriptions for the API key are returned.

In the returned JSON objects, the errorMessage key will be populated if there was an error when Metrc attempted to send a webhook notification.

Modifying webhook subscriptions

There are a few ways to modify an existing webhook subscription. To set the status of a subscription to active, call PUT /webhooks/v2/enable/{subscriptionId} with the ID of the subscription.

To modify other details about the subscription, such as the URL, call PUT /webhooks/v2 as noted in the "Subscribing to webhooks" section above. Include subscriptionId as a key in the POST body to define the subscription to modify.

To delete a subscription, call DELETE /webhooks/v2/{subscriptionId} with the ID of the subscription. Deletions are irreversible, so consider whether it would make more sense to deactivate a subscription that may be needed in the future.

Receiving webhooks

When a webhook notification is sent to the designated URL, the notification will provide the full object. For example, if you are subscribed to packages and a new package is created in the system, the webhook notification will send the full package object that's been created.

Webhook notification timing

Webhook notifications are not sent instantly. Instead, after an action causes a change that warrants a webhook notification, the system will send the notification within a 15-minute interval. If you think you aren't receiving webhook notifications as expected, ensure you are waiting at least 15 minutes from the triggering action occurring.

Other notes

Subscriptions are tied to your integrator API keys. If an API key is locked/deleted/expired, the subscriptions tied to the API key will be automatically disabled.

Defined values

Object type

  • Employee
  • Facility
  • Harvest
  • Item
  • ItemCategory
  • LabTestBatch
  • LabTestType
  • Location
  • LocationType
  • Package
  • Plant
  • PlantBatch
  • ProcessingJob
  • SalesDelivery
  • SalesReceipt
  • Strain
  • Transfer
  • TransferTemplate
  • UnitOfMeasure


Employees

Server: https://api-mi.metrc.com/

GET /employees/v2/

Permissions Required

Manage Employees
View Employees

Parameters

licenseNumber
The license number of the Facility under which to get the Employees.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /employees/v2/?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "FullName": "John Smith",
      "License": {
        "Number": "403-X0001",
        "StartDate": "2023-06-28",
        "EndDate": "2025-12-28",
        "LicenseType": "Medical Cultivation"
      }
    },
    {
      "FullName": "Mary Johnson",
      "License": {
        "Number": "402-X0002",
        "StartDate": "2023-07-28",
        "EndDate": "2025-11-28",
        "LicenseType": "Medical Dispensary"
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Employees

Server: https://api-mi.metrc.com/

GET /employees/v1/

Permissions Required

Manage Employees

Parameters

licenseNumber

Example Request

GET /employees/v1/?licenseNumber=123-ABC

Example Response

[
  {
    "FullName": "John Smith",
    "License": {
      "Number": "403-X0001",
      "StartDate": "2023-06-28",
      "EndDate": "2025-12-28",
      "LicenseType": "Medical Cultivation"
    }
  },
  {
    "FullName": "Mary Johnson",
    "License": {
      "Number": "402-X0002",
      "StartDate": "2023-07-28",
      "EndDate": "2025-11-28",
      "LicenseType": "Medical Dispensary"
    }
  }
]

Facilities

A Facility represents a building licensed for the growing, processing, and/or selling of product.

Server: https://api-mi.metrc.com/

GET /facilities/v2/

This endpoint provides a list of facilities for which the authenticated user has access.

Permissions Required

None

Parameters

No parameters

Example Request

GET /facilities/v2/

Example Response

[
  {
    "HireDate": "0001-01-01",
    "IsOwner": false,
    "IsManager": true,
    "IsFinancialContact": false,
    "Occupations": [],
    "Name": "Cultivation LLC",
    "Alias": "Cultivation on Road St",
    "DisplayName": "Cultivation on Road St",
    "CredentialedDate": "1969-08-15",
    "SupportActivationDate": null,
    "SupportExpirationDate": null,
    "FacilityType": {
      "IsMedical": false,
      "IsRetail": true,
      "IsHemp": false,
      "RestrictHarvestPlantRestoreTimeHours": null,
      "TotalMemberPatientsAllowed": null,
      "RestrictWholesalePriceEditDays": null,
      "RestrictPlantBatchAdjustmentTimeHours": null,
      "CanGrowPlants": false,
      "CanCreateOpeningBalancePlantBatches": false,
      "CanClonePlantBatches": false,
      "CanTagPlantBatches": false,
      "CanAssignLocationsToPlantBatches": false,
      "PlantsRequirePatientAffiliation": false,
      "PlantBatchesCanContainMotherPlants": false,
      "CanUpdatePlantStrains": false,
      "CanTrackVegetativePlants": false,
      "CanCreateImmaturePlantPackagesFromPlants": false,
      "CanPackageVegetativePlants": false,
      "CanPackageWaste": false,
      "CanReportHarvestSchedules": false,
      "CanSubmitHarvestsForTesting": false,
      "CanRequireHarvestSampleLabTestBatches": false,
      "CanReportStrainProperties": false,
      "CanCreateOpeningBalancePackages": false,
      "CanCreateDerivedPackages": false,
      "CanAssignLocationsToPackages": false,
      "CanUpdateLocationsOnPackages": false,
      "PackagesRequirePatientAffiliation": false,
      "CanCreateTradeSamplePackages": false,
      "CanDonatePackages": false,
      "CanSubmitPackagesForTesting": false,
      "CanCreateProcessValidationPackages": false,
      "CanRequirePackageSampleLabTestBatches": false,
      "CanRequestProductRemediation": false,
      "CanRemediatePackagesWithFailedLabResults": false,
      "CanInfuseProducts": false,
      "CanRecordProcessingJobs": false,
      "CanRecordProductForDestruction": false,
      "CanDestroyProduct": false,
      "CanTestPackages": false,
      "TestsRequireLabSample": false,
      "CanTransferFromExternalFacilities": false,
      "CanSellToConsumers": false,
      "CanSellToPatients": false,
      "CanSellToExternalPatients": false,
      "CanSellToCaregivers": false,
      "CanTakePlantBatchesOnTrip": false,
      "CanTakePlantsOnTrip": false,
      "CanTakeHarvestsOnTrip": false,
      "CanTakePackagesOnTrip": false,
      "CanSellFromPackagesOnTrip": false,
      "AdvancedSales": false,
      "SalesRequirePatientNumber": false,
      "SalesRequireExternalPatientNumber": false,
      "SalesRequireExternalPatientIdentificationMethod": false,
      "SalesRequireCaregiverNumber": false,
      "SalesRequireCaregiverPatientNumber": false,
      "CanDeliverSalesToConsumers": false,
      "SalesDeliveryAllowPlannedRoute": false,
      "SalesDeliveryAllowAddress": false,
      "SalesDeliveryAllowCity": false,
      "SalesDeliveryAllowState": false,
      "SalesDeliveryAllowCounty": false,
      "SalesDeliveryAllowZip": false,
      "SalesDeliveryRequireConsumerId": false,
      "CanDeliverSalesToPatients": false,
      "SalesDeliveryRequirePatientNumber": false,
      "SalesDeliveryRequireRecipientName": false,
      "IsSalesDeliveryHub": false,
      "CanHaveMemberPatients": false,
      "CanReportPatientCheckIns": false,
      "CanSpecifyPatientSalesLimitExemption": false,
      "CanReportPatientsAdverseResponses": false,
      "RetailerDelivery": false,
      "RetailerDeliveryAllowTradeSamples": false,
      "RetailerDeliveryAllowDonations": false,
      "RetailerDeliveryRequirePrice": false,
      "RetailerDeliveryAllowPartialPackages": false,
      "CanCreatePartialPackages": false,
      "CanAdjustSourcePackagesWithPartials": false,
      "CanReportOperationalExceptions": false,
      "CanReportAdulteration": false,
      "CanDownloadProductLabel": false,
      "CanReceiveAssociateProductLabel": false,
      "CanViewSourcePackages": false,
      "TaxExemptReportingFeesFacilityType": false,
      "TaxExemptTagOrdersFacilityType": false
    },
    "License": {
      "Number": "403-X0001",
      "StartDate": "2013-06-28",
      "EndDate": "2015-12-28",
      "LicenseType": "Medical Cultivation"
    }
  },
  {
    "HireDate": "0001-01-01",
    "IsOwner": false,
    "IsManager": true,
    "IsFinancialContact": false,
    "Occupations": [],
    "Name": "Dispensary LLC",
    "Alias": "Med Store",
    "DisplayName": "Med Store",
    "CredentialedDate": "1969-08-15",
    "SupportActivationDate": null,
    "SupportExpirationDate": null,
    "FacilityType": {
      "IsMedical": false,
      "IsRetail": true,
      "IsHemp": false,
      "RestrictHarvestPlantRestoreTimeHours": null,
      "TotalMemberPatientsAllowed": null,
      "RestrictWholesalePriceEditDays": null,
      "RestrictPlantBatchAdjustmentTimeHours": null,
      "CanGrowPlants": false,
      "CanCreateOpeningBalancePlantBatches": false,
      "CanClonePlantBatches": false,
      "CanTagPlantBatches": false,
      "CanAssignLocationsToPlantBatches": false,
      "PlantsRequirePatientAffiliation": false,
      "PlantBatchesCanContainMotherPlants": false,
      "CanUpdatePlantStrains": false,
      "CanTrackVegetativePlants": false,
      "CanCreateImmaturePlantPackagesFromPlants": false,
      "CanPackageVegetativePlants": false,
      "CanPackageWaste": false,
      "CanReportHarvestSchedules": false,
      "CanSubmitHarvestsForTesting": false,
      "CanRequireHarvestSampleLabTestBatches": false,
      "CanReportStrainProperties": false,
      "CanCreateOpeningBalancePackages": false,
      "CanCreateDerivedPackages": false,
      "CanAssignLocationsToPackages": false,
      "CanUpdateLocationsOnPackages": false,
      "PackagesRequirePatientAffiliation": false,
      "CanCreateTradeSamplePackages": false,
      "CanDonatePackages": false,
      "CanSubmitPackagesForTesting": false,
      "CanCreateProcessValidationPackages": false,
      "CanRequirePackageSampleLabTestBatches": false,
      "CanRequestProductRemediation": false,
      "CanRemediatePackagesWithFailedLabResults": false,
      "CanInfuseProducts": false,
      "CanRecordProcessingJobs": false,
      "CanRecordProductForDestruction": false,
      "CanDestroyProduct": false,
      "CanTestPackages": false,
      "TestsRequireLabSample": false,
      "CanTransferFromExternalFacilities": false,
      "CanSellToConsumers": false,
      "CanSellToPatients": false,
      "CanSellToExternalPatients": false,
      "CanSellToCaregivers": false,
      "CanTakePlantBatchesOnTrip": false,
      "CanTakePlantsOnTrip": false,
      "CanTakeHarvestsOnTrip": false,
      "CanTakePackagesOnTrip": false,
      "CanSellFromPackagesOnTrip": false,
      "AdvancedSales": false,
      "SalesRequirePatientNumber": false,
      "SalesRequireExternalPatientNumber": false,
      "SalesRequireExternalPatientIdentificationMethod": false,
      "SalesRequireCaregiverNumber": false,
      "SalesRequireCaregiverPatientNumber": false,
      "CanDeliverSalesToConsumers": false,
      "SalesDeliveryAllowPlannedRoute": false,
      "SalesDeliveryAllowAddress": false,
      "SalesDeliveryAllowCity": false,
      "SalesDeliveryAllowState": false,
      "SalesDeliveryAllowCounty": false,
      "SalesDeliveryAllowZip": false,
      "SalesDeliveryRequireConsumerId": false,
      "CanDeliverSalesToPatients": false,
      "SalesDeliveryRequirePatientNumber": false,
      "SalesDeliveryRequireRecipientName": false,
      "IsSalesDeliveryHub": false,
      "CanHaveMemberPatients": false,
      "CanReportPatientCheckIns": false,
      "CanSpecifyPatientSalesLimitExemption": false,
      "CanReportPatientsAdverseResponses": false,
      "RetailerDelivery": false,
      "RetailerDeliveryAllowTradeSamples": false,
      "RetailerDeliveryAllowDonations": false,
      "RetailerDeliveryRequirePrice": false,
      "RetailerDeliveryAllowPartialPackages": false,
      "CanCreatePartialPackages": false,
      "CanAdjustSourcePackagesWithPartials": false,
      "CanReportOperationalExceptions": false,
      "CanReportAdulteration": false,
      "CanDownloadProductLabel": false,
      "CanReceiveAssociateProductLabel": false,
      "CanViewSourcePackages": false,
      "TaxExemptReportingFeesFacilityType": false,
      "TaxExemptTagOrdersFacilityType": false
    },
    "License": {
      "Number": "402-X0002",
      "StartDate": "2012-08-15",
      "EndDate": "2015-11-15",
      "LicenseType": "Medical Dispensary"
    }
  }
]

Facilities

A Facility represents a building licensed for the growing, processing, and/or selling of product.

Server: https://api-mi.metrc.com/

GET /facilities/v1/

This endpoint provides a list of facilities for which the authenticated user has access.

Permissions Required

None

Parameters

No parameters

Example Request

GET /facilities/v1/

Example Response

[
  {
    "HireDate": "0001-01-01",
    "IsOwner": false,
    "IsManager": true,
    "IsFinancialContact": false,
    "Occupations": [],
    "Name": "Cultivation LLC",
    "Alias": "Cultivation on Road St",
    "DisplayName": "Cultivation on Road St",
    "CredentialedDate": "1969-08-15",
    "SupportActivationDate": null,
    "SupportExpirationDate": null,
    "FacilityType": {
      "IsMedical": false,
      "IsRetail": true,
      "IsHemp": false,
      "RestrictHarvestPlantRestoreTimeHours": null,
      "TotalMemberPatientsAllowed": null,
      "RestrictWholesalePriceEditDays": null,
      "RestrictPlantBatchAdjustmentTimeHours": null,
      "CanGrowPlants": false,
      "CanCreateOpeningBalancePlantBatches": false,
      "CanClonePlantBatches": false,
      "CanTagPlantBatches": false,
      "CanAssignLocationsToPlantBatches": false,
      "PlantsRequirePatientAffiliation": false,
      "PlantBatchesCanContainMotherPlants": false,
      "CanUpdatePlantStrains": false,
      "CanTrackVegetativePlants": false,
      "CanCreateImmaturePlantPackagesFromPlants": false,
      "CanPackageVegetativePlants": false,
      "CanPackageWaste": false,
      "CanReportHarvestSchedules": false,
      "CanSubmitHarvestsForTesting": false,
      "CanRequireHarvestSampleLabTestBatches": false,
      "CanReportStrainProperties": false,
      "CanCreateOpeningBalancePackages": false,
      "CanCreateDerivedPackages": false,
      "CanAssignLocationsToPackages": false,
      "CanUpdateLocationsOnPackages": false,
      "PackagesRequirePatientAffiliation": false,
      "CanCreateTradeSamplePackages": false,
      "CanDonatePackages": false,
      "CanSubmitPackagesForTesting": false,
      "CanCreateProcessValidationPackages": false,
      "CanRequirePackageSampleLabTestBatches": false,
      "CanRequestProductRemediation": false,
      "CanRemediatePackagesWithFailedLabResults": false,
      "CanInfuseProducts": false,
      "CanRecordProcessingJobs": false,
      "CanRecordProductForDestruction": false,
      "CanDestroyProduct": false,
      "CanTestPackages": false,
      "TestsRequireLabSample": false,
      "CanTransferFromExternalFacilities": false,
      "CanSellToConsumers": false,
      "CanSellToPatients": false,
      "CanSellToExternalPatients": false,
      "CanSellToCaregivers": false,
      "CanTakePlantBatchesOnTrip": false,
      "CanTakePlantsOnTrip": false,
      "CanTakeHarvestsOnTrip": false,
      "CanTakePackagesOnTrip": false,
      "CanSellFromPackagesOnTrip": false,
      "AdvancedSales": false,
      "SalesRequirePatientNumber": false,
      "SalesRequireExternalPatientNumber": false,
      "SalesRequireExternalPatientIdentificationMethod": false,
      "SalesRequireCaregiverNumber": false,
      "SalesRequireCaregiverPatientNumber": false,
      "CanDeliverSalesToConsumers": false,
      "SalesDeliveryAllowPlannedRoute": false,
      "SalesDeliveryAllowAddress": false,
      "SalesDeliveryAllowCity": false,
      "SalesDeliveryAllowState": false,
      "SalesDeliveryAllowCounty": false,
      "SalesDeliveryAllowZip": false,
      "SalesDeliveryRequireConsumerId": false,
      "CanDeliverSalesToPatients": false,
      "SalesDeliveryRequirePatientNumber": false,
      "SalesDeliveryRequireRecipientName": false,
      "IsSalesDeliveryHub": false,
      "CanHaveMemberPatients": false,
      "CanReportPatientCheckIns": false,
      "CanSpecifyPatientSalesLimitExemption": false,
      "CanReportPatientsAdverseResponses": false,
      "RetailerDelivery": false,
      "RetailerDeliveryAllowTradeSamples": false,
      "RetailerDeliveryAllowDonations": false,
      "RetailerDeliveryRequirePrice": false,
      "RetailerDeliveryAllowPartialPackages": false,
      "CanCreatePartialPackages": false,
      "CanAdjustSourcePackagesWithPartials": false,
      "CanReportOperationalExceptions": false,
      "CanReportAdulteration": false,
      "CanDownloadProductLabel": false,
      "CanReceiveAssociateProductLabel": false,
      "CanViewSourcePackages": false,
      "TaxExemptReportingFeesFacilityType": false,
      "TaxExemptTagOrdersFacilityType": false
    },
    "License": {
      "Number": "403-X0001",
      "StartDate": "2013-06-28",
      "EndDate": "2015-12-28",
      "LicenseType": "Medical Cultivation"
    }
  },
  {
    "HireDate": "0001-01-01",
    "IsOwner": false,
    "IsManager": true,
    "IsFinancialContact": false,
    "Occupations": [],
    "Name": "Dispensary LLC",
    "Alias": "Med Store",
    "DisplayName": "Med Store",
    "CredentialedDate": "1969-08-15",
    "SupportActivationDate": null,
    "SupportExpirationDate": null,
    "FacilityType": {
      "IsMedical": false,
      "IsRetail": true,
      "IsHemp": false,
      "RestrictHarvestPlantRestoreTimeHours": null,
      "TotalMemberPatientsAllowed": null,
      "RestrictWholesalePriceEditDays": null,
      "RestrictPlantBatchAdjustmentTimeHours": null,
      "CanGrowPlants": false,
      "CanCreateOpeningBalancePlantBatches": false,
      "CanClonePlantBatches": false,
      "CanTagPlantBatches": false,
      "CanAssignLocationsToPlantBatches": false,
      "PlantsRequirePatientAffiliation": false,
      "PlantBatchesCanContainMotherPlants": false,
      "CanUpdatePlantStrains": false,
      "CanTrackVegetativePlants": false,
      "CanCreateImmaturePlantPackagesFromPlants": false,
      "CanPackageVegetativePlants": false,
      "CanPackageWaste": false,
      "CanReportHarvestSchedules": false,
      "CanSubmitHarvestsForTesting": false,
      "CanRequireHarvestSampleLabTestBatches": false,
      "CanReportStrainProperties": false,
      "CanCreateOpeningBalancePackages": false,
      "CanCreateDerivedPackages": false,
      "CanAssignLocationsToPackages": false,
      "CanUpdateLocationsOnPackages": false,
      "PackagesRequirePatientAffiliation": false,
      "CanCreateTradeSamplePackages": false,
      "CanDonatePackages": false,
      "CanSubmitPackagesForTesting": false,
      "CanCreateProcessValidationPackages": false,
      "CanRequirePackageSampleLabTestBatches": false,
      "CanRequestProductRemediation": false,
      "CanRemediatePackagesWithFailedLabResults": false,
      "CanInfuseProducts": false,
      "CanRecordProcessingJobs": false,
      "CanRecordProductForDestruction": false,
      "CanDestroyProduct": false,
      "CanTestPackages": false,
      "TestsRequireLabSample": false,
      "CanTransferFromExternalFacilities": false,
      "CanSellToConsumers": false,
      "CanSellToPatients": false,
      "CanSellToExternalPatients": false,
      "CanSellToCaregivers": false,
      "CanTakePlantBatchesOnTrip": false,
      "CanTakePlantsOnTrip": false,
      "CanTakeHarvestsOnTrip": false,
      "CanTakePackagesOnTrip": false,
      "CanSellFromPackagesOnTrip": false,
      "AdvancedSales": false,
      "SalesRequirePatientNumber": false,
      "SalesRequireExternalPatientNumber": false,
      "SalesRequireExternalPatientIdentificationMethod": false,
      "SalesRequireCaregiverNumber": false,
      "SalesRequireCaregiverPatientNumber": false,
      "CanDeliverSalesToConsumers": false,
      "SalesDeliveryAllowPlannedRoute": false,
      "SalesDeliveryAllowAddress": false,
      "SalesDeliveryAllowCity": false,
      "SalesDeliveryAllowState": false,
      "SalesDeliveryAllowCounty": false,
      "SalesDeliveryAllowZip": false,
      "SalesDeliveryRequireConsumerId": false,
      "CanDeliverSalesToPatients": false,
      "SalesDeliveryRequirePatientNumber": false,
      "SalesDeliveryRequireRecipientName": false,
      "IsSalesDeliveryHub": false,
      "CanHaveMemberPatients": false,
      "CanReportPatientCheckIns": false,
      "CanSpecifyPatientSalesLimitExemption": false,
      "CanReportPatientsAdverseResponses": false,
      "RetailerDelivery": false,
      "RetailerDeliveryAllowTradeSamples": false,
      "RetailerDeliveryAllowDonations": false,
      "RetailerDeliveryRequirePrice": false,
      "RetailerDeliveryAllowPartialPackages": false,
      "CanCreatePartialPackages": false,
      "CanAdjustSourcePackagesWithPartials": false,
      "CanReportOperationalExceptions": false,
      "CanReportAdulteration": false,
      "CanDownloadProductLabel": false,
      "CanReceiveAssociateProductLabel": false,
      "CanViewSourcePackages": false,
      "TaxExemptReportingFeesFacilityType": false,
      "TaxExemptTagOrdersFacilityType": false
    },
    "License": {
      "Number": "402-X0002",
      "StartDate": "2012-08-15",
      "EndDate": "2015-11-15",
      "LicenseType": "Medical Dispensary"
    }
  }
]

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/{id}

Permissions Required

View Harvests

Parameters

licenseNumber
optional
If specified, the Harvest will be validated against the specified License Number. If not specified, the Harvest will be validated against all of the User's current Facilities. Please note that if the Harvest is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /harvests/v2/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "2014-11-19-Harvest Location-M",
  "HarvestType": "Product",
  "SourceStrainCount": 0,
  "SourceStrainNames": null,
  "Strains": [],
  "DryingLocationId": 1,
  "DryingLocationName": "Harvest Location",
  "DryingLocationTypeName": null,
  "PatientLicenseNumber": null,
  "CurrentWeight": 0.0,
  "TotalWasteWeight": 0.0,
  "PlantCount": 70,
  "TotalWetWeight": 40.0,
  "TotalRestoredWeight": 0.0,
  "PackageCount": 5,
  "TotalPackagedWeight": 0.0,
  "UnitOfWeightName": "Ounces",
  "LabTestingState": null,
  "LabTestingStateDate": null,
  "IsOnHold": false,
  "HarvestStartDate": "2014-11-19",
  "FinishedDate": null,
  "ArchivedDate": null,
  "IsOnTrip": false,
  "LastModified": "2014-11-19T00:00:00+00:00"
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/active

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of active harvests.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "2014-11-19-Harvest Location-M",
      "HarvestType": "Product",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 5,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": false,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": null,
      "ArchivedDate": null,
      "IsOnTrip": false,
      "LastModified": "2014-11-19T00:00:00+00:00"
    },
    {
      "Id": 2,
      "Name": "2014-11-19-Harvest Location-H",
      "HarvestType": "WholePlant",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 0,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": false,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": null,
      "ArchivedDate": null,
      "IsOnTrip": false,
      "LastModified": "2014-11-19T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/onhold

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests on hold.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v2/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "2014-11-19-Harvest Location-M",
      "HarvestType": "Product",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 15,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": true,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": null,
      "ArchivedDate": null,
      "IsOnTrip": false,
      "LastModified": "2014-11-19T00:00:00+00:00"
    },
    {
      "Id": 2,
      "Name": "2014-11-19-Harvest Location-H",
      "HarvestType": "WholePlant",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 17,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": true,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": null,
      "ArchivedDate": null,
      "IsOnTrip": false,
      "LastModified": "2014-11-19T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/inactive

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive harvests.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v2/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "2014-11-19-Harvest Location-M",
      "HarvestType": "Product",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 30,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": false,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": "2015-01-10",
      "ArchivedDate": null,
      "IsOnTrip": false,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "Name": "2014-11-19-Harvest Location-H",
      "HarvestType": "WholePlant",
      "SourceStrainCount": 0,
      "SourceStrainNames": null,
      "Strains": [],
      "DryingLocationId": 1,
      "DryingLocationName": "Harvest Location",
      "DryingLocationTypeName": null,
      "PatientLicenseNumber": null,
      "CurrentWeight": 0.0,
      "TotalWasteWeight": 0.0,
      "PlantCount": 70,
      "TotalWetWeight": 40.0,
      "TotalRestoredWeight": 0.0,
      "PackageCount": 30,
      "TotalPackagedWeight": 0.0,
      "UnitOfWeightName": "Ounces",
      "LabTestingState": null,
      "LabTestingStateDate": null,
      "IsOnHold": false,
      "HarvestStartDate": "2014-11-19",
      "FinishedDate": null,
      "ArchivedDate": "2015-02-01",
      "IsOnTrip": false,
      "LastModified": "2014-11-19T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/waste

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of waste harvests.
harvestId
The harvestId is the unique identifier for each harvest.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /harvests/v2/waste?licenseNumber=123-ABC&harvestId=123456789&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "WasteTypeName": "Plant Material",
      "WasteWeight": 10.0,
      "UnitOfWeightName": "Ounces",
      "ActualDate": "2014-11-19"
    },
    {
      "Id": 2,
      "WasteTypeName": "Root Ball",
      "WasteWeight": 15.0,
      "UnitOfWeightName": "Ounces",
      "ActualDate": "2014-11-19"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v2/waste/types

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /harvests/v2/waste/types?pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Plant Material"
    },
    {
      "Name": "Fibrous"
    },
    {
      "Name": "Root Ball"
    }
  ],
  "Total": 3,
  "TotalRecords": 3,
  "PageSize": 3,
  "RecordsOnPage": 3,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v2/packages/testing

Permissions Required

View Harvests
Manage Harvests
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests packages.

Example Request

POST /harvests/v2/packages/testing?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": 1,
    "LabTestStageId": 2,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020203",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020204",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3,
    4
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v2/packages

Permissions Required

View Harvests
Manage Harvests
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests packages.

Example Request

POST /harvests/v2/packages?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": 1,
    "LabTestStageId": 2,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020203",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020204",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3,
    4
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v2/location

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests locations.

Example Request

PUT /harvests/v2/location?licenseNumber=123-ABC[
  {
    "Id": 1,
    "HarvestName": null,
    "DryingLocation": "Flower Location A",
    "ActualDate": "2019-05-29T00:00:00Z"
  },
  {
    "Id": null,
    "HarvestName": "2019-05-29-Flower Location A-H",
    "DryingLocation": "Drying Location B",
    "ActualDate": "2019-05-29T00:00:00Z"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v2/waste

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests waste.

Example Request

POST /harvests/v2/waste?licenseNumber=123-ABC[
  {
    "Id": 1,
    "WasteType": "Plant Material",
    "UnitOfWeight": "Grams",
    "WasteWeight": 10.05,
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "WasteType": "Fibrous Material",
    "UnitOfWeight": "Grams",
    "WasteWeight": 30.6,
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v2/rename

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of renamed harvests.

Example Request

PUT /harvests/v2/rename?licenseNumber=123-ABC[
  {
    "Id": 1,
    "OldName": null,
    "NewName": "2019-05-29-Flower Location B-H"
  },
  {
    "Id": null,
    "OldName": "2019-05-29-Flower Location A-H",
    "NewName": "2019-05-29-Flower Location B-H"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v2/finish

Permissions Required

View Harvests
Finish/Discontinue Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of finished harvests.

Example Request

PUT /harvests/v2/finish?licenseNumber=123-ABC[
  {
    "Id": 1,
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v2/unfinish

Permissions Required

View Harvests
Finish/Discontinue Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of unfinished harvests.

Example Request

PUT /harvests/v2/unfinish?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v2/restore/harvestedplants

Permissions Required

View Harvests
Finish/Discontinue Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests restored.

Example Request

PUT /harvests/v2/restore/harvestedplants?licenseNumber=123-ABC[
  {
    "HarvestId": 1,
    "PlantTags": [
      "ABCDEF012345670000010100",
      "ABCDEF012345670000010101",
      "ABCDEF012345670000010102"
    ]
  },
  {
    "HarvestId": 2,
    "PlantTags": [
      "ABCDEF012345670000010200",
      "ABCDEF012345670000010201",
      "ABCDEF012345670000010202"
    ]
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Harvests

Server: https://api-mi.metrc.com/

DELETE /harvests/v2/waste/{id}

Permissions Required

View Harvests
Discontinue Harvest Waste

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests waste.

Example Request

DELETE /harvests/v2/waste/123?licenseNumber=123-ABC

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v1/{id}

Permissions Required

View Harvests

Parameters

licenseNumber
optional
If specified, the Harvest will be validated against the specified License Number. If not specified, the Harvest will be validated against all of the User's current Facilities. Please note that if the Harvest is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /harvests/v1/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "2014-11-19-Harvest Location-M",
  "HarvestType": "Product",
  "SourceStrainCount": 0,
  "SourceStrainNames": null,
  "Strains": [],
  "DryingLocationId": 1,
  "DryingLocationName": "Harvest Location",
  "DryingLocationTypeName": null,
  "PatientLicenseNumber": null,
  "CurrentWeight": 0.0,
  "TotalWasteWeight": 0.0,
  "PlantCount": 70,
  "TotalWetWeight": 40.0,
  "TotalRestoredWeight": 0.0,
  "PackageCount": 5,
  "TotalPackagedWeight": 0.0,
  "UnitOfWeightName": "Ounces",
  "LabTestingState": null,
  "LabTestingStateDate": null,
  "IsOnHold": false,
  "HarvestStartDate": "2014-11-19",
  "FinishedDate": null,
  "ArchivedDate": null,
  "IsOnTrip": false,
  "LastModified": "2014-11-19T00:00:00+00:00"
}

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v1/active

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of active harvests.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v1/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "Name": "2014-11-19-Harvest Location-M",
    "HarvestType": "Product",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 5,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": false,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": null,
    "ArchivedDate": null,
    "IsOnTrip": false,
    "LastModified": "2014-11-19T00:00:00+00:00"
  },
  {
    "Id": 2,
    "Name": "2014-11-19-Harvest Location-H",
    "HarvestType": "WholePlant",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 0,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": false,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": null,
    "ArchivedDate": null,
    "IsOnTrip": false,
    "LastModified": "2014-11-19T00:00:00+00:00"
  }
]

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v1/onhold

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of harvests on hold.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v1/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "Name": "2014-11-19-Harvest Location-M",
    "HarvestType": "Product",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 15,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": true,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": null,
    "ArchivedDate": null,
    "IsOnTrip": false,
    "LastModified": "2014-11-19T00:00:00+00:00"
  },
  {
    "Id": 2,
    "Name": "2014-11-19-Harvest Location-H",
    "HarvestType": "WholePlant",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 17,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": true,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": null,
    "ArchivedDate": null,
    "IsOnTrip": false,
    "LastModified": "2014-11-19T00:00:00+00:00"
  }
]

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v1/inactive

Permissions Required

View Harvests

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive harvests.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /harvests/v1/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "Name": "2014-11-19-Harvest Location-M",
    "HarvestType": "Product",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 30,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": false,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": "2015-01-10",
    "ArchivedDate": null,
    "IsOnTrip": false,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "Name": "2014-11-19-Harvest Location-H",
    "HarvestType": "WholePlant",
    "SourceStrainCount": 0,
    "SourceStrainNames": null,
    "Strains": [],
    "DryingLocationId": 1,
    "DryingLocationName": "Harvest Location",
    "DryingLocationTypeName": null,
    "PatientLicenseNumber": null,
    "CurrentWeight": 0.0,
    "TotalWasteWeight": 0.0,
    "PlantCount": 70,
    "TotalWetWeight": 40.0,
    "TotalRestoredWeight": 0.0,
    "PackageCount": 30,
    "TotalPackagedWeight": 0.0,
    "UnitOfWeightName": "Ounces",
    "LabTestingState": null,
    "LabTestingStateDate": null,
    "IsOnHold": false,
    "HarvestStartDate": "2014-11-19",
    "FinishedDate": null,
    "ArchivedDate": "2015-02-01",
    "IsOnTrip": false,
    "LastModified": "2014-11-19T00:00:00+00:00"
  }
]

Harvests

Server: https://api-mi.metrc.com/

GET /harvests/v1/waste/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /harvests/v1/waste/types

Example Response

[
  {
    "Name": "Plant Material"
  },
  {
    "Name": "Fibrous"
  },
  {
    "Name": "Root Ball"
  }
]

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v1/create/packages

Permissions Required

View Harvests
Manage Harvests
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /harvests/v1/create/packages?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": 1,
    "LabTestStageId": 2,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020203",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020204",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v1/create/packages/testing

Permissions Required

View Harvests
Manage Harvests
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /harvests/v1/create/packages/testing?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": 1,
    "LabTestStageId": 2,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": 2,
        "HarvestName": null,
        "Weight": 100.23,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 25.1,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020203",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": false,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  },
  {
    "Tag": "ABCDEF012345670000020204",
    "Location": null,
    "Item": "Shake",
    "UnitOfWeight": "Grams",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsTradeSample": true,
    "IsDonation": false,
    "ProductRequiresRemediation": false,
    "RemediateProduct": false,
    "RemediationMethodId": null,
    "RemediationDate": null,
    "RemediationSteps": null,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "HarvestId": null,
        "HarvestName": "2018-04-03-Harvest Location-M",
        "Weight": 50.0,
        "UnitOfWeight": "Grams"
      },
      {
        "HarvestId": 4,
        "HarvestName": null,
        "Weight": 1.0,
        "UnitOfWeight": "Grams"
      }
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null,
    "RequiredLabTestBatches": []
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v1/move

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber

Example Request

PUT /harvests/v1/move?licenseNumber=123-ABC[
  {
    "Id": 1,
    "HarvestName": null,
    "DryingLocation": "Flower Location A",
    "ActualDate": "2019-05-29T00:00:00Z"
  },
  {
    "Id": null,
    "HarvestName": "2019-05-29-Flower Location A-H",
    "DryingLocation": "Drying Location B",
    "ActualDate": "2019-05-29T00:00:00Z"
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v1/removewaste

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber

Example Request

POST /harvests/v1/removewaste?licenseNumber=123-ABC[
  {
    "Id": 1,
    "WasteType": "Plant Material",
    "UnitOfWeight": "Grams",
    "WasteWeight": 10.05,
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "WasteType": "Fibrous Material",
    "UnitOfWeight": "Grams",
    "WasteWeight": 30.6,
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

PUT /harvests/v1/rename

Permissions Required

View Harvests
Manage Harvests

Parameters

licenseNumber

Example Request

PUT /harvests/v1/rename?licenseNumber=123-ABC[
  {
    "Id": 1,
    "OldName": null,
    "NewName": "2019-05-29-Flower Location B-H"
  },
  {
    "Id": null,
    "OldName": "2019-05-29-Flower Location A-H",
    "NewName": "2019-05-29-Flower Location B-H"
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v1/finish

Permissions Required

View Harvests
Finish/Discontinue Harvests

Parameters

licenseNumber

Example Request

POST /harvests/v1/finish?licenseNumber=123-ABC[
  {
    "Id": 1,
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Harvests

Server: https://api-mi.metrc.com/

POST /harvests/v1/unfinish

Permissions Required

View Harvests
Finish/Discontinue Harvests

Parameters

licenseNumber

Example Request

POST /harvests/v1/unfinish?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

GET /items/v2/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
optional
If specified, the Item will be validated against the specified License Number. If not specified, the Item will be validated against all of the User's current Facilities. Please note that if the Item is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /items/v2/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "Buds",
  "ProductCategoryName": "Buds",
  "ProductCategoryType": "Buds",
  "IsExpirationDateRequired": false,
  "HasExpirationDate": false,
  "IsSellByDateRequired": false,
  "HasSellByDate": false,
  "IsUseByDateRequired": false,
  "HasUseByDate": false,
  "QuantityType": "WeightBased",
  "DefaultLabTestingState": "NotSubmitted",
  "UnitOfMeasureName": "Ounces",
  "ApprovalStatus": "Approved",
  "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "ItemBrandId": 0,
  "ItemBrandName": null,
  "AdministrationMethod": null,
  "UnitCbdPercent": null,
  "UnitCbdContent": null,
  "UnitCbdContentUnitOfMeasureName": null,
  "UnitCbdContentDose": null,
  "UnitCbdContentDoseUnitOfMeasureName": null,
  "UnitThcPercent": null,
  "UnitThcContent": null,
  "UnitThcContentUnitOfMeasureName": null,
  "UnitThcContentDose": null,
  "UnitThcContentDoseUnitOfMeasureName": null,
  "UnitVolume": null,
  "UnitVolumeUnitOfMeasureName": null,
  "UnitWeight": null,
  "UnitWeightUnitOfMeasureName": null,
  "ServingSize": null,
  "SupplyDurationDays": null,
  "NumberOfDoses": null,
  "UnitQuantity": null,
  "UnitQuantityUnitOfMeasureName": null,
  "PublicIngredients": null,
  "Description": null,
  "Allergens": null,
  "ProductImages": [],
  "ProductPhotoDescription": null,
  "LabelImages": [],
  "LabelPhotoDescription": null,
  "PackagingImages": [],
  "PackagingPhotoDescription": null,
  "ProductPDFDocuments": [],
  "IsUsed": false,
  "LabTestBatchNames": [],
  "ProcessingJobCategoryName": null
}

Items

Server: https://api-mi.metrc.com/

GET /items/v2/active

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of active items.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /items/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": "Buds",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "WeightBased",
      "DefaultLabTestingState": "AwaitingConfirmation",
      "UnitOfMeasureName": "Ounces",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    },
    {
      "Id": 3,
      "Name": "Brownies",
      "ProductCategoryName": "Infused Edibles",
      "ProductCategoryType": "InfusedEdible",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "CountBased",
      "DefaultLabTestingState": "NotSubmitted",
      "UnitOfMeasureName": "Each",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": 2.0,
      "UnitThcContentUnitOfMeasureName": "Milligrams",
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": 15.0,
      "UnitWeightUnitOfMeasureName": "Ounces",
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [
        {
          "FileSystemId": 5
        }
      ],
      "ProductPhotoDescription": null,
      "LabelImages": [
        {
          "FileSystemId": 3
        }
      ],
      "LabelPhotoDescription": null,
      "PackagingImages": [
        {
          "FileSystemId": 22
        }
      ],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [
        {
          "FileSystemId": 5
        }
      ],
      "IsUsed": false,
      "LabTestBatchNames": [
        "LB Name"
      ],
      "ProcessingJobCategoryName": null
    },
    {
      "Id": 34,
      "Name": "Juice",
      "ProductCategoryName": "Infused Edibles",
      "ProductCategoryType": "InfusedEdible",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "CountBased",
      "DefaultLabTestingState": "NotSubmitted",
      "UnitOfMeasureName": "Each",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": 2.0,
      "UnitThcContentUnitOfMeasureName": "Milligrams",
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": 15.0,
      "UnitVolumeUnitOfMeasureName": "Fluid Ounces",
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  ],
  "Total": 3,
  "TotalRecords": 3,
  "PageSize": 3,
  "RecordsOnPage": 3,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Items

Server: https://api-mi.metrc.com/

GET /items/v2/inactive

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive items.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /items/v2/inactive?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": "Buds",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "WeightBased",
      "DefaultLabTestingState": "AwaitingConfirmation",
      "UnitOfMeasureName": "Ounces",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    },
    {
      "Id": 3,
      "Name": "Brownies",
      "ProductCategoryName": "Infused Edibles",
      "ProductCategoryType": "InfusedEdible",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "CountBased",
      "DefaultLabTestingState": "NotSubmitted",
      "UnitOfMeasureName": "Each",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": 2.0,
      "UnitThcContentUnitOfMeasureName": "Milligrams",
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": 15.0,
      "UnitWeightUnitOfMeasureName": "Ounces",
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [
        {
          "FileSystemId": 5
        }
      ],
      "ProductPhotoDescription": null,
      "LabelImages": [
        {
          "FileSystemId": 3
        }
      ],
      "LabelPhotoDescription": null,
      "PackagingImages": [
        {
          "FileSystemId": 22
        }
      ],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [
        {
          "FileSystemId": 5
        }
      ],
      "IsUsed": false,
      "LabTestBatchNames": [
        "LB Name"
      ],
      "ProcessingJobCategoryName": null
    },
    {
      "Id": 34,
      "Name": "Juice",
      "ProductCategoryName": "Infused Edibles",
      "ProductCategoryType": "InfusedEdible",
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": "CountBased",
      "DefaultLabTestingState": "NotSubmitted",
      "UnitOfMeasureName": "Each",
      "ApprovalStatus": "Approved",
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": 2.0,
      "UnitThcContentUnitOfMeasureName": "Milligrams",
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": 15.0,
      "UnitVolumeUnitOfMeasureName": "Fluid Ounces",
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  ],
  "Total": 3,
  "TotalRecords": 3,
  "PageSize": 3,
  "RecordsOnPage": 3,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Items

Server: https://api-mi.metrc.com/

GET /items/v2/categories

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
licenseNumber
optional
If specified, the Categories will be retrieved for the specified License Number. If not specified, all Item Categories will be returned.

Example Request

GET /items/v2/categories?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Buds",
      "ProductCategoryType": "Buds",
      "QuantityType": "WeightBased",
      "RequiresStrain": true,
      "RequiresItemBrand": false,
      "RequiresAdministrationMethod": false,
      "RequiresUnitCbdPercent": false,
      "RequiresUnitCbdContent": false,
      "RequiresUnitCbdContentDose": false,
      "RequiresUnitThcPercent": false,
      "RequiresUnitThcContent": false,
      "RequiresUnitThcContentDose": false,
      "RequiresUnitVolume": false,
      "RequiresUnitWeight": false,
      "RequiresServingSize": false,
      "RequiresSupplyDurationDays": false,
      "RequiresNumberOfDoses": false,
      "RequiresPublicIngredients": false,
      "RequiresDescription": false,
      "RequiresAllergens": false,
      "RequiresProductPhotos": 0,
      "RequiresProductPhotoDescription": false,
      "RequiresLabelPhotos": 0,
      "RequiresLabelPhotoDescription": false,
      "RequiresPackagingPhotos": 0,
      "RequiresPackagingPhotoDescription": false,
      "CanContainSeeds": true,
      "CanBeRemediated": true,
      "CanBeDestroyed": false,
      "RequiresProductPDFDocuments": 0,
      "LabTestBatchNames": [
        "LB Name"
      ]
    },
    {
      "Name": "Immature Plants",
      "ProductCategoryType": "Plants",
      "QuantityType": "CountBased",
      "RequiresStrain": true,
      "RequiresItemBrand": false,
      "RequiresAdministrationMethod": false,
      "RequiresUnitCbdPercent": false,
      "RequiresUnitCbdContent": false,
      "RequiresUnitCbdContentDose": false,
      "RequiresUnitThcPercent": false,
      "RequiresUnitThcContent": false,
      "RequiresUnitThcContentDose": false,
      "RequiresUnitVolume": false,
      "RequiresUnitWeight": false,
      "RequiresServingSize": false,
      "RequiresSupplyDurationDays": false,
      "RequiresNumberOfDoses": false,
      "RequiresPublicIngredients": false,
      "RequiresDescription": false,
      "RequiresAllergens": false,
      "RequiresProductPhotos": 0,
      "RequiresProductPhotoDescription": false,
      "RequiresLabelPhotos": 0,
      "RequiresLabelPhotoDescription": false,
      "RequiresPackagingPhotos": 0,
      "RequiresPackagingPhotoDescription": false,
      "CanContainSeeds": true,
      "CanBeRemediated": false,
      "CanBeDestroyed": false,
      "RequiresProductPDFDocuments": 0,
      "LabTestBatchNames": []
    },
    {
      "Name": "Infused",
      "ProductCategoryType": "InfusedEdible",
      "QuantityType": "CountBased",
      "RequiresStrain": false,
      "RequiresItemBrand": false,
      "RequiresAdministrationMethod": false,
      "RequiresUnitCbdPercent": false,
      "RequiresUnitCbdContent": false,
      "RequiresUnitCbdContentDose": false,
      "RequiresUnitThcPercent": false,
      "RequiresUnitThcContent": true,
      "RequiresUnitThcContentDose": false,
      "RequiresUnitVolume": false,
      "RequiresUnitWeight": true,
      "RequiresServingSize": false,
      "RequiresSupplyDurationDays": false,
      "RequiresNumberOfDoses": false,
      "RequiresPublicIngredients": false,
      "RequiresDescription": false,
      "RequiresAllergens": false,
      "RequiresProductPhotos": 0,
      "RequiresProductPhotoDescription": false,
      "RequiresLabelPhotos": 0,
      "RequiresLabelPhotoDescription": false,
      "RequiresPackagingPhotos": 0,
      "RequiresPackagingPhotoDescription": false,
      "CanContainSeeds": false,
      "CanBeRemediated": true,
      "CanBeDestroyed": false,
      "RequiresProductPDFDocuments": 0,
      "LabTestBatchNames": []
    },
    {
      "Name": "Infused Liquid",
      "ProductCategoryType": "InfusedEdible",
      "QuantityType": "CountBased",
      "RequiresStrain": false,
      "RequiresItemBrand": false,
      "RequiresAdministrationMethod": false,
      "RequiresUnitCbdPercent": false,
      "RequiresUnitCbdContent": false,
      "RequiresUnitCbdContentDose": false,
      "RequiresUnitThcPercent": false,
      "RequiresUnitThcContent": true,
      "RequiresUnitThcContentDose": false,
      "RequiresUnitVolume": true,
      "RequiresUnitWeight": false,
      "RequiresServingSize": false,
      "RequiresSupplyDurationDays": false,
      "RequiresNumberOfDoses": false,
      "RequiresPublicIngredients": false,
      "RequiresDescription": false,
      "RequiresAllergens": false,
      "RequiresProductPhotos": 0,
      "RequiresProductPhotoDescription": false,
      "RequiresLabelPhotos": 0,
      "RequiresLabelPhotoDescription": false,
      "RequiresPackagingPhotos": 0,
      "RequiresPackagingPhotoDescription": false,
      "CanContainSeeds": false,
      "CanBeRemediated": true,
      "CanBeDestroyed": false,
      "RequiresProductPDFDocuments": 0,
      "LabTestBatchNames": []
    }
  ],
  "Total": 4,
  "TotalRecords": 4,
  "PageSize": 4,
  "RecordsOnPage": 4,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Items

Server: https://api-mi.metrc.com/

GET /items/v2/brands

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of active item brands.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /items/v2/brands?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Skunk Nasty",
      "Status": "Paid"
    },
    {
      "Name": "Darth Buds",
      "Status": "NotPaid"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Items

Server: https://api-mi.metrc.com/

GET /items/v2/photo/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
optional
The file system id of the image to return.

Example Request

GET /items/v2/photo/1?licenseNumber=123-ABC

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v2/

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

POST /items/v2/?licenseNumber=123-ABC[
  {
    "ItemCategory": "Buds",
    "Name": "Buds Item",
    "UnitOfMeasure": "Ounces",
    "Strain": "Spring Hill Kush",
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProductPDFFileSystemIds": null,
    "ProcessingJobCategoryName": null
  },
  {
    "ItemCategory": "Infused (edible)",
    "Name": "Infused Item",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": 150.0,
    "UnitWeightUnitOfMeasure": "Milligrams",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": "Allergens",
    "ProductImageFileSystemIds": [
      5
    ],
    "ProductPhotoDescription": "Product Photo Description",
    "LabelImageFileSystemIds": [
      3
    ],
    "LabelPhotoDescription": "Label Photo Description",
    "PackagingImageFileSystemIds": [
      22
    ],
    "PackagingPhotoDescription": "Packaging Photo Description",
    "ProductPDFFileSystemIds": [
      22
    ],
    "ProcessingJobCategoryName": null
  },
  {
    "ItemCategory": "Infused (edible)",
    "Name": "Infused Juice",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": 5.0,
    "UnitThcContentDoseUnitOfMeasure": "Milligrams",
    "UnitVolume": 150.0,
    "UnitVolumeUnitOfMeasure": "Milliliters",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": 2,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProductPDFFileSystemIds": null,
    "ProcessingJobCategoryName": "Category 1"
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3
  ],
  "Warnings": null
}

Items

Server: https://api-mi.metrc.com/

PUT /items/v2/

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for the Item updates.

Example Request

PUT /items/v2/?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": "Buds Item",
    "ItemCategory": "Buds",
    "UnitOfMeasure": "Ounces",
    "Strain": "String Hill Kush",
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 2,
    "Name": "Extract Spray Paint",
    "ItemCategory": "Concentrate (Each)",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": 100.0,
    "UnitVolumeUnitOfMeasure": "Milliliters",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": "Allergens",
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": "Product Photo Description",
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": "Label Photo Description",
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": "Packaging Photo Description",
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 2,
    "Name": "Concentrate Extract",
    "ItemCategory": "Concentrate (Each)",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": 5.0,
    "UnitThcContentDoseUnitOfMeasure": "Milligrams",
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": 100.0,
    "UnitWeightUnitOfMeasure": "Milligrams",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": 2,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProcessingJobCategoryName": "Category 1"
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v2/photo

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

POST /items/v2/photo?licenseNumber=123-ABC[
  {
    "FileName": "Image.png",
    "EncodedImageBase64": "File encoded in Base64=="
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Items

Server: https://api-mi.metrc.com/

DELETE /items/v2/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for the Item to delete.

Example Request

DELETE /items/v2/7?licenseNumber=123-ABC

Example Response

No response

Items

Server: https://api-mi.metrc.com/

DELETE /items/v2/brand/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for the Item Brand to delete.

Example Request

DELETE /items/v2/brand/7?licenseNumber=123-ABC

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v2/brand

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for the Item Brands to create.

Example Request

POST /items/v2/brand?licenseNumber=123-ABC[
  {
    "Name": "Premium"
  },
  {
    "Name": "Consumer"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Items

Server: https://api-mi.metrc.com/

PUT /items/v2/brand

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for the Item Brand updates.

Example Request

PUT /items/v2/brand?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": "Premium"
  },
  {
    "Id": 2,
    "Name": "Consumer"
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

GET /items/v1/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
optional
If specified, the Item will be validated against the specified License Number. If not specified, the Item will be validated against all of the User's current Facilities. Please note that if the Item is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /items/v1/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "Buds",
  "ProductCategoryName": "Buds",
  "ProductCategoryType": "Buds",
  "IsExpirationDateRequired": false,
  "HasExpirationDate": false,
  "IsSellByDateRequired": false,
  "HasSellByDate": false,
  "IsUseByDateRequired": false,
  "HasUseByDate": false,
  "QuantityType": "WeightBased",
  "DefaultLabTestingState": "NotSubmitted",
  "UnitOfMeasureName": "Ounces",
  "ApprovalStatus": "Approved",
  "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "ItemBrandId": 0,
  "ItemBrandName": null,
  "AdministrationMethod": null,
  "UnitCbdPercent": null,
  "UnitCbdContent": null,
  "UnitCbdContentUnitOfMeasureName": null,
  "UnitCbdContentDose": null,
  "UnitCbdContentDoseUnitOfMeasureName": null,
  "UnitThcPercent": null,
  "UnitThcContent": null,
  "UnitThcContentUnitOfMeasureName": null,
  "UnitThcContentDose": null,
  "UnitThcContentDoseUnitOfMeasureName": null,
  "UnitVolume": null,
  "UnitVolumeUnitOfMeasureName": null,
  "UnitWeight": null,
  "UnitWeightUnitOfMeasureName": null,
  "ServingSize": null,
  "SupplyDurationDays": null,
  "NumberOfDoses": null,
  "UnitQuantity": null,
  "UnitQuantityUnitOfMeasureName": null,
  "PublicIngredients": null,
  "Description": null,
  "Allergens": null,
  "ProductImages": [],
  "ProductPhotoDescription": null,
  "LabelImages": [],
  "LabelPhotoDescription": null,
  "PackagingImages": [],
  "PackagingPhotoDescription": null,
  "ProductPDFDocuments": [],
  "IsUsed": false,
  "LabTestBatchNames": [],
  "ProcessingJobCategoryName": null
}

Items

Server: https://api-mi.metrc.com/

GET /items/v1/active

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of active items.

Example Request

GET /items/v1/active?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": "Buds",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "WeightBased",
    "DefaultLabTestingState": "AwaitingConfirmation",
    "UnitOfMeasureName": "Ounces",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 3,
    "Name": "Brownies",
    "ProductCategoryName": "Infused Edibles",
    "ProductCategoryType": "InfusedEdible",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "CountBased",
    "DefaultLabTestingState": "NotSubmitted",
    "UnitOfMeasureName": "Each",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": 2.0,
    "UnitThcContentUnitOfMeasureName": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": 15.0,
    "UnitWeightUnitOfMeasureName": "Ounces",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [
      {
        "FileSystemId": 5
      }
    ],
    "ProductPhotoDescription": null,
    "LabelImages": [
      {
        "FileSystemId": 3
      }
    ],
    "LabelPhotoDescription": null,
    "PackagingImages": [
      {
        "FileSystemId": 22
      }
    ],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [
      {
        "FileSystemId": 5
      }
    ],
    "IsUsed": false,
    "LabTestBatchNames": [
      "LB Name"
    ],
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 34,
    "Name": "Juice",
    "ProductCategoryName": "Infused Edibles",
    "ProductCategoryType": "InfusedEdible",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "CountBased",
    "DefaultLabTestingState": "NotSubmitted",
    "UnitOfMeasureName": "Each",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": 2.0,
    "UnitThcContentUnitOfMeasureName": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": 15.0,
    "UnitVolumeUnitOfMeasureName": "Fluid Ounces",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
]

Items

Server: https://api-mi.metrc.com/

GET /items/v1/inactive

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive items.

Example Request

GET /items/v1/inactive?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": "Buds",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "WeightBased",
    "DefaultLabTestingState": "AwaitingConfirmation",
    "UnitOfMeasureName": "Ounces",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 3,
    "Name": "Brownies",
    "ProductCategoryName": "Infused Edibles",
    "ProductCategoryType": "InfusedEdible",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "CountBased",
    "DefaultLabTestingState": "NotSubmitted",
    "UnitOfMeasureName": "Each",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": 2.0,
    "UnitThcContentUnitOfMeasureName": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": 15.0,
    "UnitWeightUnitOfMeasureName": "Ounces",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [
      {
        "FileSystemId": 5
      }
    ],
    "ProductPhotoDescription": null,
    "LabelImages": [
      {
        "FileSystemId": 3
      }
    ],
    "LabelPhotoDescription": null,
    "PackagingImages": [
      {
        "FileSystemId": 22
      }
    ],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [
      {
        "FileSystemId": 5
      }
    ],
    "IsUsed": false,
    "LabTestBatchNames": [
      "LB Name"
    ],
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 34,
    "Name": "Juice",
    "ProductCategoryName": "Infused Edibles",
    "ProductCategoryType": "InfusedEdible",
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": "CountBased",
    "DefaultLabTestingState": "NotSubmitted",
    "UnitOfMeasureName": "Each",
    "ApprovalStatus": "Approved",
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": 2.0,
    "UnitThcContentUnitOfMeasureName": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": 15.0,
    "UnitVolumeUnitOfMeasureName": "Fluid Ounces",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
]

Items

Server: https://api-mi.metrc.com/

GET /items/v1/categories

Permissions Required

None

Parameters

licenseNumber
optional
If specified, the Categories will be retrived for the specified License Number. If not specified, the all Item Categories will be returned.

Example Request

GET /items/v1/categories?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Buds",
    "ProductCategoryType": "Buds",
    "QuantityType": "WeightBased",
    "RequiresStrain": true,
    "RequiresItemBrand": false,
    "RequiresAdministrationMethod": false,
    "RequiresUnitCbdPercent": false,
    "RequiresUnitCbdContent": false,
    "RequiresUnitCbdContentDose": false,
    "RequiresUnitThcPercent": false,
    "RequiresUnitThcContent": false,
    "RequiresUnitThcContentDose": false,
    "RequiresUnitVolume": false,
    "RequiresUnitWeight": false,
    "RequiresServingSize": false,
    "RequiresSupplyDurationDays": false,
    "RequiresNumberOfDoses": false,
    "RequiresPublicIngredients": false,
    "RequiresDescription": false,
    "RequiresAllergens": false,
    "RequiresProductPhotos": 0,
    "RequiresProductPhotoDescription": false,
    "RequiresLabelPhotos": 0,
    "RequiresLabelPhotoDescription": false,
    "RequiresPackagingPhotos": 0,
    "RequiresPackagingPhotoDescription": false,
    "CanContainSeeds": true,
    "CanBeRemediated": true,
    "CanBeDestroyed": false,
    "RequiresProductPDFDocuments": 0,
    "LabTestBatchNames": [
      "LB Name"
    ]
  },
  {
    "Name": "Immature Plants",
    "ProductCategoryType": "Plants",
    "QuantityType": "CountBased",
    "RequiresStrain": true,
    "RequiresItemBrand": false,
    "RequiresAdministrationMethod": false,
    "RequiresUnitCbdPercent": false,
    "RequiresUnitCbdContent": false,
    "RequiresUnitCbdContentDose": false,
    "RequiresUnitThcPercent": false,
    "RequiresUnitThcContent": false,
    "RequiresUnitThcContentDose": false,
    "RequiresUnitVolume": false,
    "RequiresUnitWeight": false,
    "RequiresServingSize": false,
    "RequiresSupplyDurationDays": false,
    "RequiresNumberOfDoses": false,
    "RequiresPublicIngredients": false,
    "RequiresDescription": false,
    "RequiresAllergens": false,
    "RequiresProductPhotos": 0,
    "RequiresProductPhotoDescription": false,
    "RequiresLabelPhotos": 0,
    "RequiresLabelPhotoDescription": false,
    "RequiresPackagingPhotos": 0,
    "RequiresPackagingPhotoDescription": false,
    "CanContainSeeds": true,
    "CanBeRemediated": false,
    "CanBeDestroyed": false,
    "RequiresProductPDFDocuments": 0,
    "LabTestBatchNames": []
  },
  {
    "Name": "Infused",
    "ProductCategoryType": "InfusedEdible",
    "QuantityType": "CountBased",
    "RequiresStrain": false,
    "RequiresItemBrand": false,
    "RequiresAdministrationMethod": false,
    "RequiresUnitCbdPercent": false,
    "RequiresUnitCbdContent": false,
    "RequiresUnitCbdContentDose": false,
    "RequiresUnitThcPercent": false,
    "RequiresUnitThcContent": true,
    "RequiresUnitThcContentDose": false,
    "RequiresUnitVolume": false,
    "RequiresUnitWeight": true,
    "RequiresServingSize": false,
    "RequiresSupplyDurationDays": false,
    "RequiresNumberOfDoses": false,
    "RequiresPublicIngredients": false,
    "RequiresDescription": false,
    "RequiresAllergens": false,
    "RequiresProductPhotos": 0,
    "RequiresProductPhotoDescription": false,
    "RequiresLabelPhotos": 0,
    "RequiresLabelPhotoDescription": false,
    "RequiresPackagingPhotos": 0,
    "RequiresPackagingPhotoDescription": false,
    "CanContainSeeds": false,
    "CanBeRemediated": true,
    "CanBeDestroyed": false,
    "RequiresProductPDFDocuments": 0,
    "LabTestBatchNames": []
  },
  {
    "Name": "Infused Liquid",
    "ProductCategoryType": "InfusedEdible",
    "QuantityType": "CountBased",
    "RequiresStrain": false,
    "RequiresItemBrand": false,
    "RequiresAdministrationMethod": false,
    "RequiresUnitCbdPercent": false,
    "RequiresUnitCbdContent": false,
    "RequiresUnitCbdContentDose": false,
    "RequiresUnitThcPercent": false,
    "RequiresUnitThcContent": true,
    "RequiresUnitThcContentDose": false,
    "RequiresUnitVolume": true,
    "RequiresUnitWeight": false,
    "RequiresServingSize": false,
    "RequiresSupplyDurationDays": false,
    "RequiresNumberOfDoses": false,
    "RequiresPublicIngredients": false,
    "RequiresDescription": false,
    "RequiresAllergens": false,
    "RequiresProductPhotos": 0,
    "RequiresProductPhotoDescription": false,
    "RequiresLabelPhotos": 0,
    "RequiresLabelPhotoDescription": false,
    "RequiresPackagingPhotos": 0,
    "RequiresPackagingPhotoDescription": false,
    "CanContainSeeds": false,
    "CanBeRemediated": true,
    "CanBeDestroyed": false,
    "RequiresProductPDFDocuments": 0,
    "LabTestBatchNames": []
  }
]

Items

Server: https://api-mi.metrc.com/

GET /items/v1/brands

Permissions Required

Manage Items

Parameters

licenseNumber
The license number of the facility for which to return the list of active item brands.

Example Request

GET /items/v1/brands?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Skunk Nasty",
    "Status": "Paid"
  },
  {
    "Name": "Darth Buds",
    "Status": "NotPaid"
  }
]

Items

Server: https://api-mi.metrc.com/

GET /items/v1/photo/{id}

Permissions Required

Manage Items

Parameters

licenseNumber
optional
The file system id of the image to return.

Example Request

GET /items/v1/photo/1?licenseNumber=123-ABC

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v1/create

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

POST /items/v1/create?licenseNumber=123-ABC[
  {
    "ItemCategory": "Buds",
    "Name": "Buds Item",
    "UnitOfMeasure": "Ounces",
    "Strain": "Spring Hill Kush",
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProductPDFFileSystemIds": null,
    "ProcessingJobCategoryName": null
  },
  {
    "ItemCategory": "Infused (edible)",
    "Name": "Infused Item",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": 150.0,
    "UnitWeightUnitOfMeasure": "Milligrams",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": "Allergens",
    "ProductImageFileSystemIds": [
      5
    ],
    "ProductPhotoDescription": "Product Photo Description",
    "LabelImageFileSystemIds": [
      3
    ],
    "LabelPhotoDescription": "Label Photo Description",
    "PackagingImageFileSystemIds": [
      22
    ],
    "PackagingPhotoDescription": "Packaging Photo Description",
    "ProductPDFFileSystemIds": [
      22
    ],
    "ProcessingJobCategoryName": null
  },
  {
    "ItemCategory": "Infused (edible)",
    "Name": "Infused Juice",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": 5.0,
    "UnitThcContentDoseUnitOfMeasure": "Milligrams",
    "UnitVolume": 150.0,
    "UnitVolumeUnitOfMeasure": "Milliliters",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": 2,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProductPDFFileSystemIds": null,
    "ProcessingJobCategoryName": "Category 1"
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v1/update

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

POST /items/v1/update?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": "Buds Item",
    "ItemCategory": "Buds",
    "UnitOfMeasure": "Ounces",
    "Strain": "String Hill Kush",
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 2,
    "Name": "Extract Spray Paint",
    "ItemCategory": "Concentrate (Each)",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasure": null,
    "UnitVolume": 100.0,
    "UnitVolumeUnitOfMeasure": "Milliliters",
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": "Allergens",
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": "Product Photo Description",
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": "Label Photo Description",
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": "Packaging Photo Description",
    "ProcessingJobCategoryName": null
  },
  {
    "Id": 2,
    "Name": "Concentrate Extract",
    "ItemCategory": "Concentrate (Each)",
    "UnitOfMeasure": "Each",
    "Strain": null,
    "ItemBrand": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasure": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasure": null,
    "UnitThcPercent": null,
    "UnitThcContent": 10.0,
    "UnitThcContentUnitOfMeasure": "Milligrams",
    "UnitThcContentDose": 5.0,
    "UnitThcContentDoseUnitOfMeasure": "Milligrams",
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasure": null,
    "UnitWeight": 100.0,
    "UnitWeightUnitOfMeasure": "Milligrams",
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": 2,
    "PublicIngredients": null,
    "ItemIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImageFileSystemIds": null,
    "ProductPDFFileSystemIds": null,
    "ProductPhotoDescription": null,
    "LabelImageFileSystemIds": null,
    "LabelPhotoDescription": null,
    "PackagingImageFileSystemIds": null,
    "PackagingPhotoDescription": null,
    "ProcessingJobCategoryName": "Category 1"
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

POST /items/v1/photo

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

POST /items/v1/photo?licenseNumber=123-ABC[
  {
    "FileName": "Image.png",
    "EncodedImageBase64": "File encoded in Base64=="
  }
]

Example Response

No response

Items

Server: https://api-mi.metrc.com/

DELETE /items/v1/{id}

Permissions Required

Manage Items

Parameters

licenseNumber

Example Request

DELETE /items/v1/7?licenseNumber=123-ABC

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v2/states

Permissions Required

None

Parameters

No parameters

Example Request

GET /labtests/v2/states

Example Response

[
  "NotSubmitted",
  "SubmittedForTesting",
  "TestFailed",
  "TestPassed",
  "TestingInProgress",
  "AwaitingConfirmation",
  "RetestFailed",
  "RetestPassed",
  "Remediated",
  "SelectedForRandomTesting",
  "NotRequired",
  "ProcessValidated"
]

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v2/batches

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /labtests/v2/batches?pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Potency",
      "LabTestTypeCount": 4,
      "LabTestTypes": [
        {
          "Id": 1,
          "Name": "THC",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        },
        {
          "Id": 2,
          "Name": "THCa",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        },
        {
          "Id": 3,
          "Name": "CBD",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        },
        {
          "Id": 4,
          "Name": "CBDa",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        }
      ],
      "ItemCategoryCount": 2,
      "ItemCategories": [
        {
          "Name": "Seeds",
          "ProductCategoryType": 0,
          "QuantityType": 0,
          "RequiresStrain": false,
          "RequiresItemBrand": false,
          "RequiresAdministrationMethod": false,
          "RequiresUnitCbdPercent": false,
          "RequiresUnitCbdContent": false,
          "RequiresUnitCbdContentDose": false,
          "RequiresUnitThcPercent": false,
          "RequiresUnitThcContent": false,
          "RequiresUnitThcContentDose": false,
          "RequiresUnitVolume": false,
          "RequiresUnitWeight": false,
          "RequiresServingSize": false,
          "RequiresSupplyDurationDays": false,
          "RequiresNumberOfDoses": false,
          "RequiresPublicIngredients": false,
          "RequiresDescription": false,
          "RequiresAllergens": false,
          "RequiresProductPhotos": 0,
          "RequiresProductPhotoDescription": false,
          "RequiresLabelPhotos": 0,
          "RequiresLabelPhotoDescription": false,
          "RequiresPackagingPhotos": 0,
          "RequiresPackagingPhotoDescription": false,
          "CanContainSeeds": false,
          "CanBeRemediated": false,
          "CanBeDestroyed": false,
          "RequiresProductPDFDocuments": 0,
          "LabTestBatchNames": []
        },
        {
          "Name": "Buds",
          "ProductCategoryType": 0,
          "QuantityType": 0,
          "RequiresStrain": false,
          "RequiresItemBrand": false,
          "RequiresAdministrationMethod": false,
          "RequiresUnitCbdPercent": false,
          "RequiresUnitCbdContent": false,
          "RequiresUnitCbdContentDose": false,
          "RequiresUnitThcPercent": false,
          "RequiresUnitThcContent": false,
          "RequiresUnitThcContentDose": false,
          "RequiresUnitVolume": false,
          "RequiresUnitWeight": false,
          "RequiresServingSize": false,
          "RequiresSupplyDurationDays": false,
          "RequiresNumberOfDoses": false,
          "RequiresPublicIngredients": false,
          "RequiresDescription": false,
          "RequiresAllergens": false,
          "RequiresProductPhotos": 0,
          "RequiresProductPhotoDescription": false,
          "RequiresLabelPhotos": 0,
          "RequiresLabelPhotoDescription": false,
          "RequiresPackagingPhotos": 0,
          "RequiresPackagingPhotoDescription": false,
          "CanContainSeeds": false,
          "CanBeRemediated": false,
          "CanBeDestroyed": false,
          "RequiresProductPDFDocuments": 0,
          "LabTestBatchNames": []
        }
      ]
    },
    {
      "Name": "Microbiologicals",
      "LabTestTypeCount": 2,
      "LabTestTypes": [
        {
          "Id": 1,
          "Name": "Pathogen A",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        },
        {
          "Id": 2,
          "Name": "Pathogen B",
          "RequiresTestResult": false,
          "InformationalOnly": false,
          "AlwaysPasses": false,
          "MaxAllowedFailureCount": 0,
          "LabTestResultMode": 0,
          "LabTestResultMinimum": null,
          "LabTestResultMaximum": null,
          "LabTestResultExpirationDays": null,
          "DependencyMode": 0
        }
      ],
      "ItemCategoryCount": 1,
      "ItemCategories": [
        {
          "Name": "Seeds",
          "ProductCategoryType": 0,
          "QuantityType": 0,
          "RequiresStrain": false,
          "RequiresItemBrand": false,
          "RequiresAdministrationMethod": false,
          "RequiresUnitCbdPercent": false,
          "RequiresUnitCbdContent": false,
          "RequiresUnitCbdContentDose": false,
          "RequiresUnitThcPercent": false,
          "RequiresUnitThcContent": false,
          "RequiresUnitThcContentDose": false,
          "RequiresUnitVolume": false,
          "RequiresUnitWeight": false,
          "RequiresServingSize": false,
          "RequiresSupplyDurationDays": false,
          "RequiresNumberOfDoses": false,
          "RequiresPublicIngredients": false,
          "RequiresDescription": false,
          "RequiresAllergens": false,
          "RequiresProductPhotos": 0,
          "RequiresProductPhotoDescription": false,
          "RequiresLabelPhotos": 0,
          "RequiresLabelPhotoDescription": false,
          "RequiresPackagingPhotos": 0,
          "RequiresPackagingPhotoDescription": false,
          "CanContainSeeds": false,
          "CanBeRemediated": false,
          "CanBeDestroyed": false,
          "RequiresProductPDFDocuments": 0,
          "LabTestBatchNames": []
        }
      ]
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v2/types

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /labtests/v2/types?pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "THC",
      "RequiresTestResult": false,
      "InformationalOnly": false,
      "AlwaysPasses": false,
      "MaxAllowedFailureCount": 0,
      "LabTestResultMode": 0,
      "LabTestResultMinimum": null,
      "LabTestResultMaximum": null,
      "LabTestResultExpirationDays": null,
      "DependencyMode": 0
    },
    {
      "Id": 2,
      "Name": "THCa",
      "RequiresTestResult": false,
      "InformationalOnly": false,
      "AlwaysPasses": false,
      "MaxAllowedFailureCount": 0,
      "LabTestResultMode": 0,
      "LabTestResultMinimum": null,
      "LabTestResultMaximum": null,
      "LabTestResultExpirationDays": null,
      "DependencyMode": 0
    },
    {
      "Id": 3,
      "Name": "CBD",
      "RequiresTestResult": false,
      "InformationalOnly": false,
      "AlwaysPasses": false,
      "MaxAllowedFailureCount": 0,
      "LabTestResultMode": 0,
      "LabTestResultMinimum": null,
      "LabTestResultMaximum": null,
      "LabTestResultExpirationDays": null,
      "DependencyMode": 0
    },
    {
      "Id": 4,
      "Name": "CBDa",
      "RequiresTestResult": false,
      "InformationalOnly": false,
      "AlwaysPasses": false,
      "MaxAllowedFailureCount": 0,
      "LabTestResultMode": 0,
      "LabTestResultMinimum": null,
      "LabTestResultMaximum": null,
      "LabTestResultExpirationDays": null,
      "DependencyMode": 0
    },
    {
      "Id": 5,
      "Name": "Pesticides",
      "RequiresTestResult": false,
      "InformationalOnly": false,
      "AlwaysPasses": false,
      "MaxAllowedFailureCount": 0,
      "LabTestResultMode": 0,
      "LabTestResultMinimum": null,
      "LabTestResultMaximum": null,
      "LabTestResultExpirationDays": null,
      "DependencyMode": "RequiresOne"
    }
  ],
  "Total": 5,
  "TotalRecords": 5,
  "PageSize": 5,
  "RecordsOnPage": 5,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v2/results

Permissions Required

View Packages

Parameters

packageId
licenseNumber
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /labtests/v2/results?packageId=1&licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "PackageId": 2,
      "LabTestResultId": 1,
      "LabFacilityLicenseNumber": "405R-X0001",
      "LabFacilityName": "CO PERCEPTIVE TESTING LABS, LLC",
      "SourcePackageLabel": "ABCDEF012345670000010042",
      "ProductName": "Buds",
      "ProductCategoryName": "Buds",
      "TestPerformedDate": "2014-11-29",
      "OverallPassed": true,
      "RevokedDate": null,
      "LabTestResultDocumentFileId": null,
      "ResultReleased": true,
      "ResultReleaseDateTime": "2014-11-29T00:00:00+00:00",
      "ExpirationDateTime": null,
      "TestTypeName": "Microbiologicals",
      "TestPassed": true,
      "TestResultLevel": 0.1,
      "TestComment": "This is a comment.",
      "TestInformationalOnly": false,
      "LabTestDetailRevokedDate": null
    },
    {
      "PackageId": 3,
      "LabTestResultId": 2,
      "LabFacilityLicenseNumber": "405R-X0001",
      "LabFacilityName": "CO PERCEPTIVE TESTING LABS, LLC",
      "SourcePackageLabel": "ABCDEF012345670000010043",
      "ProductName": "Buds",
      "ProductCategoryName": "Buds",
      "TestPerformedDate": "2014-11-29",
      "OverallPassed": true,
      "RevokedDate": null,
      "LabTestResultDocumentFileId": null,
      "ResultReleased": false,
      "ResultReleaseDateTime": null,
      "ExpirationDateTime": null,
      "TestTypeName": "Microbiologicals",
      "TestPassed": true,
      "TestResultLevel": 0.15,
      "TestComment": "This is a comment.",
      "TestInformationalOnly": false,
      "LabTestDetailRevokedDate": null
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Lab Tests

Server: https://api-mi.metrc.com/

POST /labtests/v2/record

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /labtests/v2/record?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000000001",
    "ResultDate": "2015-12-15T00:00:00Z",
    "DocumentFileName": "Sparkly Ventures Lab Results 20151215.pdf",
    "DocumentFileBase64": "File encoded in Base64==",
    "Results": [
      {
        "LabTestTypeName": "THC",
        "Quantity": 100.2345,
        "Passed": true,
        "Notes": ""
      }
    ]
  },
  {
    "Label": "ABCDEF012345670000000002",
    "ResultDate": "2015-12-15T00:00:00Z",
    "DocumentFileName": null,
    "DocumentFileBase64": null,
    "Results": [
      {
        "LabTestTypeName": "THC",
        "Quantity": 100.2345,
        "Passed": true,
        "Notes": ""
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Lab Tests

Server: https://api-mi.metrc.com/

PUT /labtests/v2/labtestdocument

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility updating the lab test document.

Example Request

PUT /labtests/v2/labtestdocument?licenseNumber=123-ABC[
  {
    "LabTestResultId": 1,
    "DocumentFileName": "Medigrazers Lab Results 20181215.pdf",
    "DocumentFileBase64": "File encoded in Base64=="
  },
  {
    "LabTestResultId": 2,
    "DocumentFileName": "Medigrazers Lab Results 20190215.pdf",
    "DocumentFileBase64": "File encoded in Base64=="
  }
]

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

PUT /labtests/v2/results/release

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility releasing the lab test results.

Example Request

PUT /labtests/v2/results/release?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041"
  },
  {
    "PackageLabel": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v2/labtestdocument/{id}

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
LabTestDocumentFileId

Example Request

GET /labtests/v2/labtestdocument/1?licenseNumber=123-ABC

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v1/states

Permissions Required

None

Parameters

No parameters

Example Request

GET /labtests/v1/states

Example Response

[
  "NotSubmitted",
  "SubmittedForTesting",
  "TestFailed",
  "TestPassed",
  "TestingInProgress",
  "AwaitingConfirmation",
  "RetestFailed",
  "RetestPassed",
  "Remediated",
  "SelectedForRandomTesting",
  "NotRequired",
  "ProcessValidated"
]

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v1/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /labtests/v1/types

Example Response

[
  {
    "Id": 1,
    "Name": "THC",
    "RequiresTestResult": false,
    "InformationalOnly": false,
    "AlwaysPasses": false,
    "MaxAllowedFailureCount": 0,
    "LabTestResultMode": 0,
    "LabTestResultMinimum": null,
    "LabTestResultMaximum": null,
    "LabTestResultExpirationDays": null,
    "DependencyMode": 0
  },
  {
    "Id": 2,
    "Name": "THCa",
    "RequiresTestResult": false,
    "InformationalOnly": false,
    "AlwaysPasses": false,
    "MaxAllowedFailureCount": 0,
    "LabTestResultMode": 0,
    "LabTestResultMinimum": null,
    "LabTestResultMaximum": null,
    "LabTestResultExpirationDays": null,
    "DependencyMode": 0
  },
  {
    "Id": 3,
    "Name": "CBD",
    "RequiresTestResult": false,
    "InformationalOnly": false,
    "AlwaysPasses": false,
    "MaxAllowedFailureCount": 0,
    "LabTestResultMode": 0,
    "LabTestResultMinimum": null,
    "LabTestResultMaximum": null,
    "LabTestResultExpirationDays": null,
    "DependencyMode": 0
  },
  {
    "Id": 4,
    "Name": "CBDa",
    "RequiresTestResult": false,
    "InformationalOnly": false,
    "AlwaysPasses": false,
    "MaxAllowedFailureCount": 0,
    "LabTestResultMode": 0,
    "LabTestResultMinimum": null,
    "LabTestResultMaximum": null,
    "LabTestResultExpirationDays": null,
    "DependencyMode": 0
  },
  {
    "Id": 5,
    "Name": "Pesticides",
    "RequiresTestResult": false,
    "InformationalOnly": false,
    "AlwaysPasses": false,
    "MaxAllowedFailureCount": 0,
    "LabTestResultMode": 0,
    "LabTestResultMinimum": null,
    "LabTestResultMaximum": null,
    "LabTestResultExpirationDays": null,
    "DependencyMode": "RequiresOne"
  }
]

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v1/results

Permissions Required

View Packages

Parameters

packageId
licenseNumber

Example Request

GET /labtests/v1/results?packageId=1&licenseNumber=123-ABC

Example Response

[
  {
    "PackageId": 2,
    "LabTestResultId": 1,
    "LabFacilityLicenseNumber": "405R-X0001",
    "LabFacilityName": "CO PERCEPTIVE TESTING LABS, LLC",
    "SourcePackageLabel": "ABCDEF012345670000010042",
    "ProductName": "Buds",
    "ProductCategoryName": "Buds",
    "TestPerformedDate": "2014-11-29",
    "OverallPassed": true,
    "RevokedDate": null,
    "LabTestResultDocumentFileId": null,
    "ResultReleased": true,
    "ResultReleaseDateTime": "2014-11-29T00:00:00+00:00",
    "ExpirationDateTime": null,
    "TestTypeName": "Microbiologicals",
    "TestPassed": true,
    "TestResultLevel": 0.1,
    "TestComment": "This is a comment.",
    "TestInformationalOnly": false,
    "LabTestDetailRevokedDate": null
  },
  {
    "PackageId": 3,
    "LabTestResultId": 2,
    "LabFacilityLicenseNumber": "405R-X0001",
    "LabFacilityName": "CO PERCEPTIVE TESTING LABS, LLC",
    "SourcePackageLabel": "ABCDEF012345670000010043",
    "ProductName": "Buds",
    "ProductCategoryName": "Buds",
    "TestPerformedDate": "2014-11-29",
    "OverallPassed": true,
    "RevokedDate": null,
    "LabTestResultDocumentFileId": null,
    "ResultReleased": false,
    "ResultReleaseDateTime": null,
    "ExpirationDateTime": null,
    "TestTypeName": "Microbiologicals",
    "TestPassed": true,
    "TestResultLevel": 0.15,
    "TestComment": "This is a comment.",
    "TestInformationalOnly": false,
    "LabTestDetailRevokedDate": null
  }
]

Lab Tests

Server: https://api-mi.metrc.com/

POST /labtests/v1/record

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /labtests/v1/record?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000000001",
    "ResultDate": "2015-12-15T00:00:00Z",
    "DocumentFileName": "Sparkly Ventures Lab Results 20151215.pdf",
    "DocumentFileBase64": "File encoded in Base64==",
    "Results": [
      {
        "LabTestTypeName": "THC",
        "Quantity": 100.2345,
        "Passed": true,
        "Notes": ""
      }
    ]
  },
  {
    "Label": "ABCDEF012345670000000002",
    "ResultDate": "2015-12-15T00:00:00Z",
    "DocumentFileName": null,
    "DocumentFileBase64": null,
    "Results": [
      {
        "LabTestTypeName": "THC",
        "Quantity": 100.2345,
        "Passed": true,
        "Notes": ""
      }
    ]
  }
]

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

PUT /labtests/v1/labtestdocument

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

PUT /labtests/v1/labtestdocument?licenseNumber=123-ABC[
  {
    "LabTestResultId": 1,
    "DocumentFileName": "Medigrazers Lab Results 20181215.pdf",
    "DocumentFileBase64": "File encoded in Base64=="
  },
  {
    "LabTestResultId": 2,
    "DocumentFileName": "Medigrazers Lab Results 20190215.pdf",
    "DocumentFileBase64": "File encoded in Base64=="
  }
]

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

PUT /labtests/v1/results/release

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

PUT /labtests/v1/results/release?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041"
  },
  {
    "PackageLabel": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Lab Tests

Server: https://api-mi.metrc.com/

GET /labtests/v1/labtestdocument/{id}

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
LabTestDocumentFileId

Example Request

GET /labtests/v1/labtestdocument/1?licenseNumber=123-ABC

Example Response

No response

Locations

Server: https://api-mi.metrc.com/

GET /locations/v2/{id}

Permissions Required

Manage Locations

Parameters

licenseNumber
optional
If specified, the Location will be validated against the specified License Number. If not specified, the Location will be validated against all of the User's current Facilities. Please note that if the Location is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /locations/v2/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "Harvest Location",
  "LocationTypeId": 1,
  "LocationTypeName": "Default",
  "ForPlantBatches": true,
  "ForPlants": true,
  "ForHarvests": true,
  "ForPackages": true
}

Locations

Server: https://api-mi.metrc.com/

GET /locations/v2/active

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to return the list of active locations.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /locations/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Harvest Location",
      "LocationTypeId": 1,
      "LocationTypeName": "Default",
      "ForPlantBatches": true,
      "ForPlants": true,
      "ForHarvests": true,
      "ForPackages": true
    },
    {
      "Id": 2,
      "Name": "Plants Location",
      "LocationTypeId": 2,
      "LocationTypeName": "Planting Station",
      "ForPlantBatches": false,
      "ForPlants": true,
      "ForHarvests": false,
      "ForPackages": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Locations

Server: https://api-mi.metrc.com/

GET /locations/v2/inactive

Permissions Required

Manage Locations

Parameters

licenseNumber
The License Number of the Facility for which to return the list of inactive Locations.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /locations/v2/inactive?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Harvest Location",
      "LocationTypeId": 1,
      "LocationTypeName": "Default",
      "ForPlantBatches": true,
      "ForPlants": true,
      "ForHarvests": true,
      "ForPackages": true
    },
    {
      "Id": 2,
      "Name": "Plants Location",
      "LocationTypeId": 2,
      "LocationTypeName": "Planting Station",
      "ForPlantBatches": false,
      "ForPlants": true,
      "ForHarvests": false,
      "ForPackages": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Locations

Server: https://api-mi.metrc.com/

GET /locations/v2/types

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to return the list of active location types.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /locations/v2/types?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Default",
      "ForPlantBatches": true,
      "ForPlants": true,
      "ForHarvests": true,
      "ForPackages": true
    },
    {
      "Id": 2,
      "Name": "Planting",
      "ForPlantBatches": true,
      "ForPlants": true,
      "ForHarvests": false,
      "ForPackages": false
    },
    {
      "Id": 3,
      "Name": "Packing",
      "ForPlantBatches": false,
      "ForPlants": false,
      "ForHarvests": false,
      "ForPackages": true
    }
  ],
  "Total": 3,
  "TotalRecords": 3,
  "PageSize": 3,
  "RecordsOnPage": 3,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Locations

Server: https://api-mi.metrc.com/

POST /locations/v2/

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to record the list of locations.

Example Request

POST /locations/v2/?licenseNumber=123-ABC[
  {
    "Name": "Harvest Location",
    "LocationTypeName": "Default"
  },
  {
    "Name": "Plants Location",
    "LocationTypeName": "Planting"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Locations

Server: https://api-mi.metrc.com/

PUT /locations/v2/

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to update the list of locations.

Example Request

PUT /locations/v2/?licenseNumber=123-ABC[
  {
    "Id": 5,
    "Name": "Harvesting Location",
    "LocationTypeName": "Default"
  },
  {
    "Id": 6,
    "Name": "Planting Location",
    "LocationTypeName": "Planting"
  }
]

Example Response

No response

Locations

Server: https://api-mi.metrc.com/

DELETE /locations/v2/{id}

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to delete the list of locations.

Example Request

DELETE /locations/v2/5?licenseNumber=123-ABC

Example Response

No response

Locations

Server: https://api-mi.metrc.com/

GET /locations/v1/{id}

Permissions Required

Manage Locations

Parameters

licenseNumber
optional
If specified, the Location will be validated against the specified License Number. If not specified, the Location will be validated against all of the User's current Facilities. Please note that if the Location is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /locations/v1/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "Name": "Harvest Location",
  "LocationTypeId": 1,
  "LocationTypeName": "Default",
  "ForPlantBatches": true,
  "ForPlants": true,
  "ForHarvests": true,
  "ForPackages": true
}

Locations

Server: https://api-mi.metrc.com/

GET /locations/v1/active

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to return the list of active locations.

Example Request

GET /locations/v1/active?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 1,
    "Name": "Harvest Location",
    "LocationTypeId": 1,
    "LocationTypeName": "Default",
    "ForPlantBatches": true,
    "ForPlants": true,
    "ForHarvests": true,
    "ForPackages": true
  },
  {
    "Id": 2,
    "Name": "Plants Location",
    "LocationTypeId": 2,
    "LocationTypeName": "Planting Station",
    "ForPlantBatches": false,
    "ForPlants": true,
    "ForHarvests": false,
    "ForPackages": false
  }
]

Locations

Server: https://api-mi.metrc.com/

GET /locations/v1/types

Permissions Required

Manage Locations

Parameters

licenseNumber
The license number of the facility for which to return the list of active location types.

Example Request

GET /locations/v1/types?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 1,
    "Name": "Default",
    "ForPlantBatches": true,
    "ForPlants": true,
    "ForHarvests": true,
    "ForPackages": true
  },
  {
    "Id": 2,
    "Name": "Planting",
    "ForPlantBatches": true,
    "ForPlants": true,
    "ForHarvests": false,
    "ForPackages": false
  },
  {
    "Id": 3,
    "Name": "Packing",
    "ForPlantBatches": false,
    "ForPlants": false,
    "ForHarvests": false,
    "ForPackages": true
  }
]

Locations

Server: https://api-mi.metrc.com/

POST /locations/v1/create

Permissions Required

Manage Locations

Parameters

licenseNumber

Example Request

POST /locations/v1/create?licenseNumber=123-ABC[
  {
    "Name": "Harvest Location",
    "LocationTypeName": "Default"
  },
  {
    "Name": "Plants Location",
    "LocationTypeName": "Planting"
  }
]

Example Response

No response

Locations

Server: https://api-mi.metrc.com/

POST /locations/v1/update

Permissions Required

Manage Locations

Parameters

licenseNumber

Example Request

POST /locations/v1/update?licenseNumber=123-ABC[
  {
    "Id": 5,
    "Name": "Harvesting Location",
    "LocationTypeName": "Default"
  },
  {
    "Id": 6,
    "Name": "Planting Location",
    "LocationTypeName": "Planting"
  }
]

Example Response

No response

Locations

Server: https://api-mi.metrc.com/

DELETE /locations/v1/{id}

Permissions Required

Manage Locations

Parameters

licenseNumber

Example Request

DELETE /locations/v1/5?licenseNumber=123-ABC

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/{id}

Permissions Required

View Packages

Parameters

licenseNumber
optional
If specified, the Package will be validated against the specified License Number. If not specified, the Package will be validated against all of the User's current Facilities. Please note that if the Package is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /packages/v2/2?licenseNumber=123-ABC

Example Response

{
  "Id": 2,
  "Label": "ABCDEF012345670000010042",
  "PackageType": "Product",
  "SourceHarvestCount": 0,
  "SourcePackageCount": 0,
  "SourceProcessingJobCount": 0,
  "SourceHarvestNames": null,
  "SourcePackageLabels": null,
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "Quantity": 1.0,
  "UnitOfMeasureName": "Ounces",
  "UnitOfMeasureAbbreviation": "oz",
  "PatientLicenseNumber": null,
  "ItemFromFacilityLicenseNumber": null,
  "ItemFromFacilityName": null,
  "Note": null,
  "PackagedDate": "2014-11-29",
  "ExpirationDate": null,
  "SellByDate": null,
  "UseByDate": null,
  "InitialLabTestingState": "NotSubmitted",
  "LabTestingState": "NotSubmitted",
  "LabTestingStateDate": "2014-11-29",
  "LabTestingPerformedDate": null,
  "LabTestResultExpirationDateTime": null,
  "LabTestingRecordedDate": null,
  "IsProductionBatch": false,
  "ProductionBatchNumber": null,
  "SourceProductionBatchNumbers": null,
  "IsTradeSample": false,
  "IsTradeSamplePersistent": false,
  "SourcePackageIsTradeSample": false,
  "IsDonation": false,
  "IsDonationPersistent": false,
  "SourcePackageIsDonation": false,
  "IsTestingSample": false,
  "IsProcessValidationTestingSample": false,
  "ProductRequiresRemediation": false,
  "ContainsRemediatedProduct": false,
  "RemediationDate": null,
  "ReceivedDateTime": null,
  "ReceivedFromManifestNumber": null,
  "ReceivedFromFacilityLicenseNumber": null,
  "ReceivedFromFacilityName": null,
  "IsOnHold": false,
  "ArchivedDate": null,
  "IsFinished": false,
  "FinishedDate": null,
  "IsOnTrip": false,
  "IsOnRetailerDelivery": false,
  "PackageForProductDestruction": null,
  "LastModified": "2024-05-16T23:10:10.5721493+00:00",
  "Item": {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": 0,
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": 0,
    "DefaultLabTestingState": 0,
    "UnitOfMeasureName": null,
    "ApprovalStatus": 0,
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/{id}/source/harvests

Permissions Required

View Package Source Harvests

Parameters

licenseNumber
optional
If specified, the Package will be validated against the specified License Number. If not specified, the Package will be validated against all of the User's current Facilities. Please note that if the Package is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /packages/v2/2?licenseNumber=123-ABC/source/harvests

Example Response

[
  {
    "HarvestedByFacilityLicenseNumber": "4a-X0001",
    "HarvestedByFacilityName": "AK LOFTY ESTABLISHMENT, LLC",
    "Name": "2021-08-16-Harvest Location-M",
    "HarvestStartDate": "2014-11-19"
  },
  {
    "HarvestedByFacilityLicenseNumber": "4a-X0002",
    "HarvestedByFacilityName": "AK LOFTY LLC",
    "Name": "2021-08-16-Harvest Location-J",
    "HarvestStartDate": "2020-08-25"
  }
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/{label}

Permissions Required

View Packages

Parameters

licenseNumber
optional
If specified, the Package will be validated against the specified License Number. If not specified, the Package will be validated against all of the User's current Facilities. Please note that if the Package is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /packages/v2/ABCDEF012345670000010042?licenseNumber=123-ABC

Example Response

{
  "Id": 2,
  "Label": "ABCDEF012345670000010042",
  "PackageType": "Product",
  "SourceHarvestCount": 0,
  "SourcePackageCount": 0,
  "SourceProcessingJobCount": 0,
  "SourceHarvestNames": null,
  "SourcePackageLabels": null,
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "Quantity": 1.0,
  "UnitOfMeasureName": "Ounces",
  "UnitOfMeasureAbbreviation": "oz",
  "PatientLicenseNumber": null,
  "ItemFromFacilityLicenseNumber": null,
  "ItemFromFacilityName": null,
  "Note": null,
  "PackagedDate": "2014-11-29",
  "ExpirationDate": null,
  "SellByDate": null,
  "UseByDate": null,
  "InitialLabTestingState": "NotSubmitted",
  "LabTestingState": "NotSubmitted",
  "LabTestingStateDate": "2014-11-29",
  "LabTestingPerformedDate": null,
  "LabTestResultExpirationDateTime": null,
  "LabTestingRecordedDate": null,
  "IsProductionBatch": false,
  "ProductionBatchNumber": null,
  "SourceProductionBatchNumbers": null,
  "IsTradeSample": false,
  "IsTradeSamplePersistent": false,
  "SourcePackageIsTradeSample": false,
  "IsDonation": false,
  "IsDonationPersistent": false,
  "SourcePackageIsDonation": false,
  "IsTestingSample": false,
  "IsProcessValidationTestingSample": false,
  "ProductRequiresRemediation": false,
  "ContainsRemediatedProduct": false,
  "RemediationDate": null,
  "ReceivedDateTime": null,
  "ReceivedFromManifestNumber": null,
  "ReceivedFromFacilityLicenseNumber": null,
  "ReceivedFromFacilityName": null,
  "IsOnHold": false,
  "ArchivedDate": null,
  "IsFinished": false,
  "FinishedDate": null,
  "IsOnTrip": false,
  "IsOnRetailerDelivery": false,
  "PackageForProductDestruction": null,
  "LastModified": "2024-05-16T23:10:10.6171501+00:00",
  "Item": {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": 0,
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": 0,
    "DefaultLabTestingState": 0,
    "UnitOfMeasureName": null,
    "ApprovalStatus": 0,
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/active

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of active packages.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 2,
      "Label": "ABCDEF012345670000010042",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 1.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": false,
      "FinishedDate": null,
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.6571487+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    },
    {
      "Id": 3,
      "Label": "ABCDEF012345670000010043",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 1.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": false,
      "FinishedDate": null,
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.6571487+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/onhold

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of packages on hold.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v2/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 2,
      "Label": "ABCDEF012345670000010042",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 15.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": true,
      "ArchivedDate": null,
      "IsFinished": false,
      "FinishedDate": null,
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.6971476+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    },
    {
      "Id": 3,
      "Label": "ABCDEF012345670000010043",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 20.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": true,
      "ArchivedDate": null,
      "IsFinished": false,
      "FinishedDate": null,
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.6971476+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/inactive

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive packages.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v2/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 2,
      "Label": "ABCDEF012345670000010042",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 0.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.7421501+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    },
    {
      "Id": 3,
      "Label": "ABCDEF012345670000010043",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 0.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.7421501+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/intransit

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of packages in transit.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v2/intransit?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 2,
      "Label": "ABCDEF012345670000010042",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 0.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.7971494+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    },
    {
      "Id": 3,
      "Label": "ABCDEF012345670000010043",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 0.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestResultExpirationDateTime": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.7971494+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/labsamples

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of lab sample packages that have been created/sent for testing.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v2/labsamples?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "LabFacilityLicenseNumber": null,
      "LabFacilityName": null,
      "OverallPassed": true,
      "TestPerformedDate": "2014-12-14",
      "ResultReleased": true,
      "ResultReleaseDateTime": "2014-12-14T00:00:00+00:00",
      "LabTestResultExpirationDateTime": null,
      "TestTypeName": "Pesticides",
      "TestPassed": true,
      "TestResultLevel": 1.0,
      "TestComment": null,
      "TestInformationalOnly": false,
      "Id": 2,
      "Label": "ABCDEF012345670000010042",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 5.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.8421485+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    },
    {
      "LabFacilityLicenseNumber": null,
      "LabFacilityName": null,
      "OverallPassed": false,
      "TestPerformedDate": "2014-12-14",
      "ResultReleased": true,
      "ResultReleaseDateTime": "2014-12-14T00:00:00+00:00",
      "LabTestResultExpirationDateTime": null,
      "TestTypeName": "Pesticides",
      "TestPassed": false,
      "TestResultLevel": 20.0,
      "TestComment": null,
      "TestInformationalOnly": false,
      "Id": 3,
      "Label": "ABCDEF012345670000010043",
      "PackageType": "Product",
      "SourceHarvestCount": 0,
      "SourcePackageCount": 0,
      "SourceProcessingJobCount": 0,
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "Quantity": 0.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": "oz",
      "PatientLicenseNumber": null,
      "ItemFromFacilityLicenseNumber": null,
      "ItemFromFacilityName": null,
      "Note": null,
      "PackagedDate": "2014-11-29",
      "ExpirationDate": null,
      "SellByDate": null,
      "UseByDate": null,
      "InitialLabTestingState": "NotSubmitted",
      "LabTestingState": "NotSubmitted",
      "LabTestingStateDate": "2014-11-29",
      "LabTestingPerformedDate": null,
      "LabTestingRecordedDate": null,
      "IsProductionBatch": false,
      "ProductionBatchNumber": null,
      "SourceProductionBatchNumbers": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "IsDonationPersistent": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "IsProcessValidationTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ReceivedDateTime": null,
      "ReceivedFromManifestNumber": null,
      "ReceivedFromFacilityLicenseNumber": null,
      "ReceivedFromFacilityName": null,
      "IsOnHold": false,
      "ArchivedDate": null,
      "IsFinished": true,
      "FinishedDate": "2014-12-15",
      "IsOnTrip": false,
      "IsOnRetailerDelivery": false,
      "PackageForProductDestruction": null,
      "LastModified": "2024-05-16T23:10:10.8421485+00:00",
      "Item": {
        "Id": 1,
        "Name": "Buds",
        "ProductCategoryName": "Buds",
        "ProductCategoryType": 0,
        "IsExpirationDateRequired": false,
        "HasExpirationDate": false,
        "IsSellByDateRequired": false,
        "HasSellByDate": false,
        "IsUseByDateRequired": false,
        "HasUseByDate": false,
        "QuantityType": 0,
        "DefaultLabTestingState": 0,
        "UnitOfMeasureName": null,
        "ApprovalStatus": 0,
        "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
        "StrainId": null,
        "StrainName": null,
        "ItemBrandId": 0,
        "ItemBrandName": null,
        "AdministrationMethod": null,
        "UnitCbdPercent": null,
        "UnitCbdContent": null,
        "UnitCbdContentUnitOfMeasureName": null,
        "UnitCbdContentDose": null,
        "UnitCbdContentDoseUnitOfMeasureName": null,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasureName": null,
        "UnitThcContentDose": null,
        "UnitThcContentDoseUnitOfMeasureName": null,
        "UnitVolume": null,
        "UnitVolumeUnitOfMeasureName": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasureName": null,
        "ServingSize": null,
        "SupplyDurationDays": null,
        "NumberOfDoses": null,
        "UnitQuantity": null,
        "UnitQuantityUnitOfMeasureName": null,
        "PublicIngredients": null,
        "Description": null,
        "Allergens": null,
        "ProductImages": [],
        "ProductPhotoDescription": null,
        "LabelImages": [],
        "LabelPhotoDescription": null,
        "PackagingImages": [],
        "PackagingPhotoDescription": null,
        "ProductPDFDocuments": [],
        "IsUsed": false,
        "LabTestBatchNames": [],
        "ProcessingJobCategoryName": null
      }
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /packages/v2/types

Example Response

[
  "Product",
  "ImmaturePlant",
  "VegetativePlant",
  "PlantWaste",
  "HarvestWaste"
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v2/adjust/reasons

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return the list of adjustment reasons.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /packages/v2/adjust/reasons?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Drying",
      "RequiresNote": false,
      "RequiresWasteWeight": false,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": false
    },
    {
      "Name": "Entry Error",
      "RequiresNote": false,
      "RequiresWasteWeight": false,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Packages

Server: https://api-mi.metrc.com/

POST /packages/v2/

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to record the list of new packages.

Example Request

POST /packages/v2/?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010041",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010042",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsDonation": false,
    "IsTradeSample": true,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": null,
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": true,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3
  ],
  "Warnings": null
}

Packages

Server: https://api-mi.metrc.com/

POST /packages/v2/testing

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to record the list of new packages for testing.

Example Request

POST /packages/v2/testing?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "Quantity": 2.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": null,
    "Note": "Note",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010041",
        "Quantity": 2.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": [
      "Usable Marijuana for Retail"
    ],
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "Quantity": 2.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": null,
    "Note": "Note",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010041",
        "Quantity": 2.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Packages

Server: https://api-mi.metrc.com/

POST /packages/v2/plantings

Permissions Required

View Immature Plants
Manage Immature Plants
View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to record the list of new plantings.

Example Request

POST /packages/v2/plantings?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041",
    "PackageAdjustmentAmount": 2.0,
    "PackageAdjustmentUnitOfMeasureName": "Ounces",
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "PlantBatchType": "Clone",
    "PlantCount": 1,
    "LocationName": "Plant Batch Location",
    "StrainName": "AK-47",
    "PatientLicenseNumber": "X00001",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  },
  {
    "PackageLabel": "ABCDEF012345670000010042",
    "PackageAdjustmentAmount": 4.0,
    "PackageAdjustmentUnitOfMeasureName": "Ounces",
    "PlantBatchName": "Flo Seed 1/31/2017",
    "PlantBatchType": "Seed",
    "PlantCount": 2,
    "LocationName": null,
    "StrainName": "Flo",
    "PatientLicenseNumber": "X00002",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  },
  {
    "PackageLabel": "ABCDEF012345670000010043",
    "PackageAdjustmentAmount": null,
    "PackageAdjustmentUnitOfMeasureName": null,
    "PlantBatchName": "Blue Dream Plants 1/31/2017",
    "PlantBatchType": "Clone",
    "PlantCount": 10,
    "LocationName": null,
    "StrainName": "Blue Dream",
    "PatientLicenseNumber": "X00003",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3
  ],
  "Warnings": null
}

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/donation/flag

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update list of flagged donations.

Example Request

PUT /packages/v2/donation/flag?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/donation/unflag

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update list of unflaged donations.

Example Request

PUT /packages/v2/donation/unflag?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/usebydate

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to update list of changed items.

Example Request

PUT /packages/v2/usebydate?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "ExpirationDate": "2015-11-15",
    "SellByDate": "2015-11-15",
    "UseByDate": "2015-12-15"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "ExpirationDate": "2015-11-15",
    "SellByDate": "2015-11-15",
    "UseByDate": "2015-12-15"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/item

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to update list of changed items.

Example Request

PUT /packages/v2/item?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Item": "Shake"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Item": "Shake"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/note

Permissions Required

View Packages
Manage Packages Inventory
Manage Package Notes

Parameters

licenseNumber
The license number of the facility for which to update list of change notes.

Example Request

PUT /packages/v2/note?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041",
    "Note": "Package note here."
  },
  {
    "PackageLabel": "ABCDEF012345670000010042",
    "Note": ""
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/location

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to update the list of change locations.

Example Request

PUT /packages/v2/location?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Location": "Back Location",
    "MoveDate": "0001-01-01"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Location": "Storage Closet",
    "MoveDate": "2018-03-15"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/labtests/required

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to update the list of required lab test batches.

Example Request

PUT /packages/v2/labtests/required?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "RequiredLabTestBatches": [
      "Usable Marijuana for Retail"
    ]
  },
  {
    "Label": "ABCDEF012345670000010041",
    "RequiredLabTestBatches": [
      "Usable Marijuana for Retail"
    ]
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/tradesample/flag

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update trade sample flags.

Example Request

PUT /packages/v2/tradesample/flag?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/tradesample/unflag

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update trade sample unflag.

Example Request

PUT /packages/v2/tradesample/unflag?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/adjust

This endpoint allows you to set the final quantity for a package.

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to record the list of adjustments.

Example Request

PUT /packages/v2/adjust?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Quantity": -2.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Drying",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": null
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Scale Variance",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": "We are obtaining a new certified scale"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v2/adjust

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to record the list of adjustments.

Example Request

POST /packages/v2/adjust?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Quantity": -2.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Drying",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": null
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Scale Variance",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": "We are obtaining a new certified scale"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/remediate

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update the list of product remediations.

Example Request

PUT /packages/v2/remediate?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000020201",
    "RemediationMethodName": "Further Drying",
    "RemediationDate": "2016-10-17",
    "RemediationSteps": "Used hair dryer"
  },
  {
    "PackageLabel": "ABCDEF012345670000020201",
    "RemediationMethodName": "Further Drying",
    "RemediationDate": "2016-10-17",
    "RemediationSteps": "Used natural sunlight"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/finish

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update the list of finish packages.

Example Request

PUT /packages/v2/finish?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "ActualDate": "2015-12-15"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v2/unfinish

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber
The license number of the facility for which to update list of unfinish packages.

Example Request

PUT /packages/v2/unfinish?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

DELETE /packages/v2/{id}

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to discontinue.

Example Request

DELETE /packages/v2/1?licenseNumber=123-ABC

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/{id}

Permissions Required

View Packages

Parameters

licenseNumber
optional
If specified, the Package will be validated against the specified License Number. If not specified, the Package will be validated against all of the User's current Facilities. Please note that if the Package is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /packages/v1/2?licenseNumber=123-ABC

Example Response

{
  "Id": 2,
  "Label": "ABCDEF012345670000010042",
  "PackageType": "Product",
  "SourceHarvestCount": 0,
  "SourcePackageCount": 0,
  "SourceProcessingJobCount": 0,
  "SourceHarvestNames": null,
  "SourcePackageLabels": null,
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "Quantity": 1.0,
  "UnitOfMeasureName": "Ounces",
  "UnitOfMeasureAbbreviation": "oz",
  "PatientLicenseNumber": null,
  "ItemFromFacilityLicenseNumber": null,
  "ItemFromFacilityName": null,
  "Note": null,
  "PackagedDate": "2014-11-29",
  "ExpirationDate": null,
  "SellByDate": null,
  "UseByDate": null,
  "InitialLabTestingState": "NotSubmitted",
  "LabTestingState": "NotSubmitted",
  "LabTestingStateDate": "2014-11-29",
  "LabTestingPerformedDate": null,
  "LabTestResultExpirationDateTime": null,
  "LabTestingRecordedDate": null,
  "IsProductionBatch": false,
  "ProductionBatchNumber": null,
  "SourceProductionBatchNumbers": null,
  "IsTradeSample": false,
  "IsTradeSamplePersistent": false,
  "SourcePackageIsTradeSample": false,
  "IsDonation": false,
  "IsDonationPersistent": false,
  "SourcePackageIsDonation": false,
  "IsTestingSample": false,
  "IsProcessValidationTestingSample": false,
  "ProductRequiresRemediation": false,
  "ContainsRemediatedProduct": false,
  "RemediationDate": null,
  "ReceivedDateTime": null,
  "ReceivedFromManifestNumber": null,
  "ReceivedFromFacilityLicenseNumber": null,
  "ReceivedFromFacilityName": null,
  "IsOnHold": false,
  "ArchivedDate": null,
  "IsFinished": false,
  "FinishedDate": null,
  "IsOnTrip": false,
  "IsOnRetailerDelivery": false,
  "PackageForProductDestruction": null,
  "LastModified": "2024-05-16T23:10:11.0427101+00:00",
  "Item": {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": 0,
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": 0,
    "DefaultLabTestingState": 0,
    "UnitOfMeasureName": null,
    "ApprovalStatus": 0,
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/{label}

Permissions Required

View Packages

Parameters

licenseNumber
optional
If specified, the Package will be validated against the specified License Number. If not specified, the Package will be validated against all of the User's current Facilities. Please note that if the Package is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /packages/v1/ABCDEF012345670000010042?licenseNumber=123-ABC

Example Response

{
  "Id": 2,
  "Label": "ABCDEF012345670000010042",
  "PackageType": "Product",
  "SourceHarvestCount": 0,
  "SourcePackageCount": 0,
  "SourceProcessingJobCount": 0,
  "SourceHarvestNames": null,
  "SourcePackageLabels": null,
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "Quantity": 1.0,
  "UnitOfMeasureName": "Ounces",
  "UnitOfMeasureAbbreviation": "oz",
  "PatientLicenseNumber": null,
  "ItemFromFacilityLicenseNumber": null,
  "ItemFromFacilityName": null,
  "Note": null,
  "PackagedDate": "2014-11-29",
  "ExpirationDate": null,
  "SellByDate": null,
  "UseByDate": null,
  "InitialLabTestingState": "NotSubmitted",
  "LabTestingState": "NotSubmitted",
  "LabTestingStateDate": "2014-11-29",
  "LabTestingPerformedDate": null,
  "LabTestResultExpirationDateTime": null,
  "LabTestingRecordedDate": null,
  "IsProductionBatch": false,
  "ProductionBatchNumber": null,
  "SourceProductionBatchNumbers": null,
  "IsTradeSample": false,
  "IsTradeSamplePersistent": false,
  "SourcePackageIsTradeSample": false,
  "IsDonation": false,
  "IsDonationPersistent": false,
  "SourcePackageIsDonation": false,
  "IsTestingSample": false,
  "IsProcessValidationTestingSample": false,
  "ProductRequiresRemediation": false,
  "ContainsRemediatedProduct": false,
  "RemediationDate": null,
  "ReceivedDateTime": null,
  "ReceivedFromManifestNumber": null,
  "ReceivedFromFacilityLicenseNumber": null,
  "ReceivedFromFacilityName": null,
  "IsOnHold": false,
  "ArchivedDate": null,
  "IsFinished": false,
  "FinishedDate": null,
  "IsOnTrip": false,
  "IsOnRetailerDelivery": false,
  "PackageForProductDestruction": null,
  "LastModified": "2024-05-16T23:10:11.0927105+00:00",
  "Item": {
    "Id": 1,
    "Name": "Buds",
    "ProductCategoryName": "Buds",
    "ProductCategoryType": 0,
    "IsExpirationDateRequired": false,
    "HasExpirationDate": false,
    "IsSellByDateRequired": false,
    "HasSellByDate": false,
    "IsUseByDateRequired": false,
    "HasUseByDate": false,
    "QuantityType": 0,
    "DefaultLabTestingState": 0,
    "UnitOfMeasureName": null,
    "ApprovalStatus": 0,
    "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
    "StrainId": null,
    "StrainName": null,
    "ItemBrandId": 0,
    "ItemBrandName": null,
    "AdministrationMethod": null,
    "UnitCbdPercent": null,
    "UnitCbdContent": null,
    "UnitCbdContentUnitOfMeasureName": null,
    "UnitCbdContentDose": null,
    "UnitCbdContentDoseUnitOfMeasureName": null,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasureName": null,
    "UnitThcContentDose": null,
    "UnitThcContentDoseUnitOfMeasureName": null,
    "UnitVolume": null,
    "UnitVolumeUnitOfMeasureName": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasureName": null,
    "ServingSize": null,
    "SupplyDurationDays": null,
    "NumberOfDoses": null,
    "UnitQuantity": null,
    "UnitQuantityUnitOfMeasureName": null,
    "PublicIngredients": null,
    "Description": null,
    "Allergens": null,
    "ProductImages": [],
    "ProductPhotoDescription": null,
    "LabelImages": [],
    "LabelPhotoDescription": null,
    "PackagingImages": [],
    "PackagingPhotoDescription": null,
    "ProductPDFDocuments": [],
    "IsUsed": false,
    "LabTestBatchNames": [],
    "ProcessingJobCategoryName": null
  }
}

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/active

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of active packages.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v1/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 2,
    "Label": "ABCDEF012345670000010042",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 1.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": false,
    "ArchivedDate": null,
    "IsFinished": false,
    "FinishedDate": null,
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1277117+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  },
  {
    "Id": 3,
    "Label": "ABCDEF012345670000010043",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 1.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": false,
    "ArchivedDate": null,
    "IsFinished": false,
    "FinishedDate": null,
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1277117+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  }
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/onhold

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of packages on hold.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v1/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 2,
    "Label": "ABCDEF012345670000010042",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 15.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": true,
    "ArchivedDate": null,
    "IsFinished": false,
    "FinishedDate": null,
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1627104+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  },
  {
    "Id": 3,
    "Label": "ABCDEF012345670000010043",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 20.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": true,
    "ArchivedDate": null,
    "IsFinished": false,
    "FinishedDate": null,
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1627104+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  }
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/inactive

Permissions Required

View Packages

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive packages.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /packages/v1/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 2,
    "Label": "ABCDEF012345670000010042",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 0.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": false,
    "ArchivedDate": null,
    "IsFinished": true,
    "FinishedDate": "2014-12-15",
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1977138+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  },
  {
    "Id": 3,
    "Label": "ABCDEF012345670000010043",
    "PackageType": "Product",
    "SourceHarvestCount": 0,
    "SourcePackageCount": 0,
    "SourceProcessingJobCount": 0,
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "Quantity": 0.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "PatientLicenseNumber": null,
    "ItemFromFacilityLicenseNumber": null,
    "ItemFromFacilityName": null,
    "Note": null,
    "PackagedDate": "2014-11-29",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "InitialLabTestingState": "NotSubmitted",
    "LabTestingState": "NotSubmitted",
    "LabTestingStateDate": "2014-11-29",
    "LabTestingPerformedDate": null,
    "LabTestResultExpirationDateTime": null,
    "LabTestingRecordedDate": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "SourceProductionBatchNumbers": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "IsDonationPersistent": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "IsProcessValidationTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ReceivedDateTime": null,
    "ReceivedFromManifestNumber": null,
    "ReceivedFromFacilityLicenseNumber": null,
    "ReceivedFromFacilityName": null,
    "IsOnHold": false,
    "ArchivedDate": null,
    "IsFinished": true,
    "FinishedDate": "2014-12-15",
    "IsOnTrip": false,
    "IsOnRetailerDelivery": false,
    "PackageForProductDestruction": null,
    "LastModified": "2024-05-16T23:10:11.1977138+00:00",
    "Item": {
      "Id": 1,
      "Name": "Buds",
      "ProductCategoryName": "Buds",
      "ProductCategoryType": 0,
      "IsExpirationDateRequired": false,
      "HasExpirationDate": false,
      "IsSellByDateRequired": false,
      "HasSellByDate": false,
      "IsUseByDateRequired": false,
      "HasUseByDate": false,
      "QuantityType": 0,
      "DefaultLabTestingState": 0,
      "UnitOfMeasureName": null,
      "ApprovalStatus": 0,
      "ApprovalStatusDateTime": "0001-01-01T00:00:00+00:00",
      "StrainId": null,
      "StrainName": null,
      "ItemBrandId": 0,
      "ItemBrandName": null,
      "AdministrationMethod": null,
      "UnitCbdPercent": null,
      "UnitCbdContent": null,
      "UnitCbdContentUnitOfMeasureName": null,
      "UnitCbdContentDose": null,
      "UnitCbdContentDoseUnitOfMeasureName": null,
      "UnitThcPercent": null,
      "UnitThcContent": null,
      "UnitThcContentUnitOfMeasureName": null,
      "UnitThcContentDose": null,
      "UnitThcContentDoseUnitOfMeasureName": null,
      "UnitVolume": null,
      "UnitVolumeUnitOfMeasureName": null,
      "UnitWeight": null,
      "UnitWeightUnitOfMeasureName": null,
      "ServingSize": null,
      "SupplyDurationDays": null,
      "NumberOfDoses": null,
      "UnitQuantity": null,
      "UnitQuantityUnitOfMeasureName": null,
      "PublicIngredients": null,
      "Description": null,
      "Allergens": null,
      "ProductImages": [],
      "ProductPhotoDescription": null,
      "LabelImages": [],
      "LabelPhotoDescription": null,
      "PackagingImages": [],
      "PackagingPhotoDescription": null,
      "ProductPDFDocuments": [],
      "IsUsed": false,
      "LabTestBatchNames": [],
      "ProcessingJobCategoryName": null
    }
  }
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /packages/v1/types

Example Response

[
  "Product",
  "ImmaturePlant",
  "VegetativePlant",
  "PlantWaste",
  "HarvestWaste"
]

Packages

Server: https://api-mi.metrc.com/

GET /packages/v1/adjust/reasons

Permissions Required

None

Parameters

licenseNumber

Example Request

GET /packages/v1/adjust/reasons?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Drying",
    "RequiresNote": false,
    "RequiresWasteWeight": false,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": false
  },
  {
    "Name": "Entry Error",
    "RequiresNote": false,
    "RequiresWasteWeight": false,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": false
  }
]

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/create

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /packages/v1/create?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010041",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010042",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsDonation": false,
    "IsTradeSample": true,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": null,
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": true,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/create/testing

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /packages/v1/create/testing?licenseNumber=123-ABC[
  {
    "Tag": "ABCDEF012345670000020201",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00001",
    "Note": "This is a note.",
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010041",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010042",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": "Buds",
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": true,
    "ProductionBatchNumber": "PB-2015-12-15",
    "IsDonation": false,
    "IsTradeSample": true,
    "ProductRequiresRemediation": false,
    "UseSameItem": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  },
  {
    "Tag": "ABCDEF012345670000020202",
    "Location": null,
    "Item": null,
    "Quantity": 16.0,
    "UnitOfMeasure": "Ounces",
    "PatientLicenseNumber": "X00002",
    "Note": null,
    "IsProductionBatch": false,
    "ProductionBatchNumber": null,
    "IsDonation": false,
    "IsTradeSample": false,
    "ProductRequiresRemediation": false,
    "UseSameItem": true,
    "ActualDate": "2015-12-15",
    "ExpirationDate": null,
    "SellByDate": null,
    "UseByDate": null,
    "Ingredients": [
      {
        "Package": "ABCDEF012345670000010043",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      },
      {
        "Package": "ABCDEF012345670000010044",
        "Quantity": 8.0,
        "UnitOfMeasure": "Ounces"
      }
    ],
    "RequiredLabTestBatches": null,
    "ProcessingJobTypeId": null,
    "LabTestStageId": null
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/create/plantings

Permissions Required

View Immature Plants
Manage Immature Plants
View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /packages/v1/create/plantings?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041",
    "PackageAdjustmentAmount": 2.0,
    "PackageAdjustmentUnitOfMeasureName": "Ounces",
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "PlantBatchType": "Clone",
    "PlantCount": 1,
    "LocationName": "Plant Batch Location",
    "StrainName": "AK-47",
    "PatientLicenseNumber": "X00001",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  },
  {
    "PackageLabel": "ABCDEF012345670000010042",
    "PackageAdjustmentAmount": 4.0,
    "PackageAdjustmentUnitOfMeasureName": "Ounces",
    "PlantBatchName": "Flo Seed 1/31/2017",
    "PlantBatchType": "Seed",
    "PlantCount": 2,
    "LocationName": null,
    "StrainName": "Flo",
    "PatientLicenseNumber": "X00002",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  },
  {
    "PackageLabel": "ABCDEF012345670000010043",
    "PackageAdjustmentAmount": null,
    "PackageAdjustmentUnitOfMeasureName": null,
    "PlantBatchName": "Blue Dream Plants 1/31/2017",
    "PlantBatchType": "Clone",
    "PlantCount": 10,
    "LocationName": null,
    "StrainName": "Blue Dream",
    "PatientLicenseNumber": "X00003",
    "PlantedDate": "2017-01-31T00:00:00Z",
    "UnpackagedDate": "2017-01-31T00:00:00Z"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/change/item

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /packages/v1/change/item?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Item": "Shake"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Item": "Shake"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

PUT /packages/v1/change/note

Permissions Required

View Packages
Manage Packages Inventory
Manage Package Notes

Parameters

licenseNumber

Example Request

PUT /packages/v1/change/note?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010041",
    "Note": "Package note here."
  },
  {
    "PackageLabel": "ABCDEF012345670000010042",
    "Note": ""
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/change/locations

Permissions Required

View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /packages/v1/change/locations?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Location": "Back Location",
    "MoveDate": "0001-01-01"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Location": "Storage Closet",
    "MoveDate": "2018-03-15"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/adjust

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /packages/v1/adjust?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "Quantity": -2.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Drying",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": null
  },
  {
    "Label": "ABCDEF012345670000010042",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "AdjustmentReason": "Scale Variance",
    "AdjustmentDate": "2015-12-15",
    "ReasonNote": "We are obtaining a new certified scale"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/finish

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /packages/v1/finish?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041",
    "ActualDate": "2015-12-15"
  },
  {
    "Label": "ABCDEF012345670000010042",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/unfinish

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /packages/v1/unfinish?licenseNumber=123-ABC[
  {
    "Label": "ABCDEF012345670000010041"
  },
  {
    "Label": "ABCDEF012345670000010042"
  }
]

Example Response

No response

Packages

Server: https://api-mi.metrc.com/

POST /packages/v1/remediate

Permissions Required

View Packages
Manage Packages Inventory

Parameters

licenseNumber

Example Request

POST /packages/v1/remediate?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000020201",
    "RemediationMethodName": "Further Drying",
    "RemediationDate": "2016-10-17",
    "RemediationSteps": "Used hair dryer"
  },
  {
    "PackageLabel": "ABCDEF012345670000020201",
    "RemediationMethodName": "Further Drying",
    "RemediationDate": "2016-10-17",
    "RemediationSteps": "Used natural sunlight"
  }
]

Example Response

No response

Patients Status

Server: https://api-mi.metrc.com/

GET /patients/v2/statuses/{patientLicenseNumber}

Data returned by this endpoint is cached for up to one minute.

Permissions Required

Lookup Patients

Parameters

licenseNumber
The license number of the Facility under which to get the Patient Status.

Example Request

GET /patients/v2/statuses/PTN-123-456?licenseNumber=123-ABC

Example Response

[
  {
    "PatientLicenseNumber": "PTN-123-456",
    "IdentificationMethod": null,
    "Active": true,
    "FlowerOuncesAllowed": 0.0,
    "ThcOuncesAllowed": 0.0,
    "ConcentrateOuncesAllowed": 0.0,
    "InfusedOuncesAllowed": 0.0,
    "FlowerOuncesPurchased": 0.0,
    "ThcOuncesPurchased": 0.0,
    "ConcentrateOuncesPurchased": 0.0,
    "InfusedOuncesPurchased": 0.0,
    "FlowerOuncesAvailable": 10.0,
    "ThcOuncesAvailable": 1.0,
    "ConcentrateOuncesAvailable": 0.0,
    "InfusedOuncesAvailable": 0.0,
    "PurchaseAmountDays": 1.0
  },
  {
    "PatientLicenseNumber": "PTN-123-456",
    "IdentificationMethod": null,
    "Active": true,
    "FlowerOuncesAllowed": 0.0,
    "ThcOuncesAllowed": 0.0,
    "ConcentrateOuncesAllowed": 0.0,
    "InfusedOuncesAllowed": 0.0,
    "FlowerOuncesPurchased": 0.0,
    "ThcOuncesPurchased": 0.0,
    "ConcentrateOuncesPurchased": 0.0,
    "InfusedOuncesPurchased": 0.0,
    "FlowerOuncesAvailable": 120.0,
    "ThcOuncesAvailable": 10.0,
    "ConcentrateOuncesAvailable": 0.0,
    "InfusedOuncesAvailable": 0.0,
    "PurchaseAmountDays": 31.0
  }
]

Patients Status

Server: https://api-mi.metrc.com/

GET /patients/v1/statuses/{patientLicenseNumber}

Data returned by this endpoint is cached for up to one minute.

Permissions Required

Lookup Patients

Parameters

licenseNumber
The license number of the Facility under which to get the Patient Status.

Example Request

GET /patients/v1/statuses/PTN-123-456?licenseNumber=123-ABC

Example Response

[
  {
    "PatientLicenseNumber": "PTN-123-456",
    "IdentificationMethod": null,
    "Active": true,
    "FlowerOuncesAllowed": 0.0,
    "ThcOuncesAllowed": 0.0,
    "ConcentrateOuncesAllowed": 0.0,
    "InfusedOuncesAllowed": 0.0,
    "FlowerOuncesPurchased": 0.0,
    "ThcOuncesPurchased": 0.0,
    "ConcentrateOuncesPurchased": 0.0,
    "InfusedOuncesPurchased": 0.0,
    "FlowerOuncesAvailable": 10.0,
    "ThcOuncesAvailable": 1.0,
    "ConcentrateOuncesAvailable": 0.0,
    "InfusedOuncesAvailable": 0.0,
    "PurchaseAmountDays": 1.0
  },
  {
    "PatientLicenseNumber": "PTN-123-456",
    "IdentificationMethod": null,
    "Active": true,
    "FlowerOuncesAllowed": 0.0,
    "ThcOuncesAllowed": 0.0,
    "ConcentrateOuncesAllowed": 0.0,
    "InfusedOuncesAllowed": 0.0,
    "FlowerOuncesPurchased": 0.0,
    "ThcOuncesPurchased": 0.0,
    "ConcentrateOuncesPurchased": 0.0,
    "InfusedOuncesPurchased": 0.0,
    "FlowerOuncesAvailable": 120.0,
    "ThcOuncesAvailable": 10.0,
    "ConcentrateOuncesAvailable": 0.0,
    "InfusedOuncesAvailable": 0.0,
    "PurchaseAmountDays": 31.0
  }
]

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v2/{id}

Permissions Required

View Immature Plants

Parameters

licenseNumber
optional
If specified, the Plant Batch will be validated against the specified License Number. If not specified, the Plant Batch will be validated against all of the User's current Facilities. Please note that if the Plant Batch is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plantbatches/v2/5?licenseNumber=123-ABC

Example Response

{
  "Id": 5,
  "Name": "Demo Plant Batch 1",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "PatientLicenseNumber": null,
  "UntrackedCount": 80,
  "TrackedCount": 10,
  "PackagedCount": 0,
  "DestroyedCount": 40,
  "SourcePackageId": null,
  "SourcePackageLabel": null,
  "SourcePlantId": null,
  "SourcePlantLabel": null,
  "SourcePlantBatchIds": [],
  "SourcePlantBatchNames": null,
  "MultiPlantBatch": false,
  "PlantedDate": "2014-10-10",
  "IsOnTrip": false,
  "LastModified": "0001-01-01T00:00:00+00:00",
  "IsOnHold": false
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v2/active

Permissions Required

View Immature Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of active plant batches.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plantbatches/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 5,
      "Name": "Demo Plant Batch 1",
      "PlantBatchTypeId": 1,
      "PlantBatchTypeName": "Seed",
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "PatientLicenseNumber": null,
      "UntrackedCount": 80,
      "TrackedCount": 10,
      "PackagedCount": 0,
      "DestroyedCount": 40,
      "SourcePackageId": null,
      "SourcePackageLabel": null,
      "SourcePlantId": null,
      "SourcePlantLabel": null,
      "SourcePlantBatchIds": [],
      "SourcePlantBatchNames": null,
      "MultiPlantBatch": false,
      "PlantedDate": "2014-10-10",
      "IsOnTrip": false,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "IsOnHold": false
    },
    {
      "Id": 6,
      "Name": "Demo Plant Batch 2",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "PatientLicenseNumber": null,
      "UntrackedCount": 50,
      "TrackedCount": 20,
      "PackagedCount": 0,
      "DestroyedCount": 70,
      "SourcePackageId": null,
      "SourcePackageLabel": null,
      "SourcePlantId": null,
      "SourcePlantLabel": null,
      "SourcePlantBatchIds": [],
      "SourcePlantBatchNames": null,
      "MultiPlantBatch": false,
      "PlantedDate": "2014-10-10",
      "IsOnTrip": false,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "IsOnHold": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v2/inactive

Permissions Required

View Immature Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive plant batches.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plantbatches/v2/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 7,
      "Name": "Demo Plant Batch 3",
      "PlantBatchTypeId": 1,
      "PlantBatchTypeName": "Seed",
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "PatientLicenseNumber": null,
      "UntrackedCount": 0,
      "TrackedCount": 100,
      "PackagedCount": 0,
      "DestroyedCount": 20,
      "SourcePackageId": null,
      "SourcePackageLabel": null,
      "SourcePlantId": null,
      "SourcePlantLabel": null,
      "SourcePlantBatchIds": [],
      "SourcePlantBatchNames": null,
      "MultiPlantBatch": false,
      "PlantedDate": "2014-10-10",
      "IsOnTrip": false,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "IsOnHold": false
    },
    {
      "Id": 8,
      "Name": "Demo Plant Batch 4",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "LocationId": null,
      "LocationName": null,
      "LocationTypeName": null,
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "PatientLicenseNumber": null,
      "UntrackedCount": 0,
      "TrackedCount": 75,
      "PackagedCount": 0,
      "DestroyedCount": 35,
      "SourcePackageId": null,
      "SourcePackageLabel": null,
      "SourcePlantId": null,
      "SourcePlantLabel": null,
      "SourcePlantBatchIds": [],
      "SourcePlantBatchNames": null,
      "MultiPlantBatch": false,
      "PlantedDate": "2014-10-10",
      "IsOnTrip": false,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "IsOnHold": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v2/types

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /plantbatches/v2/types?pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Seed",
      "CanBeCloned": true,
      "LastModified": "2021-11-19T00:00:00+00:00"
    },
    {
      "Id": 2,
      "Name": "Clone",
      "CanBeCloned": false,
      "LastModified": "2021-11-19T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plant Batches

Server: https://api-mi.metrc.com/

DELETE /plantbatches/v2/

Permissions Required

View Immature Plants
Destroy Immature Plants

Parameters

licenseNumber
The license number of the facility for which to destroy the plant batch.

Example Request

DELETE /plantbatches/v2/?licenseNumber=123-ABC[
  {
    "PlantBatch": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "WasteMethodName": "Laser Beam",
    "WasteMaterialMixed": "Motor Oil",
    "WasteReasonName": "Mater Theft",
    "ReasonNote": "Mater stole a couple plants.",
    "WasteWeight": 1.209,
    "WasteUnitOfMeasure": "Grams",
    "ActualDate": "2015-12-15"
  },
  {
    "PlantBatch": "AK-47 Clone 1/31/2017",
    "Count": 10,
    "WasteMethodName": null,
    "WasteMaterialMixed": null,
    "WasteReasonName": "Ran over plants with no waste.",
    "ReasonNote": "McQueen ran over the plants. Poor little plants. =(",
    "WasteWeight": 0.0,
    "WasteUnitOfMeasure": null,
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v2/waste/reasons

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return a list of waste reasons.

Example Request

GET /plantbatches/v2/waste/reasons?licenseNumber=123-ABC

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/waste

Permissions Required

Manage Plants Waste

Parameters

licenseNumber
The license number of the facility for which to record waste of the plant batch.

Example Request

POST /plantbatches/v2/waste?licenseNumber=123-ABC[
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 15.69,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "WasteDate": "2017-01-31",
    "PlantBatchName": "Plant Batch A"
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/adjust

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to record adjustments.

Example Request

POST /plantbatches/v2/adjust?licenseNumber=123-ABC[
  {
    "PlantBatchName": "Testing Plant Batch",
    "Quantity": -2,
    "AdjustmentReason": "Drying",
    "AdjustmentDate": "2023-01-20",
    "ReasonNote": null
  },
  {
    "PlantBatchName": "Testing Plant Batch",
    "Quantity": 1,
    "AdjustmentReason": "Scale Variance",
    "AdjustmentDate": "2023-01-20",
    "ReasonNote": "We are obtaining a new certified scale"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/additives

Permissions Required

Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plantbatches/v2/additives?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "ActualDate": "2019-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/plantings

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to create the plantings.

Example Request

POST /plantbatches/v2/plantings?licenseNumber=123-ABC[
  {
    "Name": "B. Kush 5-30",
    "Type": "Clone",
    "Count": 25,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": null
  },
  {
    "Name": "B. Kush 5-31",
    "Type": "Seed",
    "Count": 50,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": null
  },
  {
    "Name": "B. Kush 5-32",
    "Type": "Seed",
    "Count": 3,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": [
      {
        "PlantBatchName": "Red Crush"
      },
      {
        "PlantBatchName": "Blue Dream"
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1,
    2,
    3
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/packages

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to create a package from the plant batch.
isFromMotherPlant
optional
Whether the package contains a plant batch from a mother plant - Boolean. Reference v2/packages/frommotherplant

Example Request

POST /plantbatches/v2/packages?licenseNumber=123-ABC[
  {
    "Id": null,
    "PlantBatch": "Demo Plant Batch 1",
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020201",
    "PatientLicenseNumber": "P00001",
    "Note": "This is a note.",
    "IsTradeSample": false,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  },
  {
    "Id": 5,
    "PlantBatch": null,
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020202",
    "PatientLicenseNumber": "P00002",
    "Note": "",
    "IsTradeSample": true,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/packages/frommotherplant

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to create packages from a mother plant.

Example Request

POST /plantbatches/v2/packages/frommotherplant?licenseNumber=123-ABC[
  {
    "Id": null,
    "PlantBatch": "Demo Plant Batch 1",
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020201",
    "PatientLicenseNumber": "P00001",
    "Note": "This is a note.",
    "IsTradeSample": false,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  },
  {
    "Id": 5,
    "PlantBatch": null,
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020202",
    "PatientLicenseNumber": "P00002",
    "Note": "",
    "IsTradeSample": true,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/split

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to split the plant batches.

Example Request

POST /plantbatches/v2/split?licenseNumber=123-ABC[
  {
    "PlantBatch": "B. Kush 5-30",
    "GroupName": "New Plant Batch",
    "Count": 25,
    "Location": null,
    "Strain": "Spring Hill Kush",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15T00:00:00Z"
  },
  {
    "PlantBatch": "B. Kush 5-31",
    "GroupName": "New Plant Batch",
    "Count": 50,
    "Location": null,
    "Strain": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "ActualDate": "2015-12-15T00:00:00Z"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v2/growthphase

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to change the growth phase.

Example Request

POST /plantbatches/v2/growthphase?licenseNumber=123-ABC[
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "StartingTag": "ABCDEF012345670000020401",
    "GrowthPhase": "Flowering",
    "NewLocation": "Plants Location",
    "GrowthDate": "2015-12-15",
    "PatientLicenseNumber": "X00001"
  },
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "StartingTag": "ABCDEF012345670000020427",
    "GrowthPhase": "Vegetative",
    "NewLocation": "Harvest Location",
    "GrowthDate": "2015-12-15",
    "PatientLicenseNumber": "X00002"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

PUT /plantbatches/v2/tag

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to replace plant batch tags.

Example Request

PUT /plantbatches/v2/tag?licenseNumber=123-ABC[
  {
    "Id": null,
    "Group": "Plant Batch 1",
    "TagId": null,
    "NewTag": "ABCDEF012345670000000002",
    "ReplaceDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Group": null,
    "TagId": 3,
    "NewTag": null,
    "ReplaceDate": "2015-12-15"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

PUT /plantbatches/v2/strain

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to change the strain of the plant batch.

Example Request

PUT /plantbatches/v2/strain?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": null,
    "StrainId": 1,
    "StrainName": null
  },
  {
    "Id": 2,
    "Name": null,
    "StrainId": 2,
    "StrainName": null
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

PUT /plantbatches/v2/location

Permissions Required

View Immature Plants
Manage Immature Plants

Parameters

licenseNumber
The license number of the facility for which to change the location of the plant batch.

Example Request

PUT /plantbatches/v2/location?licenseNumber=123-ABC[
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Location": "Plants Location",
    "MoveDate": "2015-12-15"
  },
  {
    "Name": "Metrc Bliss 5/30/2018",
    "Location": "Plants Location",
    "MoveDate": "2018-01-05"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v1/{id}

Permissions Required

View Immature Plants

Parameters

licenseNumber
optional
If specified, the Plant Batch will be validated against the specified License Number. If not specified, the Plant Batch will be validated against all of the User's current Facilities. Please note that if the Plant Batch is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plantbatches/v1/5?licenseNumber=123-ABC

Example Response

{
  "Id": 5,
  "Name": "Demo Plant Batch 1",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "LocationId": null,
  "LocationName": null,
  "LocationTypeName": null,
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "PatientLicenseNumber": null,
  "UntrackedCount": 80,
  "TrackedCount": 10,
  "PackagedCount": 0,
  "DestroyedCount": 40,
  "SourcePackageId": null,
  "SourcePackageLabel": null,
  "SourcePlantId": null,
  "SourcePlantLabel": null,
  "SourcePlantBatchIds": [],
  "SourcePlantBatchNames": null,
  "MultiPlantBatch": false,
  "PlantedDate": "2014-10-10",
  "IsOnTrip": false,
  "LastModified": "0001-01-01T00:00:00+00:00",
  "IsOnHold": false
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v1/active

Permissions Required

View Immature Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of active plant groups.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plantbatches/v1/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 5,
    "Name": "Demo Plant Batch 1",
    "PlantBatchTypeId": 1,
    "PlantBatchTypeName": "Seed",
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "UntrackedCount": 80,
    "TrackedCount": 10,
    "PackagedCount": 0,
    "DestroyedCount": 40,
    "SourcePackageId": null,
    "SourcePackageLabel": null,
    "SourcePlantId": null,
    "SourcePlantLabel": null,
    "SourcePlantBatchIds": [],
    "SourcePlantBatchNames": null,
    "MultiPlantBatch": false,
    "PlantedDate": "2014-10-10",
    "IsOnTrip": false,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "IsOnHold": false
  },
  {
    "Id": 6,
    "Name": "Demo Plant Batch 2",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "UntrackedCount": 50,
    "TrackedCount": 20,
    "PackagedCount": 0,
    "DestroyedCount": 70,
    "SourcePackageId": null,
    "SourcePackageLabel": null,
    "SourcePlantId": null,
    "SourcePlantLabel": null,
    "SourcePlantBatchIds": [],
    "SourcePlantBatchNames": null,
    "MultiPlantBatch": false,
    "PlantedDate": "2014-10-10",
    "IsOnTrip": false,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "IsOnHold": false
  }
]

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v1/inactive

Permissions Required

View Immature Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive plant groups.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plantbatches/v1/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 7,
    "Name": "Demo Plant Batch 3",
    "PlantBatchTypeId": 1,
    "PlantBatchTypeName": "Seed",
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "UntrackedCount": 0,
    "TrackedCount": 100,
    "PackagedCount": 0,
    "DestroyedCount": 20,
    "SourcePackageId": null,
    "SourcePackageLabel": null,
    "SourcePlantId": null,
    "SourcePlantLabel": null,
    "SourcePlantBatchIds": [],
    "SourcePlantBatchNames": null,
    "MultiPlantBatch": false,
    "PlantedDate": "2014-10-10",
    "IsOnTrip": false,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "IsOnHold": false
  },
  {
    "Id": 8,
    "Name": "Demo Plant Batch 4",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "LocationId": null,
    "LocationName": null,
    "LocationTypeName": null,
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "UntrackedCount": 0,
    "TrackedCount": 75,
    "PackagedCount": 0,
    "DestroyedCount": 35,
    "SourcePackageId": null,
    "SourcePackageLabel": null,
    "SourcePlantId": null,
    "SourcePlantLabel": null,
    "SourcePlantBatchIds": [],
    "SourcePlantBatchNames": null,
    "MultiPlantBatch": false,
    "PlantedDate": "2014-10-10",
    "IsOnTrip": false,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "IsOnHold": false
  }
]

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v1/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /plantbatches/v1/types

Example Response

[
  "Seed",
  "Clone"
]

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/adjust

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/adjust?licenseNumber=123-ABC[
  {
    "PlantBatchName": "Testing Plant Batch",
    "Quantity": -2,
    "AdjustmentReason": "Drying",
    "AdjustmentDate": "2023-01-20",
    "ReasonNote": null
  },
  {
    "PlantBatchName": "Testing Plant Batch",
    "Quantity": 1,
    "AdjustmentReason": "Scale Variance",
    "AdjustmentDate": "2023-01-20",
    "ReasonNote": "We are obtaining a new certified scale"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/createplantings

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/createplantings?licenseNumber=123-ABC[
  {
    "Name": "B. Kush 5-30",
    "Type": "Clone",
    "Count": 25,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": null
  },
  {
    "Name": "B. Kush 5-31",
    "Type": "Seed",
    "Count": 50,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": null
  },
  {
    "Name": "B. Kush 5-32",
    "Type": "Seed",
    "Count": 3,
    "Strain": "Spring Hill Kush",
    "Location": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2022-02-15",
    "SourcePlantBatches": [
      {
        "PlantBatchName": "Red Crush"
      },
      {
        "PlantBatchName": "Blue Dream"
      }
    ]
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/createpackages

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
isFromMotherPlant
optional

Example Request

POST /plantbatches/v1/createpackages?licenseNumber=123-ABC[
  {
    "Id": null,
    "PlantBatch": "Demo Plant Batch 1",
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020201",
    "PatientLicenseNumber": "P00001",
    "Note": "This is a note.",
    "IsTradeSample": false,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  },
  {
    "Id": 5,
    "PlantBatch": null,
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020202",
    "PatientLicenseNumber": "P00002",
    "Note": "",
    "IsTradeSample": true,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/split

Permissions Required

View Immature Plants
Manage Immature Plants Inventory

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/split?licenseNumber=123-ABC[
  {
    "PlantBatch": "B. Kush 5-30",
    "GroupName": "New Plant Batch",
    "Count": 25,
    "Location": null,
    "Strain": "Spring Hill Kush",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15T00:00:00Z"
  },
  {
    "PlantBatch": "B. Kush 5-31",
    "GroupName": "New Plant Batch",
    "Count": 50,
    "Location": null,
    "Strain": "Spring Hill Kush",
    "PatientLicenseNumber": null,
    "ActualDate": "2015-12-15T00:00:00Z"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/create/packages/frommotherplant

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/create/packages/frommotherplant?licenseNumber=123-ABC[
  {
    "Id": null,
    "PlantBatch": "Demo Plant Batch 1",
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020201",
    "PatientLicenseNumber": "P00001",
    "Note": "This is a note.",
    "IsTradeSample": false,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  },
  {
    "Id": 5,
    "PlantBatch": null,
    "Count": 10,
    "Location": null,
    "Item": "Immature Plants",
    "Tag": "ABCDEF012345670000020202",
    "PatientLicenseNumber": "P00002",
    "Note": "",
    "IsTradeSample": true,
    "IsDonation": false,
    "ActualDate": "2015-12-15",
    "ExpirationDate": "2016-09-15",
    "SellByDate": "2016-09-15",
    "UseByDate": "2016-09-15"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/changegrowthphase

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/changegrowthphase?licenseNumber=123-ABC[
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "StartingTag": "ABCDEF012345670000020401",
    "GrowthPhase": "Flowering",
    "NewLocation": "Plants Location",
    "GrowthDate": "2015-12-15",
    "PatientLicenseNumber": "X00001"
  },
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "StartingTag": "ABCDEF012345670000020427",
    "GrowthPhase": "Vegetative",
    "NewLocation": "Harvest Location",
    "GrowthDate": "2015-12-15",
    "PatientLicenseNumber": "X00002"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

PUT /plantbatches/v1/moveplantbatches

Permissions Required

View Immature Plants

Parameters

licenseNumber

Example Request

PUT /plantbatches/v1/moveplantbatches?licenseNumber=123-ABC[
  {
    "Name": "AK-47 Clone 1/31/2017",
    "Location": "Plants Location",
    "MoveDate": "2015-12-15"
  },
  {
    "Name": "Metrc Bliss 5/30/2018",
    "Location": "Plants Location",
    "MoveDate": "2018-01-05"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/additives

Permissions Required

Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plantbatches/v1/additives?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantBatchName": "AK-47 Clone 1/31/2017",
    "ActualDate": "2019-12-15"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

POST /plantbatches/v1/waste

Permissions Required

Manage Plants Waste

Parameters

licenseNumber

Example Request

POST /plantbatches/v1/waste?licenseNumber=123-ABC[
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 15.69,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "WasteDate": "2017-01-31",
    "PlantBatchName": "Plant Batch A"
  }
]

Example Response

No response

Plant Batches

Server: https://api-mi.metrc.com/

DELETE /plantbatches/v1/

Permissions Required

View Immature Plants
Destroy Immature Plants

Parameters

licenseNumber

Example Request

DELETE /plantbatches/v1/?licenseNumber=123-ABC[
  {
    "PlantBatch": "AK-47 Clone 1/31/2017",
    "Count": 25,
    "WasteMethodName": "Laser Beam",
    "WasteMaterialMixed": "Motor Oil",
    "WasteReasonName": "Mater Theft",
    "ReasonNote": "Mater stole a couple plants.",
    "WasteWeight": 1.209,
    "WasteUnitOfMeasure": "Grams",
    "ActualDate": "2015-12-15"
  },
  {
    "PlantBatch": "AK-47 Clone 1/31/2017",
    "Count": 10,
    "WasteMethodName": null,
    "WasteMaterialMixed": null,
    "WasteReasonName": "Ran over plants with no waste.",
    "ReasonNote": "McQueen ran over the plants. Poor little plants. =(",
    "WasteWeight": 0.0,
    "WasteUnitOfMeasure": null,
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plant Batches

Server: https://api-mi.metrc.com/

GET /plantbatches/v1/waste/reasons

Permissions Required

None

Parameters

licenseNumber

Example Request

GET /plantbatches/v1/waste/reasons?licenseNumber=123-ABC

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/additives/types

Permissions Required

None

Parameters

No parameters

Example Request

GET /plants/v2/additives/types

Example Response

[
  "Fertilizer",
  "Pesticide",
  "Other"
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/{id}

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
optional
If specified, the Plant will be validated against the specified License Number. If not specified, the Plant will be validated against all of the User's current Facilities. Please note that if the Plant is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plants/v2/24?licenseNumber=123-ABC

Example Response

{
  "Id": 24,
  "Label": "ABCDEF012345670000000024",
  "State": "Tracked",
  "GrowthPhase": "Vegetative",
  "GroupTagTypeMax": 0,
  "TagTypeMax": 0,
  "PlantBatchId": 1,
  "PlantBatchName": "Demo Plant Batch",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "LocationId": 2,
  "LocationName": "Plants Location",
  "LocationTypeName": null,
  "PatientLicenseNumber": null,
  "HarvestId": null,
  "HarvestedUnitOfWeightName": null,
  "HarvestedUnitOfWeightAbbreviation": null,
  "HarvestedWetWeight": null,
  "HarvestCount": 0,
  "IsOnHold": false,
  "IsOnTrip": false,
  "PlantedDate": "2014-10-10",
  "VegetativeDate": "2014-10-20",
  "FloweringDate": null,
  "HarvestedDate": null,
  "DestroyedDate": null,
  "DestroyedNote": null,
  "DestroyedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/{label}

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
optional
If specified, the Plant will be validated against the specified License Number. If not specified, the Plant will be validated against all of the User's current Facilities. Please note that if the Plant is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plants/v2/ABCDEF012345670000000024?licenseNumber=123-ABC

Example Response

{
  "Id": 24,
  "Label": "ABCDEF012345670000000024",
  "State": "Tracked",
  "GrowthPhase": "Vegetative",
  "GroupTagTypeMax": 0,
  "TagTypeMax": 0,
  "PlantBatchId": 1,
  "PlantBatchName": "Demo Plant Batch",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "LocationId": 2,
  "LocationName": "Plants Location",
  "LocationTypeName": null,
  "PatientLicenseNumber": null,
  "HarvestId": null,
  "HarvestedUnitOfWeightName": null,
  "HarvestedUnitOfWeightAbbreviation": null,
  "HarvestedWetWeight": null,
  "HarvestCount": 0,
  "IsOnHold": false,
  "IsOnTrip": false,
  "PlantedDate": "2014-10-10",
  "VegetativeDate": "2014-10-20",
  "FloweringDate": null,
  "HarvestedDate": null,
  "DestroyedDate": null,
  "DestroyedNote": null,
  "DestroyedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/vegetative

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of vegetating plants.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v2/vegetative?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 24,
      "Label": "ABCDEF012345670000000024",
      "State": "Tracked",
      "GrowthPhase": "Vegetative",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 1,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 1,
      "PlantBatchTypeName": "Seed",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": null,
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 25,
      "Label": "ABCDEF012345670000000025",
      "State": "Tracked",
      "GrowthPhase": "Vegetative",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 1,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 1,
      "PlantBatchTypeName": "Seed",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": null,
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/flowering

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of flowering plants.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v2/flowering?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 10011,
      "Label": "ABCDEF012345670000010011",
      "State": "Tracked",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 10012,
      "Label": "ABCDEF012345670000010012",
      "State": "Tracked",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/onhold

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of plants on hold.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v2/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 10011,
      "Label": "ABCDEF012345670000010011",
      "State": "Tracked",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": true,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 10012,
      "Label": "ABCDEF012345670000010012",
      "State": "Tracked",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": null,
      "HarvestedUnitOfWeightName": null,
      "HarvestedUnitOfWeightAbbreviation": null,
      "HarvestedWetWeight": null,
      "HarvestCount": 0,
      "IsOnHold": true,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": null,
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/inactive

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive plants.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v2/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 10021,
      "Label": "ABCDEF012345670000010021",
      "State": "Harvested",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": 2,
      "HarvestedUnitOfWeightName": "Ounces",
      "HarvestedUnitOfWeightAbbreviation": "oz",
      "HarvestedWetWeight": 1.0,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": "2014-11-19",
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 10022,
      "Label": "ABCDEF012345670000010022",
      "State": "Harvested",
      "GrowthPhase": "Flowering",
      "GroupTagTypeMax": 0,
      "TagTypeMax": 0,
      "PlantBatchId": 2,
      "PlantBatchName": "Demo Plant Batch",
      "PlantBatchTypeId": 2,
      "PlantBatchTypeName": "Clone",
      "StrainId": 1,
      "StrainName": "Spring Hill Kush",
      "LocationId": 2,
      "LocationName": "Plants Location",
      "LocationTypeName": null,
      "PatientLicenseNumber": null,
      "HarvestId": 2,
      "HarvestedUnitOfWeightName": "Ounces",
      "HarvestedUnitOfWeightAbbreviation": "oz",
      "HarvestedWetWeight": 1.0,
      "HarvestCount": 0,
      "IsOnHold": false,
      "IsOnTrip": false,
      "PlantedDate": "2014-10-10",
      "VegetativeDate": "2014-10-20",
      "FloweringDate": "2014-11-09",
      "HarvestedDate": "2014-11-19",
      "DestroyedDate": null,
      "DestroyedNote": null,
      "DestroyedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/additives

Permissions Required

View/Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to retrieve plant additives.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v2/additives?licenseNumber=123-ABC&lastModifiedStart=2019-01-17T06:30:00Z&lastModifiedEnd=2019-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "AdditiveTypeName": null,
      "ProductTradeName": "Round-Down",
      "EpaRegistrationNumber": null,
      "ProductSupplier": "MonSanta",
      "ApplicationDevice": "Spray",
      "AmountUnitOfMeasure": "Gallons",
      "TotalAmountApplied": 5.0,
      "PlantBatchId": null,
      "PlantBatchName": null,
      "PlantCount": 83
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/growthphases

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return the list of available Plant Growth Phases.

Example Request

GET /plants/v2/growthphases?licenseNumber=123-ABC

Example Response

[
  "Immature",
  "Vegetative",
  "Flowering"
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/waste/reasons

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return the list of waste reasons.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /plants/v2/waste/reasons?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Contamination",
      "RequiresNote": false,
      "RequiresWasteWeight": true,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": true
    },
    {
      "Name": "Male Plants",
      "RequiresNote": false,
      "RequiresWasteWeight": false,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/additives

Permissions Required

Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plants/v2/additives?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantLabels": [
      "ABCDEF012345670000010011",
      "ABCDEF012345670000010012"
    ],
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantLabels": [
      "ABCDEF012345670000010013",
      "ABCDEF012345670000010014"
    ],
    "ActualDate": "2019-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/additives/bylocation

Permissions Required

Manage Plants
Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plants/v2/additives/bylocation?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "LocationName": "Plants Location",
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "LocationName": "Plants Location",
    "ActualDate": "2019-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/plantings

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to record the list of plant batches.

Example Request

POST /plants/v2/plantings?licenseNumber=123-ABC[
  {
    "PlantLabel": "ABCDEF012345670000010011",
    "PlantBatchName": "Demo Plant Batch 1",
    "PlantBatchType": "Clone",
    "PlantCount": 3,
    "LocationName": null,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2016-10-18T13:11:03Z"
  },
  {
    "PlantLabel": "ABCDEF012345670000010012",
    "PlantBatchName": "Demo Plant Batch 2",
    "PlantBatchType": "Seed",
    "PlantCount": 2,
    "LocationName": null,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2016-10-18T13:11:03Z"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/plantbatch/packages

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber
The license number of the facility for which to record the list of plant batch packages.

Example Request

POST /plants/v2/plantbatch/packages?licenseNumber=123-ABC[
  {
    "PlantLabel": "ABCDEF012345670000000011",
    "PackageTag": "ABCDEF012345670000010011",
    "PlantBatchType": "Clone",
    "Item": "Blue Dream Clones",
    "Location": null,
    "Note": null,
    "IsTradeSample": false,
    "PatientLicenseNumber": null,
    "IsDonation": false,
    "Count": 25,
    "ActualDate": "2020-01-15T12:25:43Z"
  },
  {
    "PlantLabel": "ABCDEF012345670000000012",
    "PackageTag": "ABCDEF012345670000010013",
    "PlantBatchType": "Seed",
    "Item": "Blue Dream Seeds",
    "Location": "Package Room 1",
    "Note": null,
    "IsTradeSample": false,
    "PatientLicenseNumber": null,
    "IsDonation": false,
    "Count": 25,
    "ActualDate": "2020-01-15T12:36:32Z"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/manicure

Permissions Required

View Veg/Flower Plants
Manicure/Harvest Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to record the list of plants manicured.

Example Request

POST /plants/v2/manicure?licenseNumber=123-ABC[
  {
    "Plant": "ABCDEF012345670000000001",
    "Weight": 100.23,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Plants Location",
    "HarvestName": null,
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15"
  },
  {
    "Plant": "ABCDEF012345670000000001",
    "Weight": 50.10,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Plants Location",
    "HarvestName": "2015-12-15-Harvest Location-M",
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/location

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to update the list of plants moved.

Example Request

PUT /plants/v2/location?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "Location": "Plants Location",
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "Location": "Plants Location",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/growthphase

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to update the list of plants growth phase.

Example Request

PUT /plants/v2/growthphase?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "NewTag": "ABCDEF012345670000020001",
    "GrowthPhase": "Flowering",
    "NewLocation": "Plants Location",
    "GrowthDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "NewTag": "ABCDEF012345670000020002",
    "GrowthPhase": "Vegetative",
    "NewLocation": "Harvest Location",
    "GrowthDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/tag

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to upate the list of plant tags.

Example Request

PUT /plants/v2/tag?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "TagId": null,
    "NewTag": "ABCDEF012345670000000002",
    "ReplaceDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "TagId": 3,
    "NewTag": null,
    "ReplaceDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/strain

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber
The license number of the facility for which to update the list of plant strains.

Example Request

PUT /plants/v2/strain?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Label": null,
    "StrainId": 1,
    "StrainName": null
  },
  {
    "Id": 2,
    "Label": null,
    "StrainId": 2,
    "StrainName": null
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/harvest

Permissions Required

View Veg/Flower Plants
Manicure/Harvest Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to update the list of plant harvests.

Example Request

PUT /plants/v2/harvest?licenseNumber=123-ABC[
  {
    "Plant": "ABCDEF012345670000010011",
    "Weight": 100.23,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Harvest Location",
    "HarvestName": "2015-12-15-Harvest Location-H",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15"
  },
  {
    "Plant": "ABCDEF012345670000010012",
    "Weight": 10.15,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Harvest Location",
    "HarvestName": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/merge

Permissions Required

View Veg/Flower Plants
Manicure/Harvest Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to update the list of plants merged.

Example Request

PUT /plants/v2/merge?licenseNumber=123-ABC[
  {
    "TargetPlantGroupLabel": "ABCDEF012345670000000001",
    "SourcePlantGroupLabel": "ABCDEF012345670000000002",
    "MergeDate": "2015-12-15"
  },
  {
    "TargetPlantGroupLabel": "ABCDEF012345670000000003",
    "SourcePlantGroupLabel": "ABCDEF012345670000000004",
    "MergeDate": "2015-12-16"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

DELETE /plants/v2/

Permissions Required

View Veg/Flower Plants
Destroy Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility that intends to destroy the plants.

Example Request

DELETE /plants/v2/?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "WasteMethodName": "Compost",
    "WasteMaterialMixed": "Soil",
    "WasteWeight": 15.69,
    "WasteUnitOfMeasureName": "grams",
    "WasteReasonName": "Destroy",
    "Count": 0,
    "ReasonNote": "Had to go.",
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "WasteMethodName": "Grinder",
    "WasteMaterialMixed": "Soil",
    "WasteWeight": 15.69,
    "WasteUnitOfMeasureName": "grams",
    "WasteReasonName": "Destroy",
    "Count": 0,
    "ReasonNote": "Had to go.",
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v2/waste

Permissions Required

Manage Plants Waste

Parameters

licenseNumber
The license number of the facility for which to record waste.

Example Request

POST /plants/v2/waste?licenseNumber=123-ABC[
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 15.69,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "LocationName": "Veg Room A",
    "WasteDate": "2017-01-31",
    "PlantLabels": []
  },
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 12.82,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "LocationName": null,
    "WasteDate": "2017-01-31",
    "PlantLabels": [
      "ABCDEF012345670000000100",
      "ABCDEF012345670000000101"
    ]
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v2/waste/methods/all

Permissions Required

None

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /plants/v2/waste/methods/all?pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Grinder",
      "ForPlants": true,
      "ForProductDestruction": false,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Name": "Compost",
      "ForPlants": true,
      "ForProductDestruction": false,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Plants

Server: https://api-mi.metrc.com/

PUT /plants/v2/split

Permissions Required

View Plant

Parameters

licenseNumber
The license number of the facility for which to update plant splits.

Example Request

PUT /plants/v2/split?licenseNumber=123-ABC[
  {
    "SplitDate": "2022-12-15",
    "SourcePlantLabel": "ABCDEF012345670000000001",
    "PlantCount": 5,
    "TagLabel": "ABCDEF012345670000000005",
    "StrainLabel": "efg"
  },
  {
    "SplitDate": "2022-12-15",
    "SourcePlantLabel": "ABCDEF012345670000000002",
    "PlantCount": 10,
    "TagLabel": "ABCDEF012345670000000006",
    "StrainLabel": "efg"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/{id}

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
optional
If specified, the Plant will be validated against the specified License Number. If not specified, the Plant will be validated against all of the User's current Facilities. Please note that if the Plant is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plants/v1/24?licenseNumber=123-ABC

Example Response

{
  "Id": 24,
  "Label": "ABCDEF012345670000000024",
  "State": "Tracked",
  "GrowthPhase": "Vegetative",
  "GroupTagTypeMax": 0,
  "TagTypeMax": 0,
  "PlantBatchId": 1,
  "PlantBatchName": "Demo Plant Batch",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "LocationId": 2,
  "LocationName": "Plants Location",
  "LocationTypeName": null,
  "PatientLicenseNumber": null,
  "HarvestId": null,
  "HarvestedUnitOfWeightName": null,
  "HarvestedUnitOfWeightAbbreviation": null,
  "HarvestedWetWeight": null,
  "HarvestCount": 0,
  "IsOnHold": false,
  "IsOnTrip": false,
  "PlantedDate": "2014-10-10",
  "VegetativeDate": "2014-10-20",
  "FloweringDate": null,
  "HarvestedDate": null,
  "DestroyedDate": null,
  "DestroyedNote": null,
  "DestroyedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/{label}

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
optional
If specified, the Plant will be validated against the specified License Number. If not specified, the Plant will be validated against all of the User's current Facilities. Please note that if the Plant is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /plants/v1/ABCDEF012345670000000024?licenseNumber=123-ABC

Example Response

{
  "Id": 24,
  "Label": "ABCDEF012345670000000024",
  "State": "Tracked",
  "GrowthPhase": "Vegetative",
  "GroupTagTypeMax": 0,
  "TagTypeMax": 0,
  "PlantBatchId": 1,
  "PlantBatchName": "Demo Plant Batch",
  "PlantBatchTypeId": 1,
  "PlantBatchTypeName": "Seed",
  "StrainId": 1,
  "StrainName": "Spring Hill Kush",
  "LocationId": 2,
  "LocationName": "Plants Location",
  "LocationTypeName": null,
  "PatientLicenseNumber": null,
  "HarvestId": null,
  "HarvestedUnitOfWeightName": null,
  "HarvestedUnitOfWeightAbbreviation": null,
  "HarvestedWetWeight": null,
  "HarvestCount": 0,
  "IsOnHold": false,
  "IsOnTrip": false,
  "PlantedDate": "2014-10-10",
  "VegetativeDate": "2014-10-20",
  "FloweringDate": null,
  "HarvestedDate": null,
  "DestroyedDate": null,
  "DestroyedNote": null,
  "DestroyedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/vegetative

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of vegetating plants.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v1/vegetative?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 24,
    "Label": "ABCDEF012345670000000024",
    "State": "Tracked",
    "GrowthPhase": "Vegetative",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 1,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 1,
    "PlantBatchTypeName": "Seed",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": null,
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 25,
    "Label": "ABCDEF012345670000000025",
    "State": "Tracked",
    "GrowthPhase": "Vegetative",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 1,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 1,
    "PlantBatchTypeName": "Seed",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": null,
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/flowering

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of flowering plants.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v1/flowering?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 10011,
    "Label": "ABCDEF012345670000010011",
    "State": "Tracked",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 10012,
    "Label": "ABCDEF012345670000010012",
    "State": "Tracked",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/onhold

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of plants on hold.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v1/onhold?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 10011,
    "Label": "ABCDEF012345670000010011",
    "State": "Tracked",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": true,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 10012,
    "Label": "ABCDEF012345670000010012",
    "State": "Tracked",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": null,
    "HarvestedUnitOfWeightName": null,
    "HarvestedUnitOfWeightAbbreviation": null,
    "HarvestedWetWeight": null,
    "HarvestCount": 0,
    "IsOnHold": true,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": null,
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/inactive

Permissions Required

View Veg/Flower Plants

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive plants.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v1/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 10021,
    "Label": "ABCDEF012345670000010021",
    "State": "Harvested",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": 2,
    "HarvestedUnitOfWeightName": "Ounces",
    "HarvestedUnitOfWeightAbbreviation": "oz",
    "HarvestedWetWeight": 1.0,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": "2014-11-19",
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 10022,
    "Label": "ABCDEF012345670000010022",
    "State": "Harvested",
    "GrowthPhase": "Flowering",
    "GroupTagTypeMax": 0,
    "TagTypeMax": 0,
    "PlantBatchId": 2,
    "PlantBatchName": "Demo Plant Batch",
    "PlantBatchTypeId": 2,
    "PlantBatchTypeName": "Clone",
    "StrainId": 1,
    "StrainName": "Spring Hill Kush",
    "LocationId": 2,
    "LocationName": "Plants Location",
    "LocationTypeName": null,
    "PatientLicenseNumber": null,
    "HarvestId": 2,
    "HarvestedUnitOfWeightName": "Ounces",
    "HarvestedUnitOfWeightAbbreviation": "oz",
    "HarvestedWetWeight": 1.0,
    "HarvestCount": 0,
    "IsOnHold": false,
    "IsOnTrip": false,
    "PlantedDate": "2014-10-10",
    "VegetativeDate": "2014-10-20",
    "FloweringDate": "2014-11-09",
    "HarvestedDate": "2014-11-19",
    "DestroyedDate": null,
    "DestroyedNote": null,
    "DestroyedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/additives

Permissions Required

View/Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /plants/v1/additives?licenseNumber=123-ABC&lastModifiedStart=2019-01-17T06:30:00Z&lastModifiedEnd=2019-01-17T17:30:00Z

Example Response

[
  {
    "AdditiveTypeName": null,
    "ProductTradeName": "Round-Down",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "MonSanta",
    "ApplicationDevice": "Spray",
    "AmountUnitOfMeasure": "Gallons",
    "TotalAmountApplied": 5.0,
    "PlantBatchId": null,
    "PlantBatchName": null,
    "PlantCount": 83
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/growthphases

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return the list of available Plant Growth Phases.

Example Request

GET /plants/v1/growthphases?licenseNumber=123-ABC

Example Response

[
  "Immature",
  "Vegetative",
  "Flowering"
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/additives/types

Permissions Required

Parameters

No parameters

Example Request

GET /plants/v1/additives/types

Example Response

[
  "Fertilizer",
  "Pesticide",
  "Other"
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/waste/methods/all

Permissions Required

None

Parameters

No parameters

Example Request

GET /plants/v1/waste/methods/all

Example Response

[
  {
    "Name": "Grinder",
    "ForPlants": true,
    "ForProductDestruction": false,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Name": "Compost",
    "ForPlants": true,
    "ForProductDestruction": false,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Name": "Incinerator",
    "ForPlants": false,
    "ForProductDestruction": true,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Plants

Server: https://api-mi.metrc.com/

GET /plants/v1/waste/reasons

Permissions Required

None

Parameters

licenseNumber

Example Request

GET /plants/v1/waste/reasons?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Contamination",
    "RequiresNote": false,
    "RequiresWasteWeight": true,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": true
  },
  {
    "Name": "Male Plants",
    "RequiresNote": false,
    "RequiresWasteWeight": false,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": false
  }
]

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/moveplants

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber

Example Request

POST /plants/v1/moveplants?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "Location": "Plants Location",
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "Location": "Plants Location",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/changegrowthphases

Permissions Required

View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber

Example Request

POST /plants/v1/changegrowthphases?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "NewTag": "ABCDEF012345670000020001",
    "GrowthPhase": "Flowering",
    "NewLocation": "Plants Location",
    "GrowthDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "NewTag": "ABCDEF012345670000020002",
    "GrowthPhase": "Vegetative",
    "NewLocation": "Harvest Location",
    "GrowthDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

DELETE /plants/v1/

Permissions Required

View Veg/Flower Plants
Destroy Veg/Flower Plants

Parameters

licenseNumber

Example Request

DELETE /plants/v1/?licenseNumber=123-ABC[
  {
    "Id": null,
    "Label": "ABCDEF012345670000000001",
    "WasteMethodName": "Compost",
    "WasteMaterialMixed": "Soil",
    "WasteWeight": 15.69,
    "WasteUnitOfMeasureName": "grams",
    "WasteReasonName": "Destroy",
    "Count": 0,
    "ReasonNote": "Had to go.",
    "ActualDate": "2015-12-15"
  },
  {
    "Id": 2,
    "Label": null,
    "WasteMethodName": "Grinder",
    "WasteMaterialMixed": "Soil",
    "WasteWeight": 15.69,
    "WasteUnitOfMeasureName": "grams",
    "WasteReasonName": "Destroy",
    "Count": 0,
    "ReasonNote": "Had to go.",
    "ActualDate": "2015-12-15"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/additives

Permissions Required

Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plants/v1/additives?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantLabels": [
      "ABCDEF012345670000010011",
      "ABCDEF012345670000010012"
    ],
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "PlantLabels": [
      "ABCDEF012345670000010013",
      "ABCDEF012345670000010014"
    ],
    "ActualDate": "2019-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/waste

Permissions Required

Manage Plants Waste

Parameters

licenseNumber

Example Request

POST /plants/v1/waste?licenseNumber=123-ABC[
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 15.69,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "LocationName": "Veg Room A",
    "WasteDate": "2017-01-31",
    "PlantLabels": []
  },
  {
    "WasteMethodName": "Clipping",
    "MixedMaterial": "Soil",
    "WasteWeight": 12.82,
    "UnitOfMeasureName": "grams",
    "ReasonName": "Trim",
    "Note": "",
    "LocationName": null,
    "WasteDate": "2017-01-31",
    "PlantLabels": [
      "ABCDEF012345670000000100",
      "ABCDEF012345670000000101"
    ]
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/additives/bylocation

Permissions Required

Manage Plants
Manage Plants Additives

Parameters

licenseNumber
The license number of the facility for which to record plant additives.

Example Request

POST /plants/v1/additives/bylocation?licenseNumber=123-ABC[
  {
    "AdditiveType": "Fertilizer",
    "ProductTradeName": "Wonder Sprout",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "LocationName": "Plants Location",
    "ActualDate": "2019-12-15"
  },
  {
    "AdditiveType": "Pesticide",
    "ProductTradeName": "Pure Triazine",
    "EpaRegistrationNumber": null,
    "ProductSupplier": "G Labs",
    "ApplicationDevice": "GreatDistributor 210lb",
    "TotalAmountApplied": 5.0,
    "TotalAmountUnitOfMeasure": "Gallons",
    "ActiveIngredients": [
      {
        "Name": "Phosphorous",
        "Percentage": 30.0
      },
      {
        "Name": "Nitrogen",
        "Percentage": 15.0
      },
      {
        "Name": "Potassium",
        "Percentage": 15.0
      }
    ],
    "LocationName": "Plants Location",
    "ActualDate": "2019-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/create/plantings

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory

Parameters

licenseNumber

Example Request

POST /plants/v1/create/plantings?licenseNumber=123-ABC[
  {
    "PlantLabel": "ABCDEF012345670000010011",
    "PlantBatchName": "Demo Plant Batch 1",
    "PlantBatchType": "Clone",
    "PlantCount": 3,
    "LocationName": null,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2016-10-18T13:11:03Z"
  },
  {
    "PlantLabel": "ABCDEF012345670000010012",
    "PlantBatchName": "Demo Plant Batch 2",
    "PlantBatchType": "Seed",
    "PlantCount": 2,
    "LocationName": null,
    "StrainName": "Spring Hill Kush",
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2016-10-18T13:11:03Z"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/create/plantbatch/packages

Permissions Required

View Immature Plants
Manage Immature Plants Inventory
View Veg/Flower Plants
Manage Veg/Flower Plants Inventory
View Packages
Create/Submit/Discontinue Packages

Parameters

licenseNumber

Example Request

POST /plants/v1/create/plantbatch/packages?licenseNumber=123-ABC[
  {
    "PlantLabel": "ABCDEF012345670000000011",
    "PackageTag": "ABCDEF012345670000010011",
    "PlantBatchType": "Clone",
    "Item": "Blue Dream Clones",
    "Location": null,
    "Note": null,
    "IsTradeSample": false,
    "PatientLicenseNumber": null,
    "IsDonation": false,
    "Count": 25,
    "ActualDate": "2020-01-15T12:25:43Z"
  },
  {
    "PlantLabel": "ABCDEF012345670000000012",
    "PackageTag": "ABCDEF012345670000010013",
    "PlantBatchType": "Seed",
    "Item": "Blue Dream Seeds",
    "Location": "Package Room 1",
    "Note": null,
    "IsTradeSample": false,
    "PatientLicenseNumber": null,
    "IsDonation": false,
    "Count": 25,
    "ActualDate": "2020-01-15T12:36:32Z"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/manicureplants

Permissions Required

View Veg/Flower Plants
Manicure/Harvest Veg/Flower Plants

Parameters

licenseNumber

Example Request

POST /plants/v1/manicureplants?licenseNumber=123-ABC[
  {
    "Plant": "ABCDEF012345670000000001",
    "Weight": 100.23,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Plants Location",
    "HarvestName": null,
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15"
  },
  {
    "Plant": "ABCDEF012345670000000001",
    "Weight": 50.10,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Plants Location",
    "HarvestName": "2015-12-15-Harvest Location-M",
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Plants

Server: https://api-mi.metrc.com/

POST /plants/v1/harvestplants

Permissions Required

View Veg/Flower Plants
Manicure/Harvest Veg/Flower Plants

Parameters

licenseNumber

Example Request

POST /plants/v1/harvestplants?licenseNumber=123-ABC[
  {
    "Plant": "ABCDEF012345670000010011",
    "Weight": 100.23,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Harvest Location",
    "HarvestName": "2015-12-15-Harvest Location-H",
    "PatientLicenseNumber": "X00001",
    "ActualDate": "2015-12-15"
  },
  {
    "Plant": "ABCDEF012345670000010012",
    "Weight": 10.15,
    "UnitOfWeight": "Grams",
    "DryingLocation": "Harvest Location",
    "HarvestName": null,
    "PatientLicenseNumber": "X00002",
    "ActualDate": "2015-12-15"
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/customertypes

Permissions Required

None

Parameters

No parameters

Example Request

GET /sales/v2/customertypes

Example Response

[
  "Consumer",
  "Patient",
  "Caregiver",
  "ExternalPatient"
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/patientregistration/locations

Permissions Required

Parameters

No parameters

Example Request

GET /sales/v2/patientregistration/locations

Example Response

[
  {
    "Id": 4,
    "Name": "District of Columbia"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/{id}

Permissions Required

View Sales Delivery
Manage Sales Delivery

Parameters

licenseNumber
optional
If specified, the Sales Delivery will be validated against the specified License Number. If not specified, the Sales Delivery will be validated against all of the User's current Facilities. Please note that if the Sales Delivery is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v2/deliveries/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "DeliveryNumber": null,
  "FacilityLicenseNumber": null,
  "FacilityName": null,
  "TransporterFacilityId": null,
  "TransporterFacilityLicenseNumber": null,
  "TransporterFacilityName": null,
  "SalesDateTime": "2016-01-01T17:35:45.000",
  "SalesCustomerType": "Consumer",
  "PatientLicenseNumber": null,
  "ConsumerId": "123ABC",
  "DriverEmployeeId": "1",
  "DriverName": "John Doe",
  "DriversLicenseNumber": "1",
  "VehicleMake": "Car",
  "VehicleModel": "Small",
  "VehicleLicensePlateNumber": "000000",
  "RecipientName": null,
  "RecipientAddressStreet1": "1 Someplace Road",
  "RecipientAddressStreet2": "Ste 9",
  "RecipientAddressCity": "Denver",
  "RecipientAddressCounty": null,
  "RecipientAddressState": "CO",
  "RecipientAddressPostalCode": "11111",
  "PlannedRoute": "Drive to destination.",
  "Direction": "Undesignated",
  "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
  "ActualDepartureDateTime": null,
  "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
  "ActualArrivalDateTime": null,
  "EstimatedReturnDepartureDateTime": null,
  "ActualReturnDepartureDateTime": null,
  "EstimatedReturnArrivalDateTime": null,
  "ActualReturnArrivalDateTime": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "AcceptedDateTime": null,
  "Transactions": [],
  "CompletedDateTime": null,
  "SalesDeliveryState": "Undesignated",
  "VoidedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/active

Permissions Required

View Sales Delivery
Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to return the list of active deliveries.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v2/deliveries/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "456DEF",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "123ABC",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/inactive

Permissions Required

View Sales Delivery
Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive deliveries.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v2/deliveries/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "456DEF",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "123ABC",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/returnreasons

Permissions Required

Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to return the list of delivery return reasons.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /sales/v2/deliveries/returnreasons?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Spoilage",
      "RequiresNote": false,
      "RequiresWasteWeight": false,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": false
    },
    {
      "Name": "Theft",
      "RequiresNote": false,
      "RequiresWasteWeight": false,
      "RequiresImmatureWasteWeight": false,
      "RequiresMatureWasteWeight": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/counties

Permissions Required

None

Parameters

No parameters

Example Request

GET /sales/v2/counties

Example Response

{
  "Data": [
    {
      "Id": 1,
      "Name": "Los Angeles County"
    },
    {
      "Id": 2,
      "Name": "Sacramento County"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/paymenttypes

Permissions Required

View Sales Delivery
Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to return the list of payment types.

Example Request

GET /sales/v2/paymenttypes?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/receipts/{id}

Permissions Required

View Sales
Manage Sales

Parameters

licenseNumber
optional
If specified, the Sales Receipt will be validated against the specified License Number. If not specified, the Sales Receipt will be validated against all of the User's current Facilities. Please note that if the Sales Receipt is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v2/receipts/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "ReceiptNumber": null,
  "ExternalReceiptNumber": "ABC-123",
  "SalesDateTime": "2016-01-01T17:35:45.000",
  "SalesCustomerType": "Consumer",
  "PatientLicenseNumber": null,
  "CaregiverLicenseNumber": null,
  "IdentificationMethod": null,
  "PatientRegistrationLocationId": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "Transactions": [],
  "IsFinal": false,
  "ArchivedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/receipts/external/{externalNumber}

Permissions Required

View Sales
Manage Sales

Parameters

licenseNumber
optional
If specified, the External Sales Receipt Number will be validated against the specified License Number. If not specified, the External Sales Receipt Number will be validated against all of the User's current Facilities. Please note that if the External Sales Receipt Number is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v2/receipts/external/ABC-123?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 1,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-123",
    "SalesDateTime": "2016-01-01T17:35:45.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-124",
    "SalesDateTime": "2016-01-02T17:37:23.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/receipts/active

Permissions Required

View Sales
Manage Sales

Parameters

licenseNumber
The license number of the facility for which to return the list of active receipts.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v2/receipts/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ReceiptNumber": null,
      "ExternalReceiptNumber": "ABC-123",
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "CaregiverLicenseNumber": null,
      "IdentificationMethod": null,
      "PatientRegistrationLocationId": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "Transactions": [],
      "IsFinal": false,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "ReceiptNumber": null,
      "ExternalReceiptNumber": "ABC-124",
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "CaregiverLicenseNumber": null,
      "IdentificationMethod": null,
      "PatientRegistrationLocationId": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "Transactions": [],
      "IsFinal": false,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/receipts/inactive

Permissions Required

View Sales
Manage Sales

Parameters

licenseNumber
The license number of the facility for which to return the list of inactive receipts.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v2/receipts/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ReceiptNumber": null,
      "ExternalReceiptNumber": "ABC-123",
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "CaregiverLicenseNumber": null,
      "IdentificationMethod": null,
      "PatientRegistrationLocationId": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "Transactions": [],
      "IsFinal": false,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "ReceiptNumber": null,
      "ExternalReceiptNumber": "ABC-124",
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "CaregiverLicenseNumber": null,
      "IdentificationMethod": null,
      "PatientRegistrationLocationId": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "Transactions": [],
      "IsFinal": false,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to record deliveries.

Example Request

POST /sales/v2/deliveries?licenseNumber=123-ABC[
  {
    "TransporterFacilityLicenseNumber": "1",
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/receipts

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Sales

Parameters

licenseNumber
The license number of the facility for which to record receipts.

Example Request

POST /sales/v2/receipts?licenseNumber=123-ABC[
  {
    "SalesDateTime": "2016-10-04T16:44:53.000",
    "ExternalReceiptNumber": "ABC-1234",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000010331",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000010332",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/hub

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to update hub transporters.

Example Request

PUT /sales/v2/deliveries/hub?licenseNumber=123-ABC[
  {
    "Id": 6,
    "TransporterFacilityId": "Facility-1",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000"
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/hub/accept

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to update hub deliveries accepted.

Example Request

PUT /sales/v2/deliveries/hub/accept?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/complete

Permissions Required

Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to update deliveries completed.

Example Request

PUT /sales/v2/deliveries/complete?licenseNumber=123-ABC[
  {
    "Id": 6,
    "ActualArrivalDateTime": "2017-04-04T13:00:00.000",
    "PaymentType": null,
    "AcceptedPackages": [
      "ABCDEF012345670000000001"
    ],
    "ReturnedPackages": [
      {
        "Label": "ABCDEF012345670000000002",
        "ReturnQuantityVerified": 1.0,
        "ReturnUnitOfMeasure": "Ounces",
        "ReturnReason": "Spoilage",
        "ReturnReasonNote": ""
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/hub/depart

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to update hub delivery departures.

Example Request

PUT /sales/v2/deliveries/hub/depart?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/hub/verifyID

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to update hub delivery Id's.

Example Request

PUT /sales/v2/deliveries/hub/verifyID?licenseNumber=123-ABC[
  {
    "Id": 1,
    "PaymentType": "Cash"
  },
  {
    "Id": 2,
    "PaymentType": "Electronic"
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to update deliveries.

Example Request

PUT /sales/v2/deliveries?licenseNumber=123-ABC[
  {
    "Id": 6,
    "TransporterFacilityLicenseNumber": "1",
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/receipts

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Sales

Parameters

licenseNumber
The license number of the facility for which to update receipts.

Example Request

PUT /sales/v2/receipts?licenseNumber=123-ABC[
  {
    "Id": 51,
    "SalesDateTime": "2016-10-04T16:47:24.000",
    "ExternalReceiptNumber": "ABC-123",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000010331",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.98,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000010332",
        "Quantity": 2.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/receipts/finalize

Permissions Required

Manage Sales

Parameters

licenseNumber
The license number of the facility for which to update finalized receipts.

Example Request

PUT /sales/v2/receipts/finalize?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/receipts/unfinalize

Permissions Required

Manage Sales

Parameters

licenseNumber
The license number of the facility for which to update unfinalized receipts.

Example Request

PUT /sales/v2/receipts/unfinalize?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v2/deliveries/{id}

Permissions Required

Manage Sales Delivery

Parameters

licenseNumber
The license number of the facility for which to void delivery.

Example Request

DELETE /sales/v2/deliveries/1?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v2/receipts/{id}

Permissions Required

Manage Sales

Parameters

licenseNumber
The license number of the facility for which to archive receipt.

Example Request

DELETE /sales/v2/receipts/601?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/retailer/active

Permissions Required

View Retailer Delivery
Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to return active retailer deliveries.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp.
lastModifiedEnd
optional
The last modified end timestamp.

Example Request

GET /sales/v2/deliveries/retailer/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 5,
      "RetailerDeliveryNumber": "0000000005",
      "FacilityLicenseNumber": "050-X0001",
      "FacilityName": "Lofty Rec-Store",
      "DateTime": "2017-04-04T10:10:19.000",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "VehicleInfo": "Car Small 000000",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "RestockDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "TotalPriceSold": 0.0,
      "AcceptedDateTime": null,
      "Destinations": [],
      "CompletedDateTime": null,
      "RetailerDeliveryState": "Undesignated",
      "AllowFullEdit": false,
      "Leg": 0,
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "Packages": []
    },
    {
      "Id": 2,
      "RetailerDeliveryNumber": "0000000002",
      "FacilityLicenseNumber": "050-X0001",
      "FacilityName": "Lofty Rec-Store",
      "DateTime": "2017-04-05T12:10:19.000",
      "DriverEmployeeId": "2",
      "DriverName": "Jane Doe",
      "DriversLicenseNumber": "4",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "VehicleInfo": "Car Small 000000",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "RestockDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "TotalPriceSold": 0.0,
      "AcceptedDateTime": null,
      "Destinations": [],
      "CompletedDateTime": null,
      "RetailerDeliveryState": "Undesignated",
      "AllowFullEdit": false,
      "Leg": 0,
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "Packages": []
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/retailer/inactive

Permissions Required

View Retailer Delivery
Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to return inactive retailer deliveries.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp.
lastModifiedEnd
optional
The last modified end timestamp.

Example Request

GET /sales/v2/deliveries/retailer/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 5,
      "RetailerDeliveryNumber": "0000000005",
      "FacilityLicenseNumber": "050-X0001",
      "FacilityName": "Lofty Rec-Store",
      "DateTime": "2017-04-04T10:10:19.000",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "VehicleInfo": "Car Small 000000",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "RestockDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "TotalPriceSold": 0.0,
      "AcceptedDateTime": null,
      "Destinations": [],
      "CompletedDateTime": null,
      "RetailerDeliveryState": "Undesignated",
      "AllowFullEdit": false,
      "Leg": 0,
      "VoidedDate": "2017-04-08",
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "Packages": []
    },
    {
      "Id": 2,
      "RetailerDeliveryNumber": "0000000002",
      "FacilityLicenseNumber": "050-X0001",
      "FacilityName": "Lofty Rec-Store",
      "DateTime": "2017-04-05T12:10:19.000",
      "DriverEmployeeId": "2",
      "DriverName": "Jane Doe",
      "DriversLicenseNumber": "4",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "VehicleInfo": "Car Small 000000",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "RestockDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "TotalPriceSold": 0.0,
      "AcceptedDateTime": null,
      "Destinations": [],
      "CompletedDateTime": "2017-04-08T00:00:00-04:00",
      "RetailerDeliveryState": "Undesignated",
      "AllowFullEdit": false,
      "Leg": 0,
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "Packages": []
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v2/deliveries/retailer/{id}

Permissions Required

View Retailer Delivery
Manage Retailer Delivery

Parameters

licenseNumber
optional
If specified, the Sales Delivery will be validated against the specified License Number. If not specified, the Sales Delivery will be validated against all of the User's current Facilities. Please note that if the Sales Delivery is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v2/deliveries/retailer/1?licenseNumber=123-ABC

Example Response

{
  "Id": 5,
  "RetailerDeliveryNumber": "0000000005",
  "FacilityLicenseNumber": "050-X0001",
  "FacilityName": "Lofty Rec-Store",
  "DateTime": "2017-04-04T10:10:19.000",
  "DriverEmployeeId": "1",
  "DriverName": "John Doe",
  "DriversLicenseNumber": "1",
  "VehicleMake": "Car",
  "VehicleModel": "Small",
  "VehicleLicensePlateNumber": "000000",
  "VehicleInfo": "Car Small 000000",
  "Direction": "Undesignated",
  "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
  "ActualDepartureDateTime": null,
  "RestockDateTime": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "TotalPriceSold": 0.0,
  "AcceptedDateTime": null,
  "Destinations": [
    {
      "Id": 1,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "456DEF",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "123ABC",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "CompletedDateTime": null,
  "RetailerDeliveryState": "Undesignated",
  "AllowFullEdit": false,
  "Leg": 0,
  "VoidedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00",
  "Packages": [
    {
      "PackageId": 0,
      "PackageLabel": "ABCDEF012345670000000001",
      "ProductName": null,
      "ProductCategoryName": null,
      "ItemStrainName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "Quantity": 1.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": null,
      "TotalPrice": 9.99,
      "RetailerDeliveryState": null,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "CompletedDateTime": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ]
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries/retailer

Please note: The DateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to record retailer deliveries.

Example Request

POST /sales/v2/deliveries/retailer?licenseNumber=123-ABC[
  {
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": [
      {
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "456DEF",
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000001",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      },
      {
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "123ABC",
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000002",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      }
    ],
    "Packages": [
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      },
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v2/deliveries/retailer

Please note: The DateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to update retailer deliveries.

Example Request

PUT /sales/v2/deliveries/retailer?licenseNumber=123-ABC[
  {
    "Id": 5,
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": [
      {
        "Id": 1,
        "SalesDateTime": "0001-01-01T00:00:00.000",
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "456DEF",
        "DriverEmployeeId": null,
        "DriverName": null,
        "DriversLicenseNumber": null,
        "PhoneNumberForQuestions": null,
        "VehicleMake": null,
        "VehicleModel": null,
        "VehicleLicensePlateNumber": null,
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "PlannedRoute": null,
        "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000001",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      },
      {
        "Id": 2,
        "SalesDateTime": "0001-01-01T00:00:00.000",
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "123ABC",
        "DriverEmployeeId": null,
        "DriverName": null,
        "DriversLicenseNumber": null,
        "PhoneNumberForQuestions": null,
        "VehicleMake": null,
        "VehicleModel": null,
        "VehicleLicensePlateNumber": null,
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "PlannedRoute": null,
        "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000002",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      }
    ],
    "Packages": [
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      },
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v2/deliveries/retailer/{id}

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to void retailer delivery.

Example Request

DELETE /sales/v2/deliveries/retailer/1?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries/retailer/depart

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to record depart delivery.

Example Request

POST /sales/v2/deliveries/retailer/depart?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 6
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries/retailer/restock

Please note: The DateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to record restock retailer deliveries.

Example Request

POST /sales/v2/deliveries/retailer/restock?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 1,
    "DateTime": "2017-04-04T10:10:19.000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": null,
    "Packages": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99,
        "RemoveCurrentPackage": false
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99,
        "RemoveCurrentPackage": true
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries/retailer/sale

Please note: The SalesDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to record sale from retailer delivery.

Example Request

POST /sales/v2/deliveries/retailer/sale?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 1,
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v2/deliveries/retailer/end

Please note: The ActualArrivalDateTime field must be the actual date and time of the transaction without the time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be in Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Manage Retailer Delivery

Parameters

licenseNumber
The license number of the facility for which to record end retailer deliveries.

Example Request

POST /sales/v2/deliveries/retailer/end?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 6,
    "ActualArrivalDateTime": "2017-04-04T13:00:00.000",
    "Packages": [
      {
        "Label": "ABCDEF012345670000000002",
        "EndQuantity": 1.0,
        "EndUnitOfMeasure": "Ounces"
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/customertypes

Permissions Required

None

Parameters

No parameters

Example Request

GET /sales/v1/customertypes

Example Response

[
  "Consumer",
  "Patient",
  "Caregiver",
  "ExternalPatient"
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/patientregistration/locations

Permissions Required

Parameters

No parameters

Example Request

GET /sales/v1/patientregistration/locations

Example Response

[
  {
    "Id": 4,
    "Name": "District of Columbia"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/active

Permissions Required

Sales Delivery

Parameters

licenseNumber
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v1/deliveries/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "DeliveryNumber": null,
    "FacilityLicenseNumber": null,
    "FacilityName": null,
    "TransporterFacilityId": null,
    "TransporterFacilityLicenseNumber": null,
    "TransporterFacilityName": null,
    "SalesDateTime": "2016-01-01T17:35:45.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": "456DEF",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "ActualArrivalDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "AcceptedDateTime": null,
    "Transactions": [],
    "CompletedDateTime": null,
    "SalesDeliveryState": "Undesignated",
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "DeliveryNumber": null,
    "FacilityLicenseNumber": null,
    "FacilityName": null,
    "TransporterFacilityId": null,
    "TransporterFacilityLicenseNumber": null,
    "TransporterFacilityName": null,
    "SalesDateTime": "2016-01-02T17:37:23.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": "123ABC",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "ActualArrivalDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "AcceptedDateTime": null,
    "Transactions": [],
    "CompletedDateTime": null,
    "SalesDeliveryState": "Undesignated",
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/inactive

Permissions Required

Sales Delivery

Parameters

licenseNumber
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v1/deliveries/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "DeliveryNumber": null,
    "FacilityLicenseNumber": null,
    "FacilityName": null,
    "TransporterFacilityId": null,
    "TransporterFacilityLicenseNumber": null,
    "TransporterFacilityName": null,
    "SalesDateTime": "2016-01-01T17:35:45.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": "456DEF",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "ActualArrivalDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "AcceptedDateTime": null,
    "Transactions": [],
    "CompletedDateTime": null,
    "SalesDeliveryState": "Undesignated",
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "DeliveryNumber": null,
    "FacilityLicenseNumber": null,
    "FacilityName": null,
    "TransporterFacilityId": null,
    "TransporterFacilityLicenseNumber": null,
    "TransporterFacilityName": null,
    "SalesDateTime": "2016-01-02T17:37:23.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": "123ABC",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "ActualArrivalDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "AcceptedDateTime": null,
    "Transactions": [],
    "CompletedDateTime": null,
    "SalesDeliveryState": "Undesignated",
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/{id}

Permissions Required

Sales Delivery

Parameters

licenseNumber
optional
If specified, the Sales Delivery will be validated against the specified License Number. If not specified, the Sales Delivery will be validated against all of the User's current Facilities. Please note that if the Sales Delivery is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v1/deliveries/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "DeliveryNumber": null,
  "FacilityLicenseNumber": null,
  "FacilityName": null,
  "TransporterFacilityId": null,
  "TransporterFacilityLicenseNumber": null,
  "TransporterFacilityName": null,
  "SalesDateTime": "2016-01-01T17:35:45.000",
  "SalesCustomerType": "Consumer",
  "PatientLicenseNumber": null,
  "ConsumerId": "123ABC",
  "DriverEmployeeId": "1",
  "DriverName": "John Doe",
  "DriversLicenseNumber": "1",
  "VehicleMake": "Car",
  "VehicleModel": "Small",
  "VehicleLicensePlateNumber": "000000",
  "RecipientName": null,
  "RecipientAddressStreet1": "1 Someplace Road",
  "RecipientAddressStreet2": "Ste 9",
  "RecipientAddressCity": "Denver",
  "RecipientAddressCounty": null,
  "RecipientAddressState": "CO",
  "RecipientAddressPostalCode": "11111",
  "PlannedRoute": "Drive to destination.",
  "Direction": "Undesignated",
  "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
  "ActualDepartureDateTime": null,
  "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
  "ActualArrivalDateTime": null,
  "EstimatedReturnDepartureDateTime": null,
  "ActualReturnDepartureDateTime": null,
  "EstimatedReturnArrivalDateTime": null,
  "ActualReturnArrivalDateTime": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "AcceptedDateTime": null,
  "Transactions": [],
  "CompletedDateTime": null,
  "SalesDeliveryState": "Undesignated",
  "VoidedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/returnreasons

Permissions Required

Parameters

licenseNumber

Example Request

GET /sales/v1/deliveries/returnreasons?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Spoilage",
    "RequiresNote": false,
    "RequiresWasteWeight": false,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": false
  },
  {
    "Name": "Theft",
    "RequiresNote": false,
    "RequiresWasteWeight": false,
    "RequiresImmatureWasteWeight": false,
    "RequiresMatureWasteWeight": false
  }
]

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries?licenseNumber=123-ABC[
  {
    "TransporterFacilityLicenseNumber": "1",
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries?licenseNumber=123-ABC[
  {
    "Id": 6,
    "TransporterFacilityLicenseNumber": "1",
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/hub

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/hub?licenseNumber=123-ABC[
  {
    "Id": 6,
    "TransporterFacilityId": "Facility-1",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000"
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/hub/accept

Permissions Required

Sales

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/hub/accept?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/complete

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/complete?licenseNumber=123-ABC[
  {
    "Id": 6,
    "ActualArrivalDateTime": "2017-04-04T13:00:00.000",
    "PaymentType": null,
    "AcceptedPackages": [
      "ABCDEF012345670000000001"
    ],
    "ReturnedPackages": [
      {
        "Label": "ABCDEF012345670000000002",
        "ReturnQuantityVerified": 1.0,
        "ReturnUnitOfMeasure": "Ounces",
        "ReturnReason": "Spoilage",
        "ReturnReasonNote": ""
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/hub/depart

Permissions Required

Sales

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/hub/depart?licenseNumber=123-ABC[
  {
    "Id": 1
  },
  {
    "Id": 2
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/hub/verifyID

Permissions Required

Sales

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/hub/verifyID?licenseNumber=123-ABC[
  {
    "Id": 1,
    "PaymentType": "Cash"
  },
  {
    "Id": 2,
    "PaymentType": "Electronic"
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v1/deliveries/{id}

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

DELETE /sales/v1/deliveries/1?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/counties

Permissions Required

None

Parameters

No parameters

Example Request

GET /sales/v1/counties

Example Response

[
  {
    "Id": 1,
    "Name": "Los Angeles County"
  },
  {
    "Id": 2,
    "Name": "Sacramento County"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/paymenttypes

Permissions Required

Sales Delivery

Parameters

licenseNumber

Example Request

GET /sales/v1/paymenttypes?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/receipts/active

Permissions Required

Sales

Parameters

licenseNumber
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v1/receipts/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-123",
    "SalesDateTime": "2016-01-01T17:35:45.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-124",
    "SalesDateTime": "2016-01-02T17:37:23.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/receipts/inactive

Permissions Required

Sales

Parameters

licenseNumber
salesDateStart
optional
The sales date start timestamp. If specified, also specifying any of the last modified parameters will result in an error.
salesDateEnd
optional
The sales date end timestamp. If specified, also specifying any of the last modified parameters will result in an error.
lastModifiedStart
optional
The last modified start timestamp. If specified, also specifying any of the sales date parameters will result in an error.
lastModifiedEnd
optional
The last modified end timestamp. If specified, also specifying any of the sales date parameters will result in an error.

Example Request

GET /sales/v1/receipts/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-123",
    "SalesDateTime": "2016-01-01T17:35:45.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  },
  {
    "Id": 2,
    "ReceiptNumber": null,
    "ExternalReceiptNumber": "ABC-124",
    "SalesDateTime": "2016-01-02T17:37:23.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "Transactions": [],
    "IsFinal": false,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00"
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/receipts/{id}

Permissions Required

Sales

Parameters

licenseNumber
optional
If specified, the Sales Receipt will be validated against the specified License Number. If not specified, the Sales Receipt will be validated against all of the User's current Facilities. Please note that if the Sales Receipt is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v1/receipts/1?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "ReceiptNumber": null,
  "ExternalReceiptNumber": "ABC-123",
  "SalesDateTime": "2016-01-01T17:35:45.000",
  "SalesCustomerType": "Consumer",
  "PatientLicenseNumber": null,
  "CaregiverLicenseNumber": null,
  "IdentificationMethod": null,
  "PatientRegistrationLocationId": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "Transactions": [],
  "IsFinal": false,
  "ArchivedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00"
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/receipts

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Sales

Parameters

licenseNumber

Example Request

POST /sales/v1/receipts?licenseNumber=123-ABC[
  {
    "SalesDateTime": "2016-10-04T16:44:53.000",
    "ExternalReceiptNumber": "ABC-1234",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000010331",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000010332",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/receipts

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Sales

Parameters

licenseNumber

Example Request

PUT /sales/v1/receipts?licenseNumber=123-ABC[
  {
    "Id": 51,
    "SalesDateTime": "2016-10-04T16:47:24.000",
    "ExternalReceiptNumber": "ABC-123",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "CaregiverLicenseNumber": null,
    "IdentificationMethod": null,
    "PatientRegistrationLocationId": null,
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000010331",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.98,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000010332",
        "Quantity": 2.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v1/receipts/{id}

Permissions Required

Sales

Parameters

licenseNumber

Example Request

DELETE /sales/v1/receipts/601?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/transactions

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to return the list of dates with sales transactions.

Example Request

GET /sales/v1/transactions?licenseNumber=123-ABC

Example Response

[
  {
    "SalesDate": "2015-01-08",
    "TotalTransactions": 40,
    "TotalPackages": 40,
    "TotalPrice": 399.6
  },
  {
    "SalesDate": "2015-01-14",
    "TotalTransactions": 1,
    "TotalPackages": 1,
    "TotalPrice": 85.0
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/transactions/{salesDateStart}/{salesDateEnd}

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to return the list of sales transactions for the specified date range.

Example Request

GET /sales/v1/transactions/2015-01-08/2015-01-10?licenseNumber=123-ABC

Example Response

[
  {
    "PackageId": 71,
    "TripId": null,
    "TripManifestNumber": null,
    "PackageLabel": "ABCDEF012345670000010331",
    "ProductName": "Shake",
    "ProductCategoryName": null,
    "ItemStrainName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "QuantitySold": 1.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitWeight": null,
    "TotalPrice": 9.99,
    "SalesDeliveryState": null,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null
  },
  {
    "PackageId": 72,
    "TripId": null,
    "TripManifestNumber": null,
    "PackageLabel": "ABCDEF012345670000010332",
    "ProductName": "Shake",
    "ProductCategoryName": null,
    "ItemStrainName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "QuantitySold": 1.0,
    "UnitOfMeasureName": "Ounces",
    "UnitOfMeasureAbbreviation": "oz",
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitWeight": null,
    "TotalPrice": 9.99,
    "SalesDeliveryState": null,
    "ArchivedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null
  }
]

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/transactions/{date}

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to append the sales transactions on the specified date.

Example Request

POST /sales/v1/transactions/2015-01-08?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010331",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "TotalAmount": 9.99,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null,
    "QrCodes": null
  },
  {
    "PackageLabel": "ABCDEF012345670000010332",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "TotalAmount": 9.99,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null,
    "QrCodes": null
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/transactions/{date}

Permissions Required

Sales

Parameters

licenseNumber
The license number of the facility for which to update the sales transactions on the specified date.

Example Request

PUT /sales/v1/transactions/2015-01-08?licenseNumber=123-ABC[
  {
    "PackageLabel": "ABCDEF012345670000010331",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "TotalAmount": 9.99,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null,
    "QrCodes": null
  },
  {
    "PackageLabel": "ABCDEF012345670000010332",
    "Quantity": 1.0,
    "UnitOfMeasure": "Ounces",
    "TotalAmount": 9.99,
    "UnitThcPercent": null,
    "UnitThcContent": null,
    "UnitThcContentUnitOfMeasure": null,
    "UnitWeight": null,
    "UnitWeightUnitOfMeasure": null,
    "InvoiceNumber": null,
    "Price": null,
    "ExciseTax": null,
    "CityTax": null,
    "CountyTax": null,
    "MunicipalTax": null,
    "DiscountAmount": null,
    "SubTotal": null,
    "SalesTax": null,
    "QrCodes": null
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/retailer/active

Permissions Required

Retailer Delivery

Parameters

licenseNumber
lastModifiedStart
optional
The last modified start timestamp.
lastModifiedEnd
optional
The last modified end timestamp.

Example Request

GET /sales/v1/deliveries/retailer/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 5,
    "RetailerDeliveryNumber": "0000000005",
    "FacilityLicenseNumber": "050-X0001",
    "FacilityName": "Lofty Rec-Store",
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "VehicleInfo": "Car Small 000000",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "RestockDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "TotalPriceSold": 0.0,
    "AcceptedDateTime": null,
    "Destinations": [],
    "CompletedDateTime": null,
    "RetailerDeliveryState": "Undesignated",
    "AllowFullEdit": false,
    "Leg": 0,
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "Packages": []
  },
  {
    "Id": 2,
    "RetailerDeliveryNumber": "0000000002",
    "FacilityLicenseNumber": "050-X0001",
    "FacilityName": "Lofty Rec-Store",
    "DateTime": "2017-04-05T12:10:19.000",
    "DriverEmployeeId": "2",
    "DriverName": "Jane Doe",
    "DriversLicenseNumber": "4",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "VehicleInfo": "Car Small 000000",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "RestockDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "TotalPriceSold": 0.0,
    "AcceptedDateTime": null,
    "Destinations": [],
    "CompletedDateTime": null,
    "RetailerDeliveryState": "Undesignated",
    "AllowFullEdit": false,
    "Leg": 0,
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "Packages": []
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/retailer/inactive

Permissions Required

Retailer Delivery

Parameters

licenseNumber
lastModifiedStart
optional
The last modified start timestamp.
lastModifiedEnd
optional
The last modified end timestamp.

Example Request

GET /sales/v1/deliveries/retailer/inactive?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 5,
    "RetailerDeliveryNumber": "0000000005",
    "FacilityLicenseNumber": "050-X0001",
    "FacilityName": "Lofty Rec-Store",
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "VehicleInfo": "Car Small 000000",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "RestockDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "TotalPriceSold": 0.0,
    "AcceptedDateTime": null,
    "Destinations": [],
    "CompletedDateTime": null,
    "RetailerDeliveryState": "Undesignated",
    "AllowFullEdit": false,
    "Leg": 0,
    "VoidedDate": "2017-04-08",
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "Packages": []
  },
  {
    "Id": 2,
    "RetailerDeliveryNumber": "0000000002",
    "FacilityLicenseNumber": "050-X0001",
    "FacilityName": "Lofty Rec-Store",
    "DateTime": "2017-04-05T12:10:19.000",
    "DriverEmployeeId": "2",
    "DriverName": "Jane Doe",
    "DriversLicenseNumber": "4",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "VehicleInfo": "Car Small 000000",
    "Direction": "Undesignated",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "ActualDepartureDateTime": null,
    "RestockDateTime": null,
    "TotalPackages": 0,
    "TotalPrice": 0.0,
    "TotalPriceSold": 0.0,
    "AcceptedDateTime": null,
    "Destinations": [],
    "CompletedDateTime": "2017-04-08T00:00:00-04:00",
    "RetailerDeliveryState": "Undesignated",
    "AllowFullEdit": false,
    "Leg": 0,
    "VoidedDate": null,
    "RecordedDateTime": "0001-01-01T00:00:00+00:00",
    "RecordedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "Packages": []
  }
]

Sales

Server: https://api-mi.metrc.com/

GET /sales/v1/deliveries/retailer/{id}

Permissions Required

Retailer Delivery

Parameters

licenseNumber
optional
If specified, the Sales Delivery will be validated against the specified License Number. If not specified, the Sales Delivery will be validated against all of the User's current Facilities. Please note that if the Sales Delivery is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /sales/v1/deliveries/retailer/1?licenseNumber=123-ABC

Example Response

{
  "Id": 5,
  "RetailerDeliveryNumber": "0000000005",
  "FacilityLicenseNumber": "050-X0001",
  "FacilityName": "Lofty Rec-Store",
  "DateTime": "2017-04-04T10:10:19.000",
  "DriverEmployeeId": "1",
  "DriverName": "John Doe",
  "DriversLicenseNumber": "1",
  "VehicleMake": "Car",
  "VehicleModel": "Small",
  "VehicleLicensePlateNumber": "000000",
  "VehicleInfo": "Car Small 000000",
  "Direction": "Undesignated",
  "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
  "ActualDepartureDateTime": null,
  "RestockDateTime": null,
  "TotalPackages": 0,
  "TotalPrice": 0.0,
  "TotalPriceSold": 0.0,
  "AcceptedDateTime": null,
  "Destinations": [
    {
      "Id": 1,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-01T17:35:45.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "456DEF",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    },
    {
      "Id": 2,
      "DeliveryNumber": null,
      "FacilityLicenseNumber": null,
      "FacilityName": null,
      "TransporterFacilityId": null,
      "TransporterFacilityLicenseNumber": null,
      "TransporterFacilityName": null,
      "SalesDateTime": "2016-01-02T17:37:23.000",
      "SalesCustomerType": "Consumer",
      "PatientLicenseNumber": null,
      "ConsumerId": "123ABC",
      "DriverEmployeeId": "1",
      "DriverName": "John Doe",
      "DriversLicenseNumber": "1",
      "VehicleMake": "Car",
      "VehicleModel": "Small",
      "VehicleLicensePlateNumber": "000000",
      "RecipientName": null,
      "RecipientAddressStreet1": "1 Someplace Road",
      "RecipientAddressStreet2": "Ste 9",
      "RecipientAddressCity": "Denver",
      "RecipientAddressCounty": null,
      "RecipientAddressState": "CO",
      "RecipientAddressPostalCode": "11111",
      "PlannedRoute": "Drive to destination.",
      "Direction": "Undesignated",
      "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
      "ActualArrivalDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "TotalPackages": 0,
      "TotalPrice": 0.0,
      "AcceptedDateTime": null,
      "Transactions": [],
      "CompletedDateTime": null,
      "SalesDeliveryState": "Undesignated",
      "VoidedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ],
  "CompletedDateTime": null,
  "RetailerDeliveryState": "Undesignated",
  "AllowFullEdit": false,
  "Leg": 0,
  "VoidedDate": null,
  "RecordedDateTime": "0001-01-01T00:00:00+00:00",
  "RecordedByUserName": null,
  "LastModified": "0001-01-01T00:00:00+00:00",
  "Packages": [
    {
      "PackageId": 0,
      "PackageLabel": "ABCDEF012345670000000001",
      "ProductName": null,
      "ProductCategoryName": null,
      "ItemStrainName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "Quantity": 1.0,
      "UnitOfMeasureName": "Ounces",
      "UnitOfMeasureAbbreviation": null,
      "TotalPrice": 9.99,
      "RetailerDeliveryState": null,
      "ArchivedDate": null,
      "RecordedDateTime": "0001-01-01T00:00:00+00:00",
      "RecordedByUserName": null,
      "CompletedDateTime": null,
      "LastModified": "0001-01-01T00:00:00+00:00"
    }
  ]
}

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries/retailer

Please note: The DateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries/retailer?licenseNumber=123-ABC[
  {
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": [
      {
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "456DEF",
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000001",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      },
      {
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "123ABC",
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000002",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      }
    ],
    "Packages": [
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      },
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

PUT /sales/v1/deliveries/retailer

Please note: The DateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

PUT /sales/v1/deliveries/retailer?licenseNumber=123-ABC[
  {
    "Id": 5,
    "DateTime": "2017-04-04T10:10:19.000",
    "DriverEmployeeId": "1",
    "DriverName": "John Doe",
    "DriversLicenseNumber": "1",
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "VehicleMake": "Car",
    "VehicleModel": "Small",
    "VehicleLicensePlateNumber": "000000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": [
      {
        "Id": 1,
        "SalesDateTime": "0001-01-01T00:00:00.000",
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "456DEF",
        "DriverEmployeeId": null,
        "DriverName": null,
        "DriversLicenseNumber": null,
        "PhoneNumberForQuestions": null,
        "VehicleMake": null,
        "VehicleModel": null,
        "VehicleLicensePlateNumber": null,
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "PlannedRoute": null,
        "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000001",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      },
      {
        "Id": 2,
        "SalesDateTime": "0001-01-01T00:00:00.000",
        "SalesCustomerType": "Consumer",
        "PatientLicenseNumber": null,
        "ConsumerId": "123ABC",
        "DriverEmployeeId": null,
        "DriverName": null,
        "DriversLicenseNumber": null,
        "PhoneNumberForQuestions": null,
        "VehicleMake": null,
        "VehicleModel": null,
        "VehicleLicensePlateNumber": null,
        "RecipientName": null,
        "RecipientAddressStreet1": "1 Someplace Road",
        "RecipientAddressStreet2": "Ste 9",
        "RecipientAddressCity": "Denver",
        "RecipientAddressCounty": null,
        "RecipientAddressState": "CO",
        "RecipientAddressPostalCode": "11111",
        "PlannedRoute": null,
        "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
        "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
        "Transactions": [
          {
            "PackageLabel": "ABCDEF012345670000000002",
            "Quantity": 1.0,
            "UnitOfMeasure": "Ounces",
            "TotalAmount": 9.99,
            "UnitThcPercent": null,
            "UnitThcContent": null,
            "UnitThcContentUnitOfMeasure": null,
            "UnitWeight": null,
            "UnitWeightUnitOfMeasure": null,
            "InvoiceNumber": null,
            "Price": null,
            "ExciseTax": null,
            "CityTax": null,
            "CountyTax": null,
            "MunicipalTax": null,
            "DiscountAmount": null,
            "SubTotal": null,
            "SalesTax": null,
            "QrCodes": null
          }
        ]
      }
    ],
    "Packages": [
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      },
      {
        "DateTime": "0001-01-01T00:00:00Z",
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

DELETE /sales/v1/deliveries/retailer/{id}

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

DELETE /sales/v1/deliveries/retailer/1?licenseNumber=123-ABC

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries/retailer/depart

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries/retailer/depart?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 6
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries/retailer/restock

Please note: The DateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries/retailer/restock?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 1,
    "DateTime": "2017-04-04T10:10:19.000",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "Destinations": null,
    "Packages": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99,
        "RemoveCurrentPackage": false
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalPrice": 9.99,
        "RemoveCurrentPackage": true
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries/retailer/sale

Please note: The SalesDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries/retailer/sale?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 1,
    "SalesDateTime": "2017-04-04T10:10:19.000",
    "SalesCustomerType": "Consumer",
    "PatientLicenseNumber": null,
    "ConsumerId": null,
    "PhoneNumberForQuestions": "+1-123-456-7890",
    "RecipientName": null,
    "RecipientAddressStreet1": "1 Someplace Road",
    "RecipientAddressStreet2": "Ste 9",
    "RecipientAddressCity": "Denver",
    "RecipientAddressCounty": null,
    "RecipientAddressState": "CO",
    "RecipientAddressPostalCode": "11111",
    "PlannedRoute": "Drive to destination.",
    "EstimatedDepartureDateTime": "2017-04-04T11:00:00.000",
    "EstimatedArrivalDateTime": "2017-04-04T13:00:00.000",
    "Transactions": [
      {
        "PackageLabel": "ABCDEF012345670000000001",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      },
      {
        "PackageLabel": "ABCDEF012345670000000002",
        "Quantity": 1.0,
        "UnitOfMeasure": "Ounces",
        "TotalAmount": 9.99,
        "UnitThcPercent": null,
        "UnitThcContent": null,
        "UnitThcContentUnitOfMeasure": null,
        "UnitWeight": null,
        "UnitWeightUnitOfMeasure": null,
        "InvoiceNumber": null,
        "Price": null,
        "ExciseTax": null,
        "CityTax": null,
        "CountyTax": null,
        "MunicipalTax": null,
        "DiscountAmount": null,
        "SubTotal": null,
        "SalesTax": null,
        "QrCodes": null
      }
    ]
  }
]

Example Response

No response

Sales

Server: https://api-mi.metrc.com/

POST /sales/v1/deliveries/retailer/end

Please note: The ActualArrivalDateTime field must be the actual date and time of the transaction without time zone. This date/time must already be in the same time zone as the Facility recording the sales. For example, if the Facility is in Pacific Time, then this time must be Pacific Standard (or Daylight Savings) Time and not in UTC.

Permissions Required

Retailer Delivery

Parameters

licenseNumber

Example Request

POST /sales/v1/deliveries/retailer/end?licenseNumber=123-ABC[
  {
    "RetailerDeliveryId": 6,
    "ActualArrivalDateTime": "2017-04-04T13:00:00.000",
    "Packages": [
      {
        "Label": "ABCDEF012345670000000002",
        "EndQuantity": 1.0,
        "EndUnitOfMeasure": "Ounces"
      }
    ]
  }
]

Example Response

No response

Strains

Server: https://api-mi.metrc.com/

GET /strains/v2/{id}

Permissions Required

Manage Strains

Parameters

licenseNumber
optional
If specified, the Strain will be validated against the specified License Number. If not specified, the Strain will be validated against all of the User's current Facilities. Please note that if the Strain is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /strains/v2/201?licenseNumber=123-ABC

Example Response

{
  "Id": 201,
  "Name": "Spring Hill Kush",
  "TestingStatus": "ThirdParty",
  "ThcLevel": null,
  "CbdLevel": null,
  "IndicaPercentage": 60.0,
  "SativaPercentage": 40.0,
  "IsUsed": false,
  "Genetics": "60% Indica / 40% Sativa"
}

Strains

Server: https://api-mi.metrc.com/

GET /strains/v2/active

Permissions Required

Manage Strains

Parameters

licenseNumber
The license number of the facility for which to return the list of active strains.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /strains/v2/active?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 201,
      "Name": "Spring Hill Kush",
      "TestingStatus": "ThirdParty",
      "ThcLevel": null,
      "CbdLevel": null,
      "IndicaPercentage": 60.0,
      "SativaPercentage": 40.0,
      "IsUsed": false,
      "Genetics": "60% Indica / 40% Sativa"
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Strains

Server: https://api-mi.metrc.com/

GET /strains/v2/inactive

Permissions Required

Manage Strains

Parameters

licenseNumber
The License Number of the Facility for which to return the list of inactive Strains.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /strains/v2/inactive?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 201,
      "Name": "Spring Hill Kush",
      "TestingStatus": "ThirdParty",
      "ThcLevel": null,
      "CbdLevel": null,
      "IndicaPercentage": 60.0,
      "SativaPercentage": 40.0,
      "IsUsed": false,
      "Genetics": "60% Indica / 40% Sativa"
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Strains

Server: https://api-mi.metrc.com/

POST /strains/v2/

Permissions Required

Manage Strains

Parameters

licenseNumber
The License Number of the Facility for which to record the list of Strains.

Example Request

POST /strains/v2/?licenseNumber=123-ABC[
  {
    "Name": "Spring Hill Kush",
    "TestingStatus": "None",
    "ThcLevel": 0.1865,
    "CbdLevel": 0.1075,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  },
  {
    "Name": "TN Orange Dream",
    "TestingStatus": "None",
    "ThcLevel": 0.075,
    "CbdLevel": 0.14,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Strains

Server: https://api-mi.metrc.com/

PUT /strains/v2/

Permissions Required

Manage Strains

Parameters

licenseNumber
The License Number of the Facility for which to update the list of Strains.

Example Request

PUT /strains/v2/?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": "Spring Hill Kush",
    "TestingStatus": "InHouse",
    "ThcLevel": 0.1865,
    "CbdLevel": 0.1075,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  },
  {
    "Id": 2,
    "Name": "TN Orange Dream",
    "TestingStatus": "ThirdParty",
    "ThcLevel": 0.075,
    "CbdLevel": 0.14,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  }
]

Example Response

No response

Strains

Server: https://api-mi.metrc.com/

DELETE /strains/v2/{id}

Permissions Required

Manage Strains

Parameters

licenseNumber
The License Number of the Facility for which Strain to delete.

Example Request

DELETE /strains/v2/1?licenseNumber=123-ABC

Example Response

No response

Strains

Server: https://api-mi.metrc.com/

GET /strains/v1/{id}

Permissions Required

Manage Strains

Parameters

licenseNumber
optional
If specified, the Strain will be validated against the specified License Number. If not specified, the Strain will be validated against all of the User's current Facilities. Please note that if the Strain is not valid for the specified License Number, a 401 Unauthorized status will be returned.

Example Request

GET /strains/v1/201?licenseNumber=123-ABC

Example Response

{
  "Id": 201,
  "Name": "Spring Hill Kush",
  "TestingStatus": "ThirdParty",
  "ThcLevel": null,
  "CbdLevel": null,
  "IndicaPercentage": 60.0,
  "SativaPercentage": 40.0,
  "IsUsed": false,
  "Genetics": "60% Indica / 40% Sativa"
}

Strains

Server: https://api-mi.metrc.com/

GET /strains/v1/active

Permissions Required

Manage Strains

Parameters

licenseNumber
The license number of the facility for which to return the list of active strains.

Example Request

GET /strains/v1/active?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 201,
    "Name": "Spring Hill Kush",
    "TestingStatus": "ThirdParty",
    "ThcLevel": null,
    "CbdLevel": null,
    "IndicaPercentage": 60.0,
    "SativaPercentage": 40.0,
    "IsUsed": false,
    "Genetics": "60% Indica / 40% Sativa"
  }
]

Strains

Server: https://api-mi.metrc.com/

POST /strains/v1/create

Permissions Required

Manage Strains

Parameters

licenseNumber

Example Request

POST /strains/v1/create?licenseNumber=123-ABC[
  {
    "Name": "Spring Hill Kush",
    "TestingStatus": "None",
    "ThcLevel": 0.1865,
    "CbdLevel": 0.1075,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  },
  {
    "Name": "TN Orange Dream",
    "TestingStatus": "None",
    "ThcLevel": 0.075,
    "CbdLevel": 0.14,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  }
]

Example Response

No response

Strains

Server: https://api-mi.metrc.com/

POST /strains/v1/update

Permissions Required

Manage Strains

Parameters

licenseNumber

Example Request

POST /strains/v1/update?licenseNumber=123-ABC[
  {
    "Id": 1,
    "Name": "Spring Hill Kush",
    "TestingStatus": "InHouse",
    "ThcLevel": 0.1865,
    "CbdLevel": 0.1075,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  },
  {
    "Id": 2,
    "Name": "TN Orange Dream",
    "TestingStatus": "ThirdParty",
    "ThcLevel": 0.075,
    "CbdLevel": 0.14,
    "IndicaPercentage": 25.0,
    "SativaPercentage": 75.0
  }
]

Example Response

No response

Strains

Server: https://api-mi.metrc.com/

DELETE /strains/v1/{id}

Permissions Required

Manage Strains

Parameters

licenseNumber

Example Request

DELETE /strains/v1/1?licenseNumber=123-ABC

Example Response

No response

Tags

Server: https://api-mi.metrc.com/

GET /tags/v2/plant/available

Returns a list of available Plant Tags. NOTE: This is a premium endpoint.

Permissions Required

None

Parameters

licenseNumber
The license number for which to return available tags.

Example Request

GET /tags/v2/plant/available?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 101,
    "GroupTagTypeName": null,
    "TagTypeName": null,
    "GroupTagTypeId": null,
    "TagTypeId": null,
    "TagInventoryTypeName": "MedicalPlant",
    "MaxGroupSize": 0,
    "FacilityId": 0,
    "Label": "ABCDEF012345670000010001"
  },
  {
    "Id": 102,
    "GroupTagTypeName": null,
    "TagTypeName": null,
    "GroupTagTypeId": null,
    "TagTypeId": null,
    "TagInventoryTypeName": "MedicalPlant",
    "MaxGroupSize": 0,
    "FacilityId": 0,
    "Label": "ABCDEF012345670000010002"
  }
]

Tags

Server: https://api-mi.metrc.com/

GET /tags/v2/package/available

Returns a list of available Package Tags. NOTE: This is a premium endpoint.

Permissions Required

None

Parameters

licenseNumber
The license number for which to return available package tags.

Example Request

GET /tags/v2/package/available?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 101,
    "GroupTagTypeName": null,
    "TagTypeName": null,
    "GroupTagTypeId": null,
    "TagTypeId": null,
    "TagInventoryTypeName": "MedicalPackage",
    "MaxGroupSize": 0,
    "FacilityId": 0,
    "Label": "ABCDEF012345670000010001"
  },
  {
    "Id": 102,
    "GroupTagTypeName": null,
    "TagTypeName": null,
    "GroupTagTypeId": null,
    "TagTypeId": null,
    "TagInventoryTypeName": "MedicalPackage",
    "MaxGroupSize": 0,
    "FacilityId": 0,
    "Label": "ABCDEF012345670000010002"
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/hub

Permissions Required

Manage Transfers
View Transfers

Parameters

licenseNumber
The license number of the facility for which to return shipment plans.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /transfers/v2/hub?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ManifestNumber": "0000000001",
      "ShipperFacilityLicenseNumber": "123-ABC",
      "ShipperFacilityName": "Lofty Med-Cultivation B",
      "DeliveryCount": 1,
      "ReceivedDeliveryCount": 0,
      "PackageCount": 7,
      "ReceivedPackageCount": 0,
      "IsVoided": false,
      "CreatedDateTime": "2016-10-10T08:20:45-04:00",
      "CreatedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "DeliveryId": 0,
      "RecipientFacilityLicenseNumber": null,
      "RecipientFacilityName": null,
      "ShipmentTypeName": null,
      "ShipmentTransactionType": 0,
      "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "0001-01-01T00:00:00.000",
      "ActualArrivalDateTime": null,
      "DeliveryPackageCount": 0,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "RejectedPackagesReturned": false,
      "TransporterFacilityLicenseNumber": "123-ABC",
      "TransporterFacilityName": "Lofty Med-Dispensary",
      "DriverName": "X",
      "DriverOccupationalLicenseNumber": "",
      "DriverVehicleLicenseNumber": "",
      "VehicleMake": "X",
      "VehicleModel": "X",
      "VehicleLicensePlateNumber": "X",
      "TransporterAcceptedDateTime": null,
      "IsLayover": false,
      "TransporterEstimatedDepartureDateTime": null,
      "TransporterActualDepartureDateTime": null,
      "TransporterEstimatedArrivalDateTime": null,
      "TransporterActualArrivalDateTime": null
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/incoming

Permissions Required

Manage Transfers
View Transfers

Parameters

licenseNumber
The license number of the facility for which to return incoming transfers.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /transfers/v2/incoming?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ManifestNumber": "0000000001",
      "ShipmentLicenseType": 0,
      "ShipperFacilityLicenseNumber": "123-ABC",
      "ShipperFacilityName": "Lofty Med-Cultivation B",
      "Name": null,
      "TransporterFacilityLicenseNumber": "123-BCD",
      "TransporterFacilityName": "Lofty Med-Dispensary",
      "DriverName": "X",
      "DriverOccupationalLicenseNumber": "",
      "DriverVehicleLicenseNumber": "",
      "VehicleMake": "X",
      "VehicleModel": "X",
      "VehicleLicensePlateNumber": "X",
      "DeliveryCount": 0,
      "ReceivedDeliveryCount": 0,
      "PackageCount": 7,
      "ReceivedPackageCount": 0,
      "ContainsPlantPackage": false,
      "ContainsProductPackage": false,
      "ContainsTradeSample": false,
      "ContainsDonation": false,
      "ContainsTestingSample": false,
      "ContainsProductRequiresRemediation": false,
      "ContainsRemediatedProductPackage": false,
      "IsVoided": false,
      "CreatedDateTime": "2016-10-10T08:20:45-04:00",
      "CreatedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "DeliveryId": 1,
      "RecipientFacilityLicenseNumber": "123-ABC",
      "RecipientFacilityName": "Lofty Med-Cultivation A",
      "ShipmentTypeName": "Transfer",
      "ShipmentTransactionType": "Standard",
      "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
      "ActualArrivalDateTime": null,
      "DeliveryPackageCount": 7,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/outgoing

Permissions Required

Manage Transfers
View Transfers

Parameters

licenseNumber
The license number of the facility for which to return outgoing transfers.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /transfers/v2/outgoing?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ManifestNumber": "0000000001",
      "ShipmentLicenseType": 0,
      "ShipperFacilityLicenseNumber": "123-ABC",
      "ShipperFacilityName": "Lofty Med-Cultivation B",
      "Name": null,
      "TransporterFacilityLicenseNumber": "123-BCD",
      "TransporterFacilityName": "Lofty Med-Dispensary",
      "DriverName": "X",
      "DriverOccupationalLicenseNumber": "",
      "DriverVehicleLicenseNumber": "",
      "VehicleMake": "X",
      "VehicleModel": "X",
      "VehicleLicensePlateNumber": "X",
      "DeliveryCount": 1,
      "ReceivedDeliveryCount": 0,
      "PackageCount": 7,
      "ReceivedPackageCount": 0,
      "ContainsPlantPackage": false,
      "ContainsProductPackage": false,
      "ContainsTradeSample": false,
      "ContainsDonation": false,
      "ContainsTestingSample": false,
      "ContainsProductRequiresRemediation": false,
      "ContainsRemediatedProductPackage": false,
      "IsVoided": false,
      "CreatedDateTime": "2016-10-10T08:20:45-04:00",
      "CreatedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "DeliveryId": 0,
      "RecipientFacilityLicenseNumber": null,
      "RecipientFacilityName": null,
      "ShipmentTypeName": null,
      "ShipmentTransactionType": null,
      "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "0001-01-01T00:00:00.000",
      "ActualArrivalDateTime": null,
      "DeliveryPackageCount": 0,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/rejected

Permissions Required

Manage Transfers
View Transfers

Parameters

licenseNumber
The license number of the facility for which to return rejected transfers.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/rejected?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 2,
      "ManifestNumber": "0000000002",
      "ShipmentLicenseType": 0,
      "ShipperFacilityLicenseNumber": "123-ABC",
      "ShipperFacilityName": "Lofty Med-Cultivation B",
      "Name": null,
      "TransporterFacilityLicenseNumber": "123-BCD",
      "TransporterFacilityName": "Lofty Med-Dispensary",
      "DriverName": "X",
      "DriverOccupationalLicenseNumber": "",
      "DriverVehicleLicenseNumber": "",
      "VehicleMake": "X",
      "VehicleModel": "X",
      "VehicleLicensePlateNumber": "X",
      "DeliveryCount": 0,
      "ReceivedDeliveryCount": 0,
      "PackageCount": 7,
      "ReceivedPackageCount": 6,
      "ContainsPlantPackage": false,
      "ContainsProductPackage": false,
      "ContainsTradeSample": false,
      "ContainsDonation": false,
      "ContainsTestingSample": false,
      "ContainsProductRequiresRemediation": false,
      "ContainsRemediatedProductPackage": false,
      "IsVoided": false,
      "CreatedDateTime": "2016-10-10T08:20:45-04:00",
      "CreatedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "DeliveryId": 2,
      "RecipientFacilityLicenseNumber": "123-ABC",
      "RecipientFacilityName": "Lofty Med-Cultivation A",
      "ShipmentTypeName": "Transfer",
      "ShipmentTransactionType": "Standard",
      "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
      "ActualArrivalDateTime": null,
      "DeliveryPackageCount": 7,
      "DeliveryReceivedPackageCount": 6,
      "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/{id}/deliveries

Please note: The {id} parameter above represents a Transfer ID.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/1&pageNumber=1&pageSize=10/deliveries

Example Response

{
  "Data": [
    {
      "Id": 1,
      "RecipientFacilityLicenseNumber": "123-ABC",
      "RecipientFacilityName": "Lofty Med-Cultivation A",
      "ShipmentTypeName": "Transfer",
      "ShipmentTransactionType": "Standard",
      "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
      "ActualArrivalDateTime": null,
      "GrossWeight": null,
      "GrossUnitOfWeightId": null,
      "GrossUnitOfWeightName": null,
      "PlannedRoute": "I will use this route.",
      "DeliveryPackageCount": 7,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "RejectedPackagesReturned": false
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/{id}/transporters

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/deliveries/1&pageNumber=1&pageSize=10/transporters

Example Response

{
  "Data": [
    {
      "TransporterFacilityLicenseNumber": "4a-X0001",
      "TransporterFacilityName": "Standard Cultivation Shipper",
      "TransporterDirection": "Undesignated"
    },
    {
      "TransporterFacilityLicenseNumber": "3a-X0001",
      "TransporterFacilityName": "Bulk Cultivation Shipper",
      "TransporterDirection": "Undesignated"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/{id}/transporters/details

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/deliveries/1&pageNumber=1&pageSize=10/transporters/details

Example Response

{
  "Data": [
    {
      "DriverName": "Lewis Hamilton",
      "DriverOccupationalLicenseNumber": "G1-302",
      "DriverVehicleLicenseNumber": "G2f-MFK",
      "DriverLayoverLeg": null,
      "VehicleMake": "McLaren",
      "VehicleModel": "F1",
      "VehicleLicensePlateNumber": "T00-F4ST",
      "ActualDriverStartDateTime": null
    },
    {
      "DriverName": "Michael Schumacher",
      "DriverOccupationalLicenseNumber": "XVG-A01",
      "DriverVehicleLicenseNumber": "MX1-00F",
      "DriverLayoverLeg": null,
      "VehicleMake": "Ferrari",
      "VehicleModel": "F1",
      "VehicleLicensePlateNumber": "3K3-GJK",
      "ActualDriverStartDateTime": null
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/{id}/packages

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/deliveries/2&pageNumber=1&pageSize=10/packages

Example Response

{
  "Data": [
    {
      "PackageId": 1,
      "PackageLabel": "ABCDEF012345670000010026",
      "PackageType": "Product",
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "ItemId": 0,
      "ItemName": "Buds",
      "ItemCategoryName": "Buds",
      "ItemStrainName": null,
      "ItemBrandName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "LabTestingState": "NotSubmitted",
      "ProductionBatchNumber": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ShipmentPackageState": "Accepted",
      "ShippedQuantity": 10.0,
      "ShippedUnitOfMeasureName": "Ounces",
      "GrossUnitOfWeightName": null,
      "ReceivedQuantity": 10.0,
      "ReceivedUnitOfMeasureName": "Ounces"
    },
    {
      "PackageId": 2,
      "PackageLabel": "ABCDEF012345670000010027",
      "PackageType": "Product",
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "ItemId": 0,
      "ItemName": "Buds",
      "ItemCategoryName": "Buds",
      "ItemStrainName": null,
      "ItemBrandName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "LabTestingState": "NotSubmitted",
      "ProductionBatchNumber": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ShipmentPackageState": "Rejected",
      "ShippedQuantity": 10.0,
      "ShippedUnitOfMeasureName": "Ounces",
      "GrossUnitOfWeightName": null,
      "ReceivedQuantity": null,
      "ReceivedUnitOfMeasureName": null
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/{id}/packages/wholesale

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/deliveries/2&pageNumber=1&pageSize=10/packages/wholesale

Example Response

{
  "Data": [
    {
      "PackageId": 1,
      "PackageLabel": "ABCDEF012345670000010026",
      "ShipperWholesalePrice": null,
      "ReceiverWholesalePrice": null
    },
    {
      "PackageId": 2,
      "PackageLabel": "ABCDEF012345670000010027",
      "ShipperWholesalePrice": 3.50,
      "ReceiverWholesalePrice": null
    },
    {
      "PackageId": 3,
      "PackageLabel": "ABCDEF012345670000010028",
      "ShipperWholesalePrice": 3.50,
      "ReceiverWholesalePrice": 3.50
    },
    {
      "PackageId": 4,
      "PackageLabel": "ABCDEF012345670000010029",
      "ShipperWholesalePrice": 3.50,
      "ReceiverWholesalePrice": 7.00
    }
  ],
  "Total": 4,
  "TotalRecords": 4,
  "PageSize": 4,
  "RecordsOnPage": 4,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/package/{id}/requiredlabtestbatches

Please note: The {id} parameter above represents a Transfer Delivery Package ID, not a Manifest Number.

Permissions Required

Manage Transfers
View Transfers

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/deliveries/package/2&pageNumber=1&pageSize=10/requiredlabtestbatches

Example Response

{
  "Data": [
    {
      "PackageId": 2,
      "LabTestBatchId": 1,
      "LabTestBatchName": "Cannabinoids"
    },
    {
      "PackageId": 2,
      "LabTestBatchId": 2,
      "LabTestBatchName": "Category I Residual Pesticides (required)"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/deliveries/packages/states

Permissions Required

None

Parameters

No parameters

Example Request

GET /transfers/v2/deliveries/packages/states

Example Response

[
  "Shipped",
  "Rejected",
  "Accepted",
  "Returned"
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/templates/outgoing

Permissions Required

Manage Transfer Templates
View Transfer Templates

Parameters

licenseNumber
The license number of the facility for which to return outgoing shipment templates.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

Example Request

GET /transfers/v2/templates/outgoing?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "ManifestNumber": null,
      "ShipmentLicenseType": 0,
      "ShipperFacilityLicenseNumber": "123-ABC",
      "ShipperFacilityName": "Lofty Med-Cultivation B",
      "Name": "Template 1",
      "TransporterFacilityLicenseNumber": "123-BCD",
      "TransporterFacilityName": "Lofty Med-Dispensary",
      "DriverName": "X",
      "DriverOccupationalLicenseNumber": "",
      "DriverVehicleLicenseNumber": "",
      "VehicleMake": "X",
      "VehicleModel": "X",
      "VehicleLicensePlateNumber": "X",
      "DeliveryCount": 1,
      "ReceivedDeliveryCount": 0,
      "PackageCount": 7,
      "ReceivedPackageCount": 0,
      "ContainsPlantPackage": false,
      "ContainsProductPackage": false,
      "ContainsTradeSample": false,
      "ContainsDonation": false,
      "ContainsTestingSample": false,
      "ContainsProductRequiresRemediation": false,
      "ContainsRemediatedProductPackage": false,
      "IsVoided": false,
      "CreatedDateTime": "2016-10-10T08:20:45-04:00",
      "CreatedByUserName": null,
      "LastModified": "0001-01-01T00:00:00+00:00",
      "DeliveryId": 0,
      "RecipientFacilityLicenseNumber": null,
      "RecipientFacilityName": null,
      "ShipmentTypeName": null,
      "ShipmentTransactionType": null,
      "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "0001-01-01T00:00:00.000",
      "ActualArrivalDateTime": null,
      "DeliveryPackageCount": 0,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": null,
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/templates/outgoing/{id}/deliveries

Permissions Required

Manage Transfer Templates
View Transfer Templates

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/templates/outgoing/1&pageNumber=1&pageSize=10/deliveries

Example Response

{
  "Data": [
    {
      "Id": 1,
      "RecipientFacilityLicenseNumber": "123-ABC",
      "RecipientFacilityName": "Lofty Med-Cultivation A",
      "ShipmentTypeName": "Transfer",
      "ShipmentTransactionType": "Standard",
      "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
      "ActualDepartureDateTime": null,
      "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
      "ActualArrivalDateTime": null,
      "GrossWeight": null,
      "GrossUnitOfWeightId": null,
      "GrossUnitOfWeightName": null,
      "PlannedRoute": "I will use this route.",
      "DeliveryPackageCount": 7,
      "DeliveryReceivedPackageCount": 0,
      "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
      "EstimatedReturnDepartureDateTime": null,
      "ActualReturnDepartureDateTime": null,
      "EstimatedReturnArrivalDateTime": null,
      "ActualReturnArrivalDateTime": null,
      "RejectedPackagesReturned": false
    }
  ],
  "Total": 1,
  "TotalRecords": 1,
  "PageSize": 1,
  "RecordsOnPage": 1,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfer Templates
View Transfer Templates

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/templates/outgoing/deliveries/1&pageNumber=1&pageSize=10/transporters

Example Response

{
  "Data": [
    {
      "TransporterFacilityLicenseNumber": "4a-X0001",
      "TransporterFacilityName": "Standard Cultivation Shipper",
      "TransporterDirection": "Undesignated"
    },
    {
      "TransporterFacilityLicenseNumber": "3a-X0001",
      "TransporterFacilityName": "Bulk Cultivation Shipper",
      "TransporterDirection": "Undesignated"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/templates/outgoing/deliveries/{id}/transporters/details

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfer Templates
View Transfer Templates

Parameters

No parameters

Example Request

GET /transfers/v2/templates/outgoing/deliveries/1/transporters/details

Example Response

[
  {
    "DriverName": "Lewis Hamilton",
    "DriverOccupationalLicenseNumber": "G1-302",
    "DriverVehicleLicenseNumber": "G2f-MFK",
    "DriverLayoverLeg": null,
    "VehicleMake": "McLaren",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "T00-F4ST",
    "ActualDriverStartDateTime": null
  },
  {
    "DriverName": "Michael Schumacher",
    "DriverOccupationalLicenseNumber": "XVG-A01",
    "DriverVehicleLicenseNumber": "MX1-00F",
    "DriverLayoverLeg": null,
    "VehicleMake": "Ferrari",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "3K3-GJK",
    "ActualDriverStartDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/templates/outgoing/deliveries/{id}/packages

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Manage Transfer Templates
View Transfer Templates

Parameters

pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/templates/outgoing/deliveries/2&pageNumber=1&pageSize=10/packages

Example Response

{
  "Data": [
    {
      "PackageId": 1,
      "PackageLabel": "ABCDEF012345670000010026",
      "PackageType": "Product",
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "ItemId": 0,
      "ItemName": "Buds",
      "ItemCategoryName": "Buds",
      "ItemStrainName": null,
      "ItemBrandName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "LabTestingState": "NotSubmitted",
      "ProductionBatchNumber": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ShipmentPackageState": "Accepted",
      "ShippedQuantity": 10.0,
      "ShippedUnitOfMeasureName": "Ounces",
      "GrossUnitOfWeightName": null,
      "ReceivedQuantity": 10.0,
      "ReceivedUnitOfMeasureName": "Ounces"
    },
    {
      "PackageId": 2,
      "PackageLabel": "ABCDEF012345670000010027",
      "PackageType": "Product",
      "SourceHarvestNames": null,
      "SourcePackageLabels": null,
      "ItemId": 0,
      "ItemName": "Buds",
      "ItemCategoryName": "Buds",
      "ItemStrainName": null,
      "ItemBrandName": null,
      "ItemUnitCbdPercent": null,
      "ItemUnitCbdContent": null,
      "ItemUnitCbdContentUnitOfMeasureName": null,
      "ItemUnitCbdContentDose": null,
      "ItemUnitCbdContentDoseUnitOfMeasureName": null,
      "ItemUnitThcPercent": null,
      "ItemUnitThcContent": null,
      "ItemUnitThcContentUnitOfMeasureName": null,
      "ItemUnitThcContentDose": null,
      "ItemUnitThcContentDoseUnitOfMeasureName": null,
      "ItemUnitVolume": null,
      "ItemUnitVolumeUnitOfMeasureName": null,
      "ItemUnitWeight": null,
      "ItemUnitWeightUnitOfMeasureName": null,
      "ItemServingSize": null,
      "ItemSupplyDurationDays": null,
      "ItemUnitQuantity": null,
      "ItemUnitQuantityUnitOfMeasureName": null,
      "LabTestingState": "NotSubmitted",
      "ProductionBatchNumber": null,
      "IsTradeSample": false,
      "IsTradeSamplePersistent": false,
      "SourcePackageIsTradeSample": false,
      "IsDonation": false,
      "SourcePackageIsDonation": false,
      "IsTestingSample": false,
      "ProductRequiresRemediation": false,
      "ContainsRemediatedProduct": false,
      "RemediationDate": null,
      "ShipmentPackageState": "Rejected",
      "ShippedQuantity": 10.0,
      "ShippedUnitOfMeasureName": "Ounces",
      "GrossUnitOfWeightName": null,
      "ReceivedQuantity": null,
      "ReceivedUnitOfMeasureName": null
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v2/types

Permissions Required

None

Parameters

licenseNumber
The license number of the facility for which to return transfer types.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transfers/v2/types?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Name": "Transfer",
      "TransactionType": "Standard",
      "ForLicensedShipments": true,
      "ForExternalIncomingShipments": false,
      "ForExternalOutgoingShipments": false,
      "RequiresDestinationGrossWeight": false,
      "RequiresPackagesGrossWeight": false
    },
    {
      "Name": "Wholesale",
      "TransactionType": "Wholesale",
      "ForLicensedShipments": true,
      "ForExternalIncomingShipments": false,
      "ForExternalOutgoingShipments": false,
      "RequiresDestinationGrossWeight": false,
      "RequiresPackagesGrossWeight": false
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transfers

Server: https://api-mi.metrc.com/

POST /transfers/v2/external/incoming

Permissions Required

Manage Transfers

Parameters

licenseNumber
The license number for which to create a shipment plan.

Example Request

POST /transfers/v2/external/incoming?licenseNumber=123-ABC[
  {
    "ShipperLicenseNumber": "123-ABC",
    "ShipperName": "Lofty Med-Cultivation B",
    "ShipperMainPhoneNumber": "123-456-7890",
    "ShipperAddress1": "123 Real Street",
    "ShipperAddress2": null,
    "ShipperAddressCity": "Somewhere",
    "ShipperAddressState": "CO",
    "ShipperAddressPostalCode": null,
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "GrossWeight": null,
        "GrossUnitOfWeightId": null,
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "FromAndToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": [
              {
                "DriverOccupationalLicenseNumber": "50",
                "DriverName": "X",
                "DriverLicenseNumber": "5",
                "DriverLayoverLeg": "FromLayover",
                "VehicleMake": "X",
                "VehicleModel": "X",
                "VehicleLicensePlateNumber": "X"
              }
            ]
          }
        ],
        "Packages": [
          {
            "ItemName": "Buds",
            "Quantity": 10.0,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-02-04T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          },
          {
            "ItemName": "Buds",
            "Quantity": 9.5,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-03-06T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Transfers

Server: https://api-mi.metrc.com/

POST /transfers/v2/templates/outgoing

Permissions Required

Manage Transfer Templates

Parameters

licenseNumber
The license number of the facility for which to create a shipment template.

Example Request

POST /transfers/v2/templates/outgoing?licenseNumber=123-ABC[
  {
    "Name": "Template 1",
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "FromAndToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": [
              {
                "DriverOccupationalLicenseNumber": "50",
                "DriverName": "X",
                "DriverLicenseNumber": "5",
                "DriverLayoverLeg": "FromLayover",
                "VehicleMake": "X",
                "VehicleModel": "X",
                "VehicleLicensePlateNumber": "X"
              }
            ]
          }
        ],
        "Packages": [
          {
            "PackageLabel": "ABCDEF012345670000010026",
            "WholesalePrice": null
          },
          {
            "PackageLabel": "ABCDEF012345670000010027",
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

{
  "Ids": [
    1
  ],
  "Warnings": null
}

Transfers

Server: https://api-mi.metrc.com/

PUT /transfers/v2/external/incoming

Permissions Required

Manage Transfers

Parameters

licenseNumber
The license number of the facility for which to update external incoming shipment plans.

Example Request

PUT /transfers/v2/external/incoming?licenseNumber=123-ABC[
  {
    "TransferId": 1,
    "ShipperLicenseNumber": "123-ABC",
    "ShipperName": "Lofty Med-Cultivation B",
    "ShipperMainPhoneNumber": null,
    "ShipperAddress1": null,
    "ShipperAddress2": null,
    "ShipperAddressCity": null,
    "ShipperAddressState": null,
    "ShipperAddressPostalCode": null,
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "TransferDestinationId": null,
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "GrossWeight": null,
        "GrossUnitOfWeightId": null,
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "FromAndToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": [
              {
                "DriverOccupationalLicenseNumber": "50",
                "DriverName": "X",
                "DriverLicenseNumber": "5",
                "DriverLayoverLeg": "FromLayover",
                "VehicleMake": "X",
                "VehicleModel": "X",
                "VehicleLicensePlateNumber": "X"
              }
            ]
          }
        ],
        "Packages": [
          {
            "ItemName": "Buds",
            "Quantity": 10.0,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-02-04T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          },
          {
            "ItemName": "Buds",
            "Quantity": 9.5,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-03-06T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

PUT /transfers/v2/templates/outgoing

Permissions Required

Manage Transfer Templates

Parameters

licenseNumber
The license number of the facility for which to update shipment plan templates.

Example Request

PUT /transfers/v2/templates/outgoing?licenseNumber=123-ABC[
  {
    "TransferTemplateId": 1,
    "Name": "Template 1",
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "TransferDestinationId": 0,
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "FromAndToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": [
              {
                "DriverOccupationalLicenseNumber": "50",
                "DriverName": "X",
                "DriverLicenseNumber": "5",
                "DriverLayoverLeg": "FromLayover",
                "VehicleMake": "X",
                "VehicleModel": "X",
                "VehicleLicensePlateNumber": "X"
              }
            ]
          }
        ],
        "Packages": [
          {
            "PackageLabel": "ABCDEF012345670000010026",
            "WholesalePrice": null
          },
          {
            "PackageLabel": "ABCDEF012345670000010027",
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

DELETE /transfers/v2/external/incoming/{id}

Permissions Required

Manage Transfers

Parameters

licenseNumber
The license number of the facility for which to void the transfer.

Example Request

DELETE /transfers/v2/external/incoming/1?licenseNumber=123-ABC

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

DELETE /transfers/v2/templates/outgoing/{id}

Permissions Required

Manage Transfer Templates

Parameters

licenseNumber
The license number of the facility for which to archive the template.

Example Request

DELETE /transfers/v2/templates/outgoing/1?licenseNumber=123-ABC

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/incoming

Permissions Required

Transfers

Parameters

licenseNumber
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/incoming?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "ManifestNumber": "0000000001",
    "ShipmentLicenseType": 0,
    "ShipperFacilityLicenseNumber": "123-ABC",
    "ShipperFacilityName": "Lofty Med-Cultivation B",
    "Name": null,
    "TransporterFacilityLicenseNumber": "123-BCD",
    "TransporterFacilityName": "Lofty Med-Dispensary",
    "DriverName": "X",
    "DriverOccupationalLicenseNumber": "",
    "DriverVehicleLicenseNumber": "",
    "VehicleMake": "X",
    "VehicleModel": "X",
    "VehicleLicensePlateNumber": "X",
    "DeliveryCount": 0,
    "ReceivedDeliveryCount": 0,
    "PackageCount": 7,
    "ReceivedPackageCount": 0,
    "ContainsPlantPackage": false,
    "ContainsProductPackage": false,
    "ContainsTradeSample": false,
    "ContainsDonation": false,
    "ContainsTestingSample": false,
    "ContainsProductRequiresRemediation": false,
    "ContainsRemediatedProductPackage": false,
    "IsVoided": false,
    "CreatedDateTime": "2016-10-10T08:20:45-04:00",
    "CreatedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "DeliveryId": 1,
    "RecipientFacilityLicenseNumber": "123-ABC",
    "RecipientFacilityName": "Lofty Med-Cultivation A",
    "ShipmentTypeName": "Transfer",
    "ShipmentTransactionType": "Standard",
    "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
    "ActualArrivalDateTime": null,
    "DeliveryPackageCount": 7,
    "DeliveryReceivedPackageCount": 0,
    "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/outgoing

Permissions Required

Transfers

Parameters

licenseNumber
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/outgoing?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "ManifestNumber": "0000000001",
    "ShipmentLicenseType": 0,
    "ShipperFacilityLicenseNumber": "123-ABC",
    "ShipperFacilityName": "Lofty Med-Cultivation B",
    "Name": null,
    "TransporterFacilityLicenseNumber": "123-BCD",
    "TransporterFacilityName": "Lofty Med-Dispensary",
    "DriverName": "X",
    "DriverOccupationalLicenseNumber": "",
    "DriverVehicleLicenseNumber": "",
    "VehicleMake": "X",
    "VehicleModel": "X",
    "VehicleLicensePlateNumber": "X",
    "DeliveryCount": 1,
    "ReceivedDeliveryCount": 0,
    "PackageCount": 7,
    "ReceivedPackageCount": 0,
    "ContainsPlantPackage": false,
    "ContainsProductPackage": false,
    "ContainsTradeSample": false,
    "ContainsDonation": false,
    "ContainsTestingSample": false,
    "ContainsProductRequiresRemediation": false,
    "ContainsRemediatedProductPackage": false,
    "IsVoided": false,
    "CreatedDateTime": "2016-10-10T08:20:45-04:00",
    "CreatedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "DeliveryId": 0,
    "RecipientFacilityLicenseNumber": null,
    "RecipientFacilityName": null,
    "ShipmentTypeName": null,
    "ShipmentTransactionType": null,
    "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "0001-01-01T00:00:00.000",
    "ActualArrivalDateTime": null,
    "DeliveryPackageCount": 0,
    "DeliveryReceivedPackageCount": 0,
    "ReceivedDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/rejected

Permissions Required

Transfers

Parameters

licenseNumber

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/rejected?licenseNumber=123-ABC

Example Response

[
  {
    "Id": 2,
    "ManifestNumber": "0000000002",
    "ShipmentLicenseType": 0,
    "ShipperFacilityLicenseNumber": "123-ABC",
    "ShipperFacilityName": "Lofty Med-Cultivation B",
    "Name": null,
    "TransporterFacilityLicenseNumber": "123-BCD",
    "TransporterFacilityName": "Lofty Med-Dispensary",
    "DriverName": "X",
    "DriverOccupationalLicenseNumber": "",
    "DriverVehicleLicenseNumber": "",
    "VehicleMake": "X",
    "VehicleModel": "X",
    "VehicleLicensePlateNumber": "X",
    "DeliveryCount": 0,
    "ReceivedDeliveryCount": 0,
    "PackageCount": 7,
    "ReceivedPackageCount": 6,
    "ContainsPlantPackage": false,
    "ContainsProductPackage": false,
    "ContainsTradeSample": false,
    "ContainsDonation": false,
    "ContainsTestingSample": false,
    "ContainsProductRequiresRemediation": false,
    "ContainsRemediatedProductPackage": false,
    "IsVoided": false,
    "CreatedDateTime": "2016-10-10T08:20:45-04:00",
    "CreatedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "DeliveryId": 2,
    "RecipientFacilityLicenseNumber": "123-ABC",
    "RecipientFacilityName": "Lofty Med-Cultivation A",
    "ShipmentTypeName": "Transfer",
    "ShipmentTransactionType": "Standard",
    "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
    "ActualArrivalDateTime": null,
    "DeliveryPackageCount": 7,
    "DeliveryReceivedPackageCount": 6,
    "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/{id}/deliveries

Please note: that the {id} parameter above represents a Shipment Plan ID.

Permissions Required

Transfers

Parameters

No parameters

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/1/deliveries

Example Response

[
  {
    "Id": 1,
    "RecipientFacilityLicenseNumber": "123-ABC",
    "RecipientFacilityName": "Lofty Med-Cultivation A",
    "ShipmentTypeName": "Transfer",
    "ShipmentTransactionType": "Standard",
    "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
    "ActualArrivalDateTime": null,
    "GrossWeight": null,
    "GrossUnitOfWeightId": null,
    "GrossUnitOfWeightName": null,
    "PlannedRoute": "I will use this route.",
    "DeliveryPackageCount": 7,
    "DeliveryReceivedPackageCount": 0,
    "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "RejectedPackagesReturned": false
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/{id}/transporters

Please note: that the {id} parameter above represents a Shipment Delivery ID.

Permissions Required

Transfers

Parameters

No parameters

Example Request

GET /transfers/v1/deliveries/1/transporters

Example Response

[
  {
    "TransporterFacilityLicenseNumber": "4a-X0001",
    "TransporterFacilityName": "Standard Cultivation Shipper",
    "TransporterDirection": "Undesignated"
  },
  {
    "TransporterFacilityLicenseNumber": "3a-X0001",
    "TransporterFacilityName": "Bulk Cultivation Shipper",
    "TransporterDirection": "Undesignated"
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/{id}/transporters/details

Please note: The {id} parameter above represents a Shipment Delivery ID.

Permissions Required

Transfers

Parameters

No parameters

Example Request

GET /transfers/v1/deliveries/1/transporters/details

Example Response

[
  {
    "DriverName": "Lewis Hamilton",
    "DriverOccupationalLicenseNumber": "G1-302",
    "DriverVehicleLicenseNumber": "G2f-MFK",
    "DriverLayoverLeg": null,
    "VehicleMake": "McLaren",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "T00-F4ST",
    "ActualDriverStartDateTime": null
  },
  {
    "DriverName": "Michael Schumacher",
    "DriverOccupationalLicenseNumber": "XVG-A01",
    "DriverVehicleLicenseNumber": "MX1-00F",
    "DriverLayoverLeg": null,
    "VehicleMake": "Ferrari",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "3K3-GJK",
    "ActualDriverStartDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/{id}/packages

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Transfers

Parameters

No parameters

This endpoint has obsolete properties

Old New
ProductNameItemName
ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/deliveries/2/packages

Example Response

[
  {
    "PackageId": 1,
    "PackageLabel": "ABCDEF012345670000010026",
    "PackageType": "Product",
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "ItemId": 0,
    "ProductName": "Buds",
    "ItemName": "Buds",
    "ProductCategoryName": "Buds",
    "ItemCategoryName": "Buds",
    "ItemStrainName": null,
    "ItemBrandName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "LabTestingState": "NotSubmitted",
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ShipmentPackageState": "Accepted",
    "ShippedQuantity": 10.0,
    "ShippedUnitOfMeasureName": "Ounces",
    "GrossUnitOfWeightName": null,
    "ReceivedQuantity": 10.0,
    "ReceivedUnitOfMeasureName": "Ounces"
  },
  {
    "PackageId": 2,
    "PackageLabel": "ABCDEF012345670000010027",
    "PackageType": "Product",
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "ItemId": 0,
    "ProductName": "Buds",
    "ItemName": "Buds",
    "ProductCategoryName": "Buds",
    "ItemCategoryName": "Buds",
    "ItemStrainName": null,
    "ItemBrandName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "LabTestingState": "NotSubmitted",
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ShipmentPackageState": "Rejected",
    "ShippedQuantity": 10.0,
    "ShippedUnitOfMeasureName": "Ounces",
    "GrossUnitOfWeightName": null,
    "ReceivedQuantity": null,
    "ReceivedUnitOfMeasureName": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/{id}/packages/wholesale

Please note: The {id} parameter above represents a Transfer Delivery ID, not a Manifest Number.

Permissions Required

Transfers

Parameters

No parameters

Example Request

GET /transfers/v1/deliveries/2/packages/wholesale

Example Response

[
  {
    "PackageId": 1,
    "PackageLabel": "ABCDEF012345670000010026",
    "ShipperWholesalePrice": null,
    "ReceiverWholesalePrice": null
  },
  {
    "PackageId": 2,
    "PackageLabel": "ABCDEF012345670000010027",
    "ShipperWholesalePrice": 3.50,
    "ReceiverWholesalePrice": null
  },
  {
    "PackageId": 3,
    "PackageLabel": "ABCDEF012345670000010028",
    "ShipperWholesalePrice": 3.50,
    "ReceiverWholesalePrice": 3.50
  },
  {
    "PackageId": 4,
    "PackageLabel": "ABCDEF012345670000010029",
    "ShipperWholesalePrice": 3.50,
    "ReceiverWholesalePrice": 7.00
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/package/{id}/requiredlabtestbatches

Please note: The {id} parameter above represents a Transfer Delivery Package ID, not a Manifest Number.

Permissions Required

Transfers

Parameters

No parameters

Example Request

GET /transfers/v1/deliveries/package/2/requiredlabtestbatches

Example Response

[
  {
    "PackageId": 2,
    "LabTestBatchId": 1,
    "LabTestBatchName": "Cannabinoids"
  },
  {
    "PackageId": 2,
    "LabTestBatchId": 2,
    "LabTestBatchName": "Category I Residual Pesticides (required)"
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/deliveries/packages/states

Permissions Required

None

Parameters

No parameters

Example Request

GET /transfers/v1/deliveries/packages/states

Example Response

[
  "Shipped",
  "Rejected",
  "Accepted",
  "Returned"
]

Transfers

Server: https://api-mi.metrc.com/

POST /transfers/v1/external/incoming

Permissions Required

Transfers

Parameters

licenseNumber

Example Request

POST /transfers/v1/external/incoming?licenseNumber=123-ABC[
  {
    "ShipperLicenseNumber": "123-ABC",
    "ShipperName": "Lofty Med-Cultivation B",
    "ShipperMainPhoneNumber": "123-456-7890",
    "ShipperAddress1": "123 Real Street",
    "ShipperAddress2": null,
    "ShipperAddressCity": "Somewhere",
    "ShipperAddressState": "CO",
    "ShipperAddressPostalCode": null,
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "GrossWeight": null,
        "GrossUnitOfWeightId": null,
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "ToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": null
          }
        ],
        "Packages": [
          {
            "ItemName": "Buds",
            "Quantity": 10.0,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-02-04T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          },
          {
            "ItemName": "Buds",
            "Quantity": 9.5,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-03-06T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

PUT /transfers/v1/external/incoming

Permissions Required

Transfers

Parameters

licenseNumber

Example Request

PUT /transfers/v1/external/incoming?licenseNumber=123-ABC[
  {
    "TransferId": 1,
    "ShipperLicenseNumber": "123-ABC",
    "ShipperName": "Lofty Med-Cultivation B",
    "ShipperMainPhoneNumber": null,
    "ShipperAddress1": null,
    "ShipperAddress2": null,
    "ShipperAddressCity": null,
    "ShipperAddressState": null,
    "ShipperAddressPostalCode": null,
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "TransferDestinationId": null,
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "GrossWeight": null,
        "GrossUnitOfWeightId": null,
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "ToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": null
          }
        ],
        "Packages": [
          {
            "ItemName": "Buds",
            "Quantity": 10.0,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-02-04T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          },
          {
            "ItemName": "Buds",
            "Quantity": 9.5,
            "UnitOfMeasureName": "Ounces",
            "PackagedDate": "2018-03-06T00:00:00Z",
            "ExpirationDate": null,
            "SellByDate": null,
            "UseByDate": null,
            "GrossWeight": null,
            "GrossUnitOfWeightName": null,
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

DELETE /transfers/v1/external/incoming/{id}

Permissions Required

Transfers

Parameters

licenseNumber

Example Request

DELETE /transfers/v1/external/incoming/1?licenseNumber=123-ABC

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/templates

Permissions Required

Transfer Templates

Parameters

licenseNumber
lastModifiedStart
optional
The last modified start timestamp
lastModifiedEnd
optional
The last modified end timestamp

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/templates?licenseNumber=123-ABC&lastModifiedStart=2018-01-17T06:30:00Z&lastModifiedEnd=2018-01-17T17:30:00Z

Example Response

[
  {
    "Id": 1,
    "ManifestNumber": null,
    "ShipmentLicenseType": 0,
    "ShipperFacilityLicenseNumber": "123-ABC",
    "ShipperFacilityName": "Lofty Med-Cultivation B",
    "Name": "Template 1",
    "TransporterFacilityLicenseNumber": "123-BCD",
    "TransporterFacilityName": "Lofty Med-Dispensary",
    "DriverName": "X",
    "DriverOccupationalLicenseNumber": "",
    "DriverVehicleLicenseNumber": "",
    "VehicleMake": "X",
    "VehicleModel": "X",
    "VehicleLicensePlateNumber": "X",
    "DeliveryCount": 1,
    "ReceivedDeliveryCount": 0,
    "PackageCount": 7,
    "ReceivedPackageCount": 0,
    "ContainsPlantPackage": false,
    "ContainsProductPackage": false,
    "ContainsTradeSample": false,
    "ContainsDonation": false,
    "ContainsTestingSample": false,
    "ContainsProductRequiresRemediation": false,
    "ContainsRemediatedProductPackage": false,
    "IsVoided": false,
    "CreatedDateTime": "2016-10-10T08:20:45-04:00",
    "CreatedByUserName": null,
    "LastModified": "0001-01-01T00:00:00+00:00",
    "DeliveryId": 0,
    "RecipientFacilityLicenseNumber": null,
    "RecipientFacilityName": null,
    "ShipmentTypeName": null,
    "ShipmentTransactionType": null,
    "EstimatedDepartureDateTime": "0001-01-01T00:00:00.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "0001-01-01T00:00:00.000",
    "ActualArrivalDateTime": null,
    "DeliveryPackageCount": 0,
    "DeliveryReceivedPackageCount": 0,
    "ReceivedDateTime": null,
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/templates/{id}/deliveries

Permissions Required

Transfer Templates

Parameters

No parameters

This endpoint has obsolete properties

Old New
ShipmentPackages.ProductNameItemName
ShipmentPackages.ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/templates/1/deliveries

Example Response

[
  {
    "Id": 1,
    "RecipientFacilityLicenseNumber": "123-ABC",
    "RecipientFacilityName": "Lofty Med-Cultivation A",
    "ShipmentTypeName": "Transfer",
    "ShipmentTransactionType": "Standard",
    "EstimatedDepartureDateTime": "2016-10-11T14:48:30.000",
    "ActualDepartureDateTime": null,
    "EstimatedArrivalDateTime": "2016-10-11T16:50:00.000",
    "ActualArrivalDateTime": null,
    "GrossWeight": null,
    "GrossUnitOfWeightId": null,
    "GrossUnitOfWeightName": null,
    "PlannedRoute": "I will use this route.",
    "DeliveryPackageCount": 7,
    "DeliveryReceivedPackageCount": 0,
    "ReceivedDateTime": "2016-10-11T16:42:19-04:00",
    "EstimatedReturnDepartureDateTime": null,
    "ActualReturnDepartureDateTime": null,
    "EstimatedReturnArrivalDateTime": null,
    "ActualReturnArrivalDateTime": null,
    "RejectedPackagesReturned": false
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/templates/deliveries/{id}/transporters

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Transfer Templates

Parameters

No parameters

Example Request

GET /transfers/v1/templates/deliveries/1/transporters

Example Response

[
  {
    "TransporterFacilityLicenseNumber": "4a-X0001",
    "TransporterFacilityName": "Standard Cultivation Shipper",
    "TransporterDirection": "Undesignated"
  },
  {
    "TransporterFacilityLicenseNumber": "3a-X0001",
    "TransporterFacilityName": "Bulk Cultivation Shipper",
    "TransporterDirection": "Undesignated"
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/templates/deliveries/{id}/transporters/details

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Transfer Templates

Parameters

No parameters

Example Request

GET /transfers/v1/templates/deliveries/1/transporters/details

Example Response

[
  {
    "DriverName": "Lewis Hamilton",
    "DriverOccupationalLicenseNumber": "G1-302",
    "DriverVehicleLicenseNumber": "G2f-MFK",
    "DriverLayoverLeg": null,
    "VehicleMake": "McLaren",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "T00-F4ST",
    "ActualDriverStartDateTime": null
  },
  {
    "DriverName": "Michael Schumacher",
    "DriverOccupationalLicenseNumber": "XVG-A01",
    "DriverVehicleLicenseNumber": "MX1-00F",
    "DriverLayoverLeg": null,
    "VehicleMake": "Ferrari",
    "VehicleModel": "F1",
    "VehicleLicensePlateNumber": "3K3-GJK",
    "ActualDriverStartDateTime": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/templates/deliveries/{id}/packages

Please note: The {id} parameter above represents a Transfer Template Delivery ID, not a Manifest Number.

Permissions Required

Transfers

Parameters

No parameters

This endpoint has obsolete properties

Old New
ProductNameItemName
ProductCategoryNameItemCategoryName

Example Request

GET /transfers/v1/templates/deliveries/2/packages

Example Response

[
  {
    "PackageId": 1,
    "PackageLabel": "ABCDEF012345670000010026",
    "PackageType": "Product",
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "ItemId": 0,
    "ProductName": "Buds",
    "ItemName": "Buds",
    "ProductCategoryName": "Buds",
    "ItemCategoryName": "Buds",
    "ItemStrainName": null,
    "ItemBrandName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "LabTestingState": "NotSubmitted",
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ShipmentPackageState": "Accepted",
    "ShippedQuantity": 10.0,
    "ShippedUnitOfMeasureName": "Ounces",
    "GrossUnitOfWeightName": null,
    "ReceivedQuantity": 10.0,
    "ReceivedUnitOfMeasureName": "Ounces"
  },
  {
    "PackageId": 2,
    "PackageLabel": "ABCDEF012345670000010027",
    "PackageType": "Product",
    "SourceHarvestNames": null,
    "SourcePackageLabels": null,
    "ItemId": 0,
    "ProductName": "Buds",
    "ItemName": "Buds",
    "ProductCategoryName": "Buds",
    "ItemCategoryName": "Buds",
    "ItemStrainName": null,
    "ItemBrandName": null,
    "ItemUnitCbdPercent": null,
    "ItemUnitCbdContent": null,
    "ItemUnitCbdContentUnitOfMeasureName": null,
    "ItemUnitCbdContentDose": null,
    "ItemUnitCbdContentDoseUnitOfMeasureName": null,
    "ItemUnitThcPercent": null,
    "ItemUnitThcContent": null,
    "ItemUnitThcContentUnitOfMeasureName": null,
    "ItemUnitThcContentDose": null,
    "ItemUnitThcContentDoseUnitOfMeasureName": null,
    "ItemUnitVolume": null,
    "ItemUnitVolumeUnitOfMeasureName": null,
    "ItemUnitWeight": null,
    "ItemUnitWeightUnitOfMeasureName": null,
    "ItemServingSize": null,
    "ItemSupplyDurationDays": null,
    "ItemUnitQuantity": null,
    "ItemUnitQuantityUnitOfMeasureName": null,
    "LabTestingState": "NotSubmitted",
    "ProductionBatchNumber": null,
    "IsTradeSample": false,
    "IsTradeSamplePersistent": false,
    "SourcePackageIsTradeSample": false,
    "IsDonation": false,
    "SourcePackageIsDonation": false,
    "IsTestingSample": false,
    "ProductRequiresRemediation": false,
    "ContainsRemediatedProduct": false,
    "RemediationDate": null,
    "ShipmentPackageState": "Rejected",
    "ShippedQuantity": 10.0,
    "ShippedUnitOfMeasureName": "Ounces",
    "GrossUnitOfWeightName": null,
    "ReceivedQuantity": null,
    "ReceivedUnitOfMeasureName": null
  }
]

Transfers

Server: https://api-mi.metrc.com/

POST /transfers/v1/templates

Permissions Required

Transfer Templates

Parameters

licenseNumber

Example Request

POST /transfers/v1/templates?licenseNumber=123-ABC[
  {
    "Name": "Template 1",
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "ToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": null
          }
        ],
        "Packages": [
          {
            "PackageLabel": "ABCDEF012345670000010026",
            "WholesalePrice": null
          },
          {
            "PackageLabel": "ABCDEF012345670000010027",
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

PUT /transfers/v1/templates

Permissions Required

Transfer Templates

Parameters

licenseNumber

Example Request

PUT /transfers/v1/templates?licenseNumber=123-ABC[
  {
    "TransferTemplateId": 1,
    "Name": "Template 1",
    "TransporterFacilityLicenseNumber": null,
    "DriverOccupationalLicenseNumber": null,
    "DriverName": null,
    "DriverLicenseNumber": null,
    "PhoneNumberForQuestions": null,
    "VehicleMake": null,
    "VehicleModel": null,
    "VehicleLicensePlateNumber": null,
    "Destinations": [
      {
        "TransferDestinationId": 0,
        "RecipientLicenseNumber": "123-XYZ",
        "TransferTypeName": "Transfer",
        "PlannedRoute": "I will drive down the road to the place.",
        "EstimatedDepartureDateTime": "2018-03-06T09:15:00.000",
        "EstimatedArrivalDateTime": "2018-03-06T12:24:00.000",
        "Transporters": [
          {
            "TransporterFacilityLicenseNumber": "123-ABC",
            "DriverOccupationalLicenseNumber": "50",
            "DriverName": "X",
            "DriverLicenseNumber": "5",
            "DriverLayoverLeg": "ToLayover",
            "PhoneNumberForQuestions": "18005555555",
            "VehicleMake": "X",
            "VehicleModel": "X",
            "VehicleLicensePlateNumber": "X",
            "IsLayover": false,
            "EstimatedDepartureDateTime": "2018-03-06T12:00:00.000",
            "EstimatedArrivalDateTime": "2018-03-06T21:00:00.000",
            "TransporterDetails": null
          }
        ],
        "Packages": [
          {
            "PackageLabel": "ABCDEF012345670000010026",
            "WholesalePrice": null
          },
          {
            "PackageLabel": "ABCDEF012345670000010027",
            "WholesalePrice": null
          }
        ]
      }
    ]
  }
]

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

DELETE /transfers/v1/templates/{id}

Permissions Required

Transfer Templates

Parameters

licenseNumber

Example Request

DELETE /transfers/v1/templates/1?licenseNumber=123-ABC

Example Response

No response

Transfers

Server: https://api-mi.metrc.com/

GET /transfers/v1/types

Permissions Required

None

Parameters

licenseNumber

Example Request

GET /transfers/v1/types?licenseNumber=123-ABC

Example Response

[
  {
    "Name": "Transfer",
    "TransactionType": "Standard",
    "ForLicensedShipments": true,
    "ForExternalIncomingShipments": false,
    "ForExternalOutgoingShipments": false,
    "RequiresDestinationGrossWeight": false,
    "RequiresPackagesGrossWeight": false
  },
  {
    "Name": "Wholesale",
    "TransactionType": "Wholesale",
    "ForLicensedShipments": true,
    "ForExternalIncomingShipments": false,
    "ForExternalOutgoingShipments": false,
    "RequiresDestinationGrossWeight": false,
    "RequiresPackagesGrossWeight": false
  }
]

Transporters

Server: https://api-mi.metrc.com/

GET /transporters/v2/drivers

Permissions Required

Transporters

Parameters

licenseNumber
The license number of the facility for which to return the list of drivers.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transporters/v2/drivers?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "FacilityId": 1,
      "EmployeeId": "1234",
      "Name": "Jim Bob",
      "DriversLicenseNumber": "ABC1234"
    },
    {
      "Id": 2,
      "FacilityId": 1,
      "EmployeeId": "1235",
      "Name": "Sally May",
      "DriversLicenseNumber": "ABC1235"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transporters

Server: https://api-mi.metrc.com/

GET /transporters/v2/drivers/{id}

Please note: The {id} parameter above represents a Driver Id.

Permissions Required

Transporters

Parameters

licenseNumber
The license number of the facility for which to return a driver.

Example Request

GET /transporters/v2/drivers/?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "FacilityId": 1,
  "EmployeeId": "1234",
  "Name": "Jim Bob",
  "DriversLicenseNumber": "ABC1234"
}

Transporters

Server: https://api-mi.metrc.com/

POST /transporters/v2/drivers

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number of the facility for which to create a driver.

Example Request

POST /transporters/v2/drivers?licenseNumber=123-ABC[
  {
    "Name": "Joe Smith",
    "DriversLicenseNumber": "ABC1234",
    "EmployeeId": "BTS000007"
  },
  {
    "Name": "Jane Doe",
    "DriversLicenseNumber": "ABC1235",
    "EmployeeId": "BTS131206"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Transporters

Server: https://api-mi.metrc.com/

PUT /transporters/v2/drivers

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number of the facility for which to update a driver(s).

Example Request

PUT /transporters/v2/drivers?licenseNumber=123-ABC[
  {
    "Id": "Driver-1",
    "Name": "Michelle Doe",
    "DriversLicenseNumber": "ABC1234",
    "EmployeeId": "BTS000007"
  },
  {
    "Id": "Driver-3",
    "Name": "John Doe",
    "DriversLicenseNumber": "ABC4567",
    "EmployeeId": "BTS131206"
  }
]

Example Response

{
  "Ids": [
    1,
    2
  ],
  "Warnings": null
}

Transporters

Server: https://api-mi.metrc.com/

DELETE /transporters/v2/drivers/{id}

Please note: The {id} parameter above represents a Driver Id.

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number of the facility for which to archive a driver.

Example Request

DELETE /transporters/v2/drivers/?licenseNumber=123-ABC

Example Response

No response

Transporters

Server: https://api-mi.metrc.com/

GET /transporters/v2/vehicles

Permissions Required

Transporters

Parameters

licenseNumber
The license number of the facility for which to return the list of vehicles.
pageNumber
optional
The number of the data page from which to return data.
pageSize
optional
The number of records to return per page. Pagination is currently disabled by default. You can enable pagination on this query by specifying a value that does not exceed 20.

Example Request

GET /transporters/v2/vehicles?licenseNumber=123-ABC&pageNumber=1&pageSize=10

Example Response

{
  "Data": [
    {
      "Id": 1,
      "FacilityId": 1,
      "Make": "Honda",
      "Model": "Accord",
      "LicensePlateNumber": "ABC1234"
    },
    {
      "Id": 2,
      "FacilityId": 1,
      "Make": "Tesla",
      "Model": "X",
      "LicensePlateNumber": "ACB2345"
    }
  ],
  "Total": 2,
  "TotalRecords": 2,
  "PageSize": 2,
  "RecordsOnPage": 2,
  "Page": 1,
  "CurrentPage": 1,
  "TotalPages": 1
}

Transporters

Server: https://api-mi.metrc.com/

GET /transporters/v2/vehicles/{id}

Please note: The {id} parameter above represents a Vehicle Id.

Permissions Required

Transporters

Parameters

licenseNumber
The license number of the facility for which to return a vehicle.

Example Request

GET /transporters/v2/vehicles/?licenseNumber=123-ABC

Example Response

{
  "Id": 1,
  "FacilityId": 1,
  "Make": "Honda",
  "Model": "Accord",
  "LicensePlateNumber": "ABC1234"
}

Transporters

Server: https://api-mi.metrc.com/

POST /transporters/v2/vehicles

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number of the facility for which to create a vehicle.
data

Example Request

POST /transporters/v2/vehicles?licenseNumber=123-ABC

Example Response

{
  "Ids": [],
  "Warnings": null
}

Transporters

Server: https://api-mi.metrc.com/

PUT /transporters/v2/vehicles

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number of the facility for which to update a vehicle(s).
data

Example Request

PUT /transporters/v2/vehicles?licenseNumber=123-ABC

Example Response

No response

Transporters

Server: https://api-mi.metrc.com/

DELETE /transporters/v2/vehicles/{id}

Please note: The {id} parameter above represents a Vehicle Id.

Permissions Required

Manage Transporters

Parameters

licenseNumber
The license number for which to archive a vehicle

Example Request

DELETE /transporters/v2/vehicles/?licenseNumber=123-ABC

Example Response

No response

Units Of Measure

Server: https://api-mi.metrc.com/

GET /unitsofmeasure/v2/active

Permissions Required

None

Parameters

No parameters

Example Request

GET /unitsofmeasure/v2/active

Example Response

[
  {
    "QuantityType": "CountBased",
    "Name": "Each",
    "Abbreviation": "ea"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Ounces",
    "Abbreviation": "oz"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Pounds",
    "Abbreviation": "lb"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Grams",
    "Abbreviation": "g"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Milligrams",
    "Abbreviation": "mg"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Kilograms",
    "Abbreviation": "kg"
  }
]

Units Of Measure

Server: https://api-mi.metrc.com/

GET /unitsofmeasure/v2/inactive

Permissions Required

None

Parameters

No parameters

Example Request

GET /unitsofmeasure/v2/inactive

Example Response

[
  {
    "QuantityType": "WeightBased",
    "Name": "Tonns",
    "Abbreviation": "t"
  }
]

Units Of Measure

Server: https://api-mi.metrc.com/

GET /unitsofmeasure/v1/active

Permissions Required

None

Parameters

No parameters

Example Request

GET /unitsofmeasure/v1/active

Example Response

[
  {
    "QuantityType": "CountBased",
    "Name": "Each",
    "Abbreviation": "ea"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Ounces",
    "Abbreviation": "oz"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Pounds",
    "Abbreviation": "lb"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Grams",
    "Abbreviation": "g"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Milligrams",
    "Abbreviation": "mg"
  },
  {
    "QuantityType": "WeightBased",
    "Name": "Kilograms",
    "Abbreviation": "kg"
  }
]