Retail Transactions

Complete Transaction

Submits a completed retail transaction for the Dispensary. All LucidIDs in the transaction must have been previously imported into inventory.

Endpoint

POST /api/v1.2/transactions/complete/

Example Payload

{
  "performed_at": "ISO-8601",
  "items": [
    "<lucid_id_uuid>",
    "<lucid_id_uuid>",
    "<lucid_id_uuid>"
  ],
  "order_id": "<pos_order_id>",
  "customer_id": "<pos_customer_id>",
  "budtender_id": "<pos_budtender_id>"
}

Request Fields

Field

Type

Required

Description

performed_at

datetime

yes

When the transaction occurred (ISO-8601 format)

items

array

yes

List of LucidID UUIDs included in the transaction

order_id

string

yes

POS system order identifier

customer_id

string

no

POS system customer identifier

budtender_id

string

no

POS system budtender identifier

Responses

200 — Transaction accepted

400

will be returned if the format of the LucidID is invalid

{
  "items": {
    "Invalid LucidIDs": [
      "invalid_lucid_id_format"
    ]
  }
}

will be returned if the LucidID is unknown or invalid

  {
  "items": {
    "invalid": [],
    "unknown": [
      "<unknown_or_invalid_lucid_id_uuid>"
    ],
    "valid": []
  }
}

will be returned if the LucidID is non-imported

{
  "message": "This transaction contains non-imported lucid ids.",
  "non_imported_lucidids": [
    "<non_imported_lucid_id_uuid>"
  ],
  "valid_transaction": false
}

will be returned if the transaction has already been processed

{
  "message": "This transaction has already been processed."
}

will be returned if items are not provided

[
  "items should be specified when transaction type is complete or return."
]

Void Transaction

Voids a previously submitted retail transaction. This records a void action against the specified order.

Endpoint

POST /api/v1.2/transactions/void/

Example Payload

{
  "performed_at": "ISO-8601",
  "order_id": "<pos_order_id>",
  "customer_id": "<pos_customer_id>",
  "budtender_id": "<pos_budtender_id>"
}

Request Fields

Field

Type

Required

Description

performed_at

datetime

yes

When the void occurred (ISO-8601 format)

order_id

string

yes

POS system order identifier of the transaction to void

customer_id

string

no

POS system customer identifier

budtender_id

string

no

POS system budtender identifier

Responses

200 — Void transaction accepted

400

will be returned if the void transaction has already been processed

{
  "message": "This transaction has already been processed."
}

Return Transaction

Submits a return transaction for the Dispensary. The returned LucidIDs must be specified.

Endpoint

POST /api/v1.2/transactions/return/

Example Payload

{
  "performed_at": "ISO-8601",
  "items": [
    "<lucid_id_uuid>",
    "<lucid_id_uuid>"
  ],
  "order_id": "<pos_order_id>",
  "customer_id": "<pos_customer_id>",
  "budtender_id": "<pos_budtender_id>"
}

Request Fields

Field

Type

Required

Description

performed_at

datetime

yes

When the return occurred (ISO-8601 format)

items

array

yes

List of LucidID UUIDs being returned

order_id

string

yes

POS system order identifier of the transaction to return against

customer_id

string

no

POS system customer identifier

budtender_id

string

no

POS system budtender identifier

Responses

200 — Return transaction accepted

400

will be returned if the format of the LucidID is invalid

{
  "items": {
    "Invalid LucidIDs": [
      "invalid_lucid_id_format"
    ]
  }
}

will be returned if the LucidID is unknown or invalid

{
  "items": {
    "invalid": [],
    "unknown": [
      "<unknown_or_invalid_lucid_id_uuid>"
    ],
    "valid": []
  }
}

will be returned if the return transaction has already been processed

{
  "message": "This transaction has already been processed."
}

will be returned if items are not provided

[
  "items should be specified when transaction type is complete or return."
]