POS Retrieval Operations
Interactive documentation for inventory retrieval, delivery options retriveval, medical card validation and order retrieval operations.
Authorization: Bearer <token> header.Connection
Reports whether the POS API can reach the authoritative CCD service for the organization and location encoded in the authorization token. Use it to confirm connectivity and token validity before running dispense operations.
| Name | In | Description |
|---|---|---|
Authorizationrequired | header Bearer JWT | Location authorization token; no other parameters are required. The organization, location, and API location token are read from the token itself. |
Try it out
Request URL
—Server response
Connection Status: Responses
The endpoint returns the standard response envelope. The data object carries the connection-status payload produced by the authoritative service; execute the request above against your environment to see the fields it currently returns.
{
"status": "ok",
"message": "",
"data": {
"organizationId": 3682,
"organizationName": "POS Sandbox - Test 7A",
"locationId": 5102,
"address": "300 Test 7A Medical Retail Way",
"city": "Las Cruces",
"posApiConnectionStatus": "prepared"
}
}
Unauthorized
Returned with HTTP 401 when the Bearer token is missing, malformed, expired, or fails signature verification.
{
"status": "error",
"message": "Unauthorized.",
"data": null
}
Service Unreachable
If the authoritative service cannot be reached or replies with an error, the response uses the shared error format with HTTP 200 and the originating message.
{
"status": "error",
"message": "Unable to process request.",
"data": null
}
Dispenses
Returns retailable inventory for the location encoded in the authorization token.
| Name | In | Description |
|---|---|---|
roomType | query string | Required room type filter: retail or consumption. |
Try it out
Request URL
—Server response
Inventory: Successful Response
{
"status": "ok",
"message": "",
"data": {
"roomType": "retail",
"inventory": [
{
"inventoryId": 1789,
"barCode": "1234567890123456",
"productType": "Infused Cannabis Material (Volatile Solvent) Packaged",
"productName": "Example Infused Product",
"strainName": "Blue Dream",
"medicalOnly": false,
"availableQuantity": 24,
"saleUnit": "pkg",
"quantityMustBeWholeNumber": true,
"packageContentQuantity": 0.5,
"packageContentUnit": "g",
"servingsPerPackage": null,
"totalThcPercent": 1.88,
"totalThcMgPerGram": 18.77,
"totalThcMgPerMl": null,
"totalThcMgPerPackage": 9.39,
"delta9ThcPercent": 1,
"delta9ThcMgPerGram": 10,
"delta9ThcMgPerMl": null,
"delta9ThcMgPerPackage": 5,
"expirationDate": "2027-04-18"
},
{
"inventoryId": 1790,
"barCode": "9876543210987654",
"productType": "Deli Style Cannabis",
"productName": null,
"strainName": "Northern Lights",
"medicalOnly": false,
"availableQuantity": 142.75,
"saleUnit": "g",
"quantityMustBeWholeNumber": false,
"packageContentQuantity": null,
"packageContentUnit": null,
"servingsPerPackage": null,
"totalThcPercent": 9.39,
"totalThcMgPerGram": 93.85,
"totalThcMgPerMl": null,
"totalThcMgPerPackage": null,
"delta9ThcPercent": 5,
"delta9ThcMgPerGram": 50,
"delta9ThcMgPerMl": null,
"delta9ThcMgPerPackage": null,
"expirationDate": "2027-04-11"
}
]
}
}
An empty inventory array is a successful response. It means the requested room exists and the location has the required license, but no inventory currently meets the requirements for dispensing.
Room Fields
| Field | Type | Description |
|---|---|---|
roomType | string | The requested room type: retail or consumption. |
inventory | array | Inventory items currently available for selection by the POS. |
Inventory Fields
| Field | Type | Description |
|---|---|---|
inventoryId | number | Internal inventory identifier. This value must be returned in the subsequent dispense request. |
barCode | string | Compliance inventory barcode. May be used for scanning, searching, or displaying the item. |
productType | string | Human-readable product type. |
productName | string or null | Product name assigned to the inventory item. |
strainName | string or null | Cannabis strain associated with the inventory item. |
medicalOnly | boolean | Indicates that the item may only be dispensed to a Medical customer. |
availableQuantity | number | Quantity available at the time this response was generated. |
saleUnit | string | Unit in which the POS must submit the dispense quantity. Current values are pkg, g, or mL. |
quantityMustBeWholeNumber | boolean | When true, the quantity submitted by the POS must be a whole number. |
packageContentQuantity | number or null | Amount of cannabis material or countable items contained in one package. Null for unpackaged inventory. |
packageContentUnit | string or null | Unit for packageContentQuantity. Current values are g, mL, or each. Null for unpackaged inventory. |
servingsPerPackage | number or null | Number of servings contained in one package when available and applicable. |
totalThcPercent | number or null | Total THC potency expressed as a percentage when available. Primarily applicable to solid products. |
totalThcMgPerGram | number or null | Total THC potency expressed as milligrams per gram when available. |
totalThcMgPerMl | number or null | Total THC potency expressed as milligrams per milliliter when available. Primarily applicable to liquid products. |
totalThcMgPerPackage | number or null | Total milligrams of Total THC contained in one package when available or calculable. |
delta9ThcPercent | number or null | Delta-9 THC potency expressed as a percentage when available. |
delta9ThcMgPerGram | number or null | Delta-9 THC potency expressed as milligrams per gram when available. |
delta9ThcMgPerMl | number or null | Delta-9 THC potency expressed as milligrams per milliliter when available. |
delta9ThcMgPerPackage | number or null | Total milligrams of Delta-9 THC contained in one package when available or calculable. |
expirationDate | date or null | Expiration date of the inventory item when applicable. |
Inventory Included in the Response
Inventory is returned only when it:
- Belongs to the authorized organization and location.
- Is located in the requested Retail or Consumption room.
- Has a product type designated as retailable.
- Has a positive available quantity.
- Has passed testing and has a current expiration date when its product type requires retail testing and expiration.
- Is not scheduled for destruction and has not been destroyed.
- Is not subject to an active administrative case restriction that blocks dispensing.
Inventory that does not meet these conditions is omitted from the response.
Medical-Only Inventory
Medical-only inventory may be included in the response because it remains eligible for a Medical customer. The POS should not allow an item with "medicalOnly": true to be selected for an Adult-Use customer. The internal dispense operation independently validates this rule when the order is submitted.
Quantity Handling
The POS should use availableQuantity, saleUnit, and quantityMustBeWholeNumber together. Example packaged item:
{
"availableQuantity": 24,
"saleUnit": "pkg",
"quantityMustBeWholeNumber": true
}
The POS may accept quantities such as 1, 2, or 3, but not 1.5. Example unpackaged flower item:
{
"availableQuantity": 142.75,
"saleUnit": "g",
"quantityMustBeWholeNumber": false
}
The POS may accept a fractional quantity such as 3.5. Example unpackaged liquid item:
{
"availableQuantity": 500,
"saleUnit": "mL",
"quantityMustBeWholeNumber": false
}
Use in the Subsequent Dispense Request
For each selected item, the POS will later submit:
{
"inventoryId": 1789,
"quantity": 1,
"dollarAmount": 15.00,
"taxAmount": 1.25
}
The inventory endpoint supplies inventoryId and the information needed to collect a valid quantity. The POS supplies dollarAmount and taxAmount from its own sales transaction. The POS does not need to return the product name, product type, strain, barcode, medical-only indicator, sale unit, or available quantity in the dispense request.
Authoritative Validation
The inventory response represents inventory availability at the time the request was processed. Inventory quantities, testing status, expiration status, room assignment, case restrictions, or destruction status may change after the response is received. The subsequent dispense operation is authoritative. It reloads and locks the selected inventory records and independently verifies:
- Organization and location ownership.
- Retail or Consumption room assignment.
- Required location license.
- Testing and expiration eligibility.
- Retailable product type.
- Medical-only restrictions.
- Current available quantity.
- Whole-number package quantities.
- Administrative case restrictions.
- Destruction status.
- Adult-Use purchase limits.
- Medical unit limits.
- THC and Delta-9 THC calculations.
The POS should perform reasonable preliminary validation using the inventory response, but it must handle a dispense rejection if inventory is no longer eligible when the order is submitted.
Endpoint-Specific Errors
Invalid Room Type:
{
"status": "error",
"errorCode": "INVALID_RETAIL_INVENTORY_ROOM_TYPE",
"message": "Room Type must be Retail or Consumption.",
"data": null
}
Required License Not Available:
{
"status": "error",
"errorCode": "ACTIVE_LOCATION_LICENSE_REQUIRED",
"message": "Unable to process request. This location does not have an active, non-expired license or valid temporary access for this activity.",
"data": null
}
The required license is based on the requested room:
retailrequires a valid Retail license.consumptionrequires a valid Consumption license.
Requested Room Not Found:
{
"status": "error",
"errorCode": "RETAIL_DISPENSE_INVENTORY_FAILED",
"message": "Unable to process request. Retail room not found.",
"data": null
}
For a Consumption request, the message is: Unable to process request. Consumption room not found.
General Inventory Retrieval Failure:
{
"status": "error",
"errorCode": "RETAIL_DISPENSE_INVENTORY_FAILED",
"message": "Unable to retrieve retail dispense inventory.",
"data": null
}
Returns delivery options, such as drivers, vehicles, and courier agreements for the location encoded in the authorization token.
| Name | In | Description |
|---|---|---|
Authorizationrequired | header Bearer JWT | Location authorization token; no other parameters are required. |
Try it out
Request URL
—Server response
Delivery Options: Successful Response
{
"status": "ok",
"message": "",
"data": {
"retailerDelivery": {
"allowed": true,
"available": true,
"drivers": [
{
"driverId": 12,
"firstName": "Jane",
"lastName": "Smith",
"driversLicenseLastFour": "1234"
}
],
"vehicles": [
{
"vehicleId": 8,
"year": "2024",
"make": "Ford",
"model": "Transit",
"licensePlate": "ABC123"
}
]
},
"courierDelivery": {
"available": true,
"couriers": [
{
"courierRetailAgreementId": 17,
"courierOrganizationId": 200,
"courierLocationId": 300,
"orgName": "Example Courier",
"premiseAddress1": "100 Example Road",
"premiseCity": "Albuquerque",
"courierLicenseId": 45,
"courierLicenseNum": "COURIER-123",
"displayText": "Example Courier - 100 Example Road, Albuquerque - License: COURIER-123",
"drivers": [
{
"driverId": 25,
"firstName": "Robert",
"lastName": "Jones",
"driversLicenseLastFour": "5678"
}
],
"vehicles": [
{
"vehicleId": 19,
"year": "2023",
"make": "Mercedes-Benz",
"model": "Sprinter",
"licensePlate": "XYZ789"
}
]
}
]
}
}
}
Empty arrays are valid. For example, a location may have no active courier agreements, or a delivery method may be allowed but not currently have the required driver and vehicle records.
retailerDelivery Fields
Contains the retailer location's own delivery resources.
| Field | Type | Description |
|---|---|---|
allowed | boolean | true when the location is configured for retailer-operated delivery and currently has a valid Retail license or qualifying temporary access. |
available | boolean | true when retailer delivery is allowed and the location currently has at least one driver and at least one vehicle. |
drivers | array | Drivers belonging to the requesting organization and location. |
vehicles | array | Vehicles belonging to the requesting organization and location. |
A location can have { "allowed": true, "available": false }. This means retailer-operated delivery is permitted, but the location does not currently have both a driver and vehicle available in the system.
courierDelivery Fields
Contains delivery resources available through active courier agreements.
| Field | Type | Description |
|---|---|---|
available | boolean | true when at least one active courier agreement has at least one driver and at least one vehicle. |
couriers | array | Active courier agreements for the requesting Retail or Consumption location. |
A courier may appear in the couriers array even when that specific courier currently has no drivers or no vehicles. The POS system should only allow selection of a courier that has both an available driver and vehicle.
Courier Fields
| Field | Type | Description |
|---|---|---|
courierRetailAgreementId | integer | Active courier agreement identifier. Submit this value when using courier fulfillment. |
courierOrganizationId | integer | Organization that operates the courier service. |
courierLocationId | integer | Courier location associated with the agreement. |
orgName | string | Courier organization name. |
premiseAddress1 | string | Courier location street address. |
premiseCity | string | Courier location city. |
courierLicenseId | integer | Internal identifier for the courier's active Courier license. |
courierLicenseNum | string | Courier license number. |
displayText | string | Combined display value that may be used by the POS interface. |
drivers | array | Drivers associated with the courier location. |
vehicles | array | Vehicles associated with the courier location. |
Driver Fields
| Field | Type | Description |
|---|---|---|
driverId | integer | Driver identifier to submit with the dispense. |
firstName | string | Driver first name. |
lastName | string | Driver last name. |
driversLicenseLastFour | string | Last four characters of the driver's license number. |
Vehicle Fields
| Field | Type | Description |
|---|---|---|
vehicleId | integer | Vehicle identifier to submit with the dispense. |
year | string | Vehicle model year. |
make | string | Vehicle manufacturer. |
model | string | Vehicle model. |
licensePlate | string | Vehicle license plate. |
Using the Returned Values in a Dispense
For retailer-operated delivery, the dispense request must contain:
{
"deliveryFulfillmentType": "retailer",
"retailerDriverId": 12,
"retailerVehicleId": 8
}
For courier delivery, the dispense request must contain:
{
"deliveryFulfillmentType": "courier",
"courierRetailAgreementId": 17,
"courierDriverId": 25,
"courierVehicleId": 19
}
The selected courier driver and vehicle must belong to the courier location associated with the selected agreement. The selected retailer driver and vehicle must belong to the requesting retailer organization and location.
Endpoint-Specific Errors
In addition to the common errors, this call may return:
| Error code | Message | Description |
|---|---|---|
DELIVERY_OPTIONS_FAILED | Unable to process request. Organization not found. | The trusted organization context could not be resolved. |
DELIVERY_OPTIONS_FAILED | Unable to process request. Location not found. | The location was not found, was inactive, or was deleted. |
DELIVERY_OPTIONS_FAILED | Unable to retrieve retail dispense delivery options. | The operation failed without a more specific error message. |
An unexpected database or processing error may also return DELIVERY_OPTIONS_FAILED with a more specific message describing the failure.
Validates a medical cannabis card and retrieves card details before a dispense.
Try it out
Request URL
—Server response
Medical Card Lookup: Successful Patient Response
{
"status": "ok",
"message": "",
"data": {
"medicalCannabisCardId": "4UX58G5R4G",
"cardType": "Patient",
"patient": {
"applicationId": "4UX58G5R4G"
},
"caregiver": null,
"units": {
"limit": 425,
"usedLast90Days": 250,
"remaining": 175
}
}
}
Successful Caregiver Response
When the submitted card belongs to a caregiver, the response identifies the card as a caregiver card and returns both the patient and caregiver information.
{
"status": "ok",
"message": "",
"data": {
"medicalCannabisCardId": "6L9YE6W8J7",
"cardType": "Caregiver",
"patient": {
"applicationId": "6L9YE6W8J7"
},
"caregiver": {
"expirationDate": "2027-01-10T00:00:00.000Z"
},
"units": {
"limit": 425,
"usedLast90Days": 250,
"remaining": 175
}
}
}
Card Fields
| Field | Type | Description |
|---|---|---|
medicalCannabisCardId | string | Card ID submitted with the lookup request. |
cardType | string | Indicates whether the submitted card belongs to a Patient or Caregiver. |
patient | object | Patient information associated with the card. |
caregiver | object or null | Caregiver information when the submitted card is a caregiver card. Otherwise null. |
units | object | Current Medical-unit information for the patient. |
Patient Fields
| Field | Type | Description |
|---|---|---|
applicationId | string | Patient application ID. |
Caregiver Fields
| Field | Type | Description |
|---|---|---|
expirationDate | date/time or null | Caregiver card expiration date. |
The caregiver object is returned only when cardType is Caregiver.
Unit Fields
| Field | Type | Description |
|---|---|---|
limit | number | Maximum Medical units allowed during the applicable 90-day period. |
usedLast90Days | number | Medical units recorded as used by the patient during the previous 90 days. |
remaining | number | Medical units currently available to the patient. |
The remaining amount is calculated as remaining = limit - usedLast90Days. The returned remaining amount will not be less than zero.
Medical Unit Calculation
The Department of Health lookup identifies the patient associated with the submitted card. The internal application then calculates Medical units already used by finding completed Medical dispenses for that patient during the previous 90 days. Voided dispenses are not counted because only orders with a current status of Complete are included. The unit values represent the information available when the lookup is processed. They may change if another Medical dispense is completed before the current order is submitted.
Use in the Dispense Workflow
The POS should use this endpoint before submitting a Medical dispense to:
- Confirm that the submitted card can be located.
- Confirm the patient associated with the card.
- Identify whether the submitted card is a patient or caregiver card.
- Display the applicable expiration information.
- Retrieve the patient's currently remaining Medical units.
- Perform preliminary validation of the proposed order.
The POS must send the original card ID with the subsequent dispense request:
{
"customerType": "medical",
"medicalCannabisCardId": "4UX58G5R4G"
}
The POS should not send patient names, caregiver names, Medical-unit totals, or internal patient identifiers back with the dispense request.
Preliminary Versus Authoritative Validation
The medical-card lookup is preliminary and informational. It does not:
- Reserve any Medical units.
- Guarantee that the patient will still have the same units remaining at checkout.
- Replace the medical-card validation performed during the dispense.
- Complete or authorize a sale.
When a Medical dispense is submitted, the internal application performs the Department of Health lookup again and recalculates the patient's available units. The dispense operation is authoritative. A dispense may therefore be rejected even if an earlier card lookup succeeded. For example:
- Another dispense may have used some of the patient's units.
- The Department of Health service may return different information.
- The card may no longer be accepted.
- The proposed order may exceed the remaining units.
The POS must handle a checkout rejection and display the returned error to the user.
Card Expiration
The response includes the patient and caregiver expiration dates returned by the Department of Health service. The current internal implementation returns this information to the caller but does not independently reject the card solely by comparing the returned expiration date with the current date. The POS may display the expiration date, but it should rely on the success or failure returned by the Department of Health lookup and the subsequent authoritative dispense validation.
Data Not Returned
The internal Department of Health lookup obtains additional information that is intentionally not returned through the POS endpoint. The POS response does not expose:
- Patient or caregiver date of birth.
- Internal patient Medical identifiers.
- The raw Department of Health response.
- Internal database or audit information.
These values are not required for POS validation or checkout.
License Requirement
The authorized POS location must have an active, non-expired Retail or Consumption license, or valid temporary access for one of those activities. The inventory-case restriction check is not performed for this endpoint because no inventory item is being selected or modified.
Endpoint-Specific Errors
Missing or Invalid Card ID:
{
"status": "error",
"errorCode": "INVALID_MEDICAL_CANNABIS_CARD_ID",
"message": "A valid Medical Cannabis Card ID is required.",
"data": null
}
This error is returned when the card ID:
- Is missing.
- Is null.
- Is not submitted as a string.
- Contains only whitespace.
Card ID Too Long:
{
"status": "error",
"errorCode": "INVALID_MEDICAL_CANNABIS_CARD_ID",
"message": "Medical Cannabis Card ID cannot exceed 100 characters.",
"data": null
}
Card Not Found:
{
"status": "error",
"errorCode": "MEDICAL_CARD_LOOKUP_FAILED",
"message": "Unable to process request. Medical Cannabis Card ID not found.",
"data": null
}
Department of Health Authorization Failure:
{
"status": "error",
"errorCode": "MEDICAL_CARD_LOOKUP_FAILED",
"message": "Unable to process request. DOH API authorization failed.",
"data": null
}
Department of Health Timeout:
{
"status": "error",
"errorCode": "MEDICAL_CARD_LOOKUP_FAILED",
"message": "Unable to process request. DOH API request timed out.",
"data": null
}
Required Location License Not Available:
{
"status": "error",
"errorCode": "ACTIVE_LOCATION_LICENSE_REQUIRED",
"message": "Unable to process request. This location does not have an active, non-expired license or valid temporary access for this activity.",
"data": null
}
General Lookup Failure:
{
"status": "error",
"errorCode": "MEDICAL_CARD_LOOKUP_FAILED",
"message": "Unable to look up Medical Cannabis Card.",
"data": null
}
Retrieves a retail dispense order using its ticket identifier generated after checkout.
Try it out
Request URL
—Server response
Retrieves a retail dispense order using the order number from the retail dispense ticket ID call.
Try it out
Request URL
—Server response
Retrieves a retail dispense order using the internal request identifier generated during checkout.
Try it out
Request URL
—Server response
Order Lookup: Successful Response
{
"status": "ok",
"message": "",
"data": {
"retailDispenseTicketId": 4217,
"orderNumber": "1234567890123456",
"orderSource": "api",
"dispenseInternalRequestId": "7693ae51-135b-4755-a15e-f7aac21bc33a",
"roomType": "retail",
"ticketStatus": "Complete",
"createdDateTime": "2026-07-25T15:42:31",
"dispenseDateTime": "2026-07-25T15:42:41",
"customerType": "adult-use",
"dispenseType": "in-store",
"deliveryFulfillmentType": null,
"deliveryAddress": null,
"travelRoute": null,
"totalItems": 2,
"totalDollarAmount": 40.00,
"totalTaxAmount": 3.20,
"grandTotalAmount": 43.20,
"voidedDateTime": null,
"voidReason": null,
"items": [
{
"inventoryId": 1789,
"barCode": "9876543210987654",
"productType": "Cannabis Flower Packaged",
"productName": "Blue Dream 3.5g",
"strainName": "Blue Dream",
"quantity": 2,
"unit": "pkg",
"dollarAmount": 30.00,
"taxAmount": 2.40,
"lineTotalAmount": 32.40
},
{
"inventoryId": 1790,
"barCode": "4567890123456789",
"productType": "Cannabis Edible Packaged",
"productName": "Fruit Chews",
"strainName": null,
"quantity": 1,
"unit": "pkg",
"dollarAmount": 10.00,
"taxAmount": 0.80,
"lineTotalAmount": 10.80
}
]
}
}
Order Header Fields
| Field | Type | Description |
|---|---|---|
retailDispenseTicketId | number | Internal retail dispense ticket identifier. |
orderNumber | string | Retail dispense order number/barcode. |
orderSource | string | Indicates whether the order originated from the web application or the POS api. |
dispenseInternalRequestId | string or null | Original POS dispense request ID. This is null for orders created through the web application. |
roomType | string or null | Original dispense room type: retail or consumption. |
ticketStatus | string | Current order status, such as Complete or Voided. |
createdDateTime | date/time | Date and time the order was created. |
dispenseDateTime | date/time | Date and time the order was dispensed. |
customerType | string | Customer type: adult-use or medical. |
dispenseType | string | Dispense type: in-store or delivery. |
deliveryFulfillmentType | string or null | Delivery fulfillment type when applicable: retailer or courier. |
deliveryAddress | string or null | Delivery address when the order is a delivery. |
travelRoute | string or null | Recorded delivery route when the order is a delivery. |
totalItems | number | Number of distinct inventory lines on the order. |
totalDollarAmount | number | Order subtotal before tax. |
totalTaxAmount | number | Total tax recorded for the order. |
grandTotalAmount | number | Sum of totalDollarAmount and totalTaxAmount. |
voidedDateTime | date/time or null | Date and time the order was voided. |
voidReason | string or null | Reason recorded when the order was voided. |
items | array | Individual inventory items recorded on the order. |
Order Item Fields
| Field | Type | Description |
|---|---|---|
inventoryId | number | Internal identifier of the inventory item dispensed. |
barCode | string | Compliance barcode of the inventory item. |
productType | string | Product type recorded at the time of the dispense. |
productName | string or null | Product name recorded at the time of the dispense. |
strainName | string or null | Strain recorded at the time of the dispense. |
quantity | number | Quantity dispensed. |
unit | string | Unit used for the dispense, such as pkg, g, or mL. |
dollarAmount | number | Pre-tax dollar amount recorded for the line. |
taxAmount | number | Tax amount recorded for the line. |
lineTotalAmount | number | Sum of the line's dollar amount and tax amount. |
Web and API Orders
Orders created through either the web application or POS API may be retrieved. For a web-created order:
{
"orderSource": "web",
"dispenseInternalRequestId": null
}
For a POS API-created order:
{
"orderSource": "api",
"dispenseInternalRequestId": "7693ae51-135b-4755-a15e-f7aac21bc33a"
}
A web-created order may be viewed through this endpoint, but it cannot be voided through the POS API. It must be voided through the web application. Only orders originally created through the POS API may be voided through the POS void endpoint.
Location Restrictions
The endpoint only returns orders belonging to the organization and location associated with the authorized POS location token. An order belonging to another organization or location is returned as not found. A currently active Retail or Consumption license is not required for this historical lookup. The POS may still retrieve an earlier order after the location's license status has changed.
Endpoint-Specific Errors
No Identifier or Multiple Identifiers:
{
"status": "error",
"errorCode": "INVALID_ORDER_LOOKUP_IDENTIFIER",
"message": "Provide exactly one of Retail Dispense Ticket ID, Order Number, or Dispense Internal Request ID.",
"data": null
}
Invalid Retail Dispense Ticket ID:
{
"status": "error",
"errorCode": "INVALID_RETAIL_DISPENSE_TICKET_ID",
"message": "A valid Retail Dispense Ticket ID is required.",
"data": null
}
Invalid Order Number:
{
"status": "error",
"errorCode": "INVALID_ORDER_NUMBER",
"message": "Order Number must be provided as a string.",
"data": null
}
An order number exceeding the supported maximum length also returns INVALID_ORDER_NUMBER.
Invalid Dispense Internal Request ID:
{
"status": "error",
"errorCode": "INVALID_DISPENSE_INTERNAL_REQUEST_ID",
"message": "A valid Dispense Internal Request ID is required.",
"data": null
}
Order Not Found:
{
"status": "error",
"errorCode": "RETAIL_DISPENSE_ORDER_NOT_FOUND",
"message": "Unable to process request. Order not found.",
"data": null
}
General Lookup Failure:
{
"status": "error",
"errorCode": "RETAIL_DISPENSE_ORDER_LOOKUP_FAILED",
"message": "Unable to retrieve retail dispense order.",
"data": null
}