Venue API V2

This is a legacy API. V3 is the actively maintained version. New integrations should use Venue API V3 instead.

Authentication

Menu Feeds

2 endpoints
GET /api/{token}/v2/menu_feeds/{id}

Show a Menu Feed

Parameters

Name Type In Required Description
id integer path Yes Feed Key

Example

curl -X GET "https://app.posabit.com/api/YOUR_API_TOKEN/v2/menu_feeds/{id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
400 Bad Request
422 Invalid parameters
500 Internal Server Error
GET /api/v2/menu_feeds/{menu_feed_id}/options

Show a Menu Feed Configuration

Parameters

Name Type In Required Description
menu_feed_id integer path Yes Feed Key

Example

curl -X GET "https://app.posabit.com/api/v2/menu_feeds/{menu_feed_id}/options" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
400 Bad Request
422 Invalid parameters
500 Internal Server Error

Info

1 endpoints
GET /api/v2/venue/info

Venue Info

Example

curl -X GET "https://app.posabit.com/api/v2/venue/info" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
400 Bad Request
422 Invalid parameters
500 Internal Server Error

Response Example

{
  "name": "The Bong Marché",
  "license": "413813",
  "region": "Washington State",
  "locale": "en-US",
  "vertical": "dispensaries",
  "logo_thumb": "https://pbit-staging.s3.amazonaws.com/logos/Venue/thumb_3221_logo.png",
  "logo_medium": "https://pbit-staging.s3.amazonaws.com/logos/Venue/medium_3221_logo.png",
  "telephone": "",
  "address": "1128 8th St, Kirkland, WA",
  "street_address_line_1": "1128 8th St",
  "city": "Kirkland",
  "state": "WA",
  "zip_code": "98000",
  "country": "USA",
  "timezone": "Pacific Time (US & Canada)",
  "latitude": "48.7382",
  "longitude": "-122.47",
  "domains": [],
  "tax_rates": [
    {
      "id": 4285,
      "name": "Cannabis Tax",
      "rate": 3700,
      "tax_rate": "37.0",
      "price_included": true
    },
    {
      "id": 4286,
      "name": "Bellingham, WA",
      "rate": 900,
      "tax_rate": "9.0",
      "price_included": true
    }
  ],
  "payment_methods": [
    "Cash",
    "Debit Card",
    "Other"
  ],
  "venue_settings": {
    "online_order_curbside": "1",
    "online_order_delivery": "1"
  }
}

Coupons

1 endpoints
GET /api/v2/venue/coupons

Get all available coupons for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/coupons" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Example

{
  "code": 1,
  "total_records": 67,
  "current_page": 1,
  "total_pages": 67,
  "per_page": 1,
  "coupons": [
    {
      "id": 47667,
      "kind": "discount",
      "applies_to": "item",
      "auto_apply": true,
      "allow_stacking": true,
      "name": "Thirsty Thursday - 10% Off",
      "active": true,
      "points": "0",
      "redeemable_once": false,
      "manager_approve": false,
      "barcode": "460884203",
      "venue_id": 3264,
      "external_ref": null,
      "amount": 1000,
      "coupon_type": "percent",
      "rounding": "none",
      "expires_at": null,
      "starts_at": null,
      "image": {
        "url": "https://pbit-qa.s3.amazonaws.com/coupons/47667/barcode.png"
      },
      "background_image": {
        "url": "https://pbit-qa.s3.amazonaws.com/coupon_backgrounds/47667/background.png",
        "thumb": {
          "url": "https://pbit-qa.s3.amazonaws.com/coupon_backgrounds/47667/thumb_background.png"
        },
        "half_page": {
          "url": "https://pbit-qa.s3.amazonaws.com/coupon_backgrounds/47667/half_page_background.png"
        }
      },
      "payment_method_id": null,
      "payment_method_total": 0,
      "order_type": null,
      "order_source": "",
      "product_type_ids": [
        "",
        "4446"
      ],
      "product_ids": [
        ""
      ],
      "product_tag_ids": [
        ""
      ],
      "product_brand_ids": [
        ""
      ],
      "product_strain_ids": [
        ""
      ],
      "customer_tag_ids": [
        ""
      ],
      "manifest_item_ids": [
        ""
      ],
      "supplier_ids": [
        ""
      ],
      "venue_room_ids": [
        ""
      ],
      "one_item": false,
      "customer_type": "",
      "customer_level_ids": [
        ""
      ],
      "birthday": false,
      "product_weights": [
        ""
      ],
      "min_quantity": null,
      "min_amount": 0,
      "min_weight": "0.0",
      "min_weight_unit": null,
      "days": [
        "",
        "thu"
      ],
      "hours": null,
      "hour_start": "",
      "hour_end": "",
      "created_by": null,
      "created_at": "2019-10-21T15:55:35.000Z",
      "updated_at": "2021-01-25T19:53:14.000Z",
      "clicks": 1,
      "inventory_tier_ids": [
        ""
      ],
      "get_quantity": 1,
      "get_product_type_ids": [
        ""
      ],
      "get_product_ids": [
        ""
      ],
      "get_product_tag_ids": [
        ""
      ],
      "get_product_brand_ids": [
        ""
      ],
      "get_product_strain_ids": [
        ""
      ],
      "get_supplier_ids": null,
      "get_venue_room_ids": null,
      "get_manifest_item_ids": null,
      "get_product_weights": null,
      "get_inventory_tier_ids": null,
      "tier_weights": null,
      "profile_type": "any",
      "first_sale": false,
      "is_private": false,
      "external_redemption_failure_count": 0
    }
  ]
}

Customers

4 endpoints
POSaBIT offers custom profiles for each of your loyalty customers. With just the scan of the customer's ID, the point of sale pulls up the customer’s favorite types of products, displays their purchase history, shows their available loyalty points/rewards, and even has an area where you can easily make notes about the customer.
GET /api/v2/venue/customers

Get all customers for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Filter results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)
q[telephone_eq] string query No Filter results using ransack syntax (e.g. q[customer_telephone_eq]='8085550100' would return customers where telephone = 8085550100)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/customers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success (returns an array of customers)
401 Unauthorized

Response Fields

Field Type Nullable Default
customer_type string Yes recreational
active boolean Yes true
gender string(15) Yes
loyalty boolean Yes false
loyalty_number string Yes
customer_level_id integer Yes
points integer No 0
lifetime_points integer No 0
birthday date Yes
first_name string Yes
full_name string Yes
id_number string Yes
id_expiration date Yes
id_type string Yes drivers_license
profile_image string Yes
last_name string Yes
telephone string Yes
created_at datetime Yes
updated_at datetime Yes
zipcode string(10) Yes
address string Yes
city string Yes
apns boolean Yes false
referral_code string Yes
state string Yes
email string Yes
was_first_created_on_pos boolean Yes false
country string(2) Yes US
sms_opt_out boolean Yes true
status string Yes
employee_hire_date date Yes
medical_card string Yes
medical_card_exp date Yes
caregiver_id string Yes
caregiver_id_exp date Yes
loyalty_member_since date Yes
sms_reachable boolean No true
sms_sent_at datetime Yes
coupons_count integer No 0
reviewed boolean Yes false
terms_agreed boolean Yes false
referral_source string Yes
ext_signature_src string Yes
certifying_provider string Yes
sms_opt_source string Yes
custom_allotment string Yes
medical_card_state string Yes
token string Yes
token_expires_at datetime Yes
medical_card_effective date Yes

Response Example

{
  "total_records": 34,
  "current_page": 1,
  "total_pages": 34,
  "per_page": 1,
  "customers": [
    {
      "customer": {
        "id": 279160,
        "first_name": "Jane",
        "last_name": "Doe",
        "birth_year": null,
        "gender": "female",
        "telephone": "5551111111",
        "email": "test@gmail.com",
        "active": true,
        "sms_opt_out": false,
        "sms_opt_in": true,
        "signature": "",
        "address": "",
        "zipcode": "98033",
        "city": "",
        "state": "WA",
        "birthday": null,
        "customer_type": "medical",
        "terms_agreed": false,
        "points": 105
      }
    }
  ]
}
POST /api/v2/venue/customers

Create a Customer

Post JSON in body {"customer": {"first_name": "John"...}}

Parameters

Name Type In Required Description
body customer body Yes JSON formatted body

Example

curl -X POST "https://app.posabit.com/api/v2/venue/customers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "customer": {
    "first_name": "Test",
    "last_name": "User",
    "gender": "female",
    "telephone": "5551234567",
    "email": "test@posabit.com",
    "active": 1,
    "sms_opt_out": 1,
    "address": "123 water lane",
    "zipcode": "12345",
    "city": "Seattle",
    "state": "WA",
    "birthday": "01/01/1990",
    "terms_agreed": 1,
    "customer_type": "medical"
  }
}'

Request Body

{
  "customer": {
    "first_name": "Test",
    "last_name": "User",
    "gender": "female",
    "telephone": "5551234567",
    "email": "test@posabit.com",
    "active": 1,
    "sms_opt_out": 1,
    "address": "123 water lane",
    "zipcode": "12345",
    "city": "Seattle",
    "state": "WA",
    "birthday": "01/01/1990",
    "terms_agreed": 1,
    "customer_type": "medical"
  }
}

Responses

Status Description
200 Success
204 Record not found
400 Bad Request

Response Example

{
  "customer": {
    "id": 279160,
    "first_name": "Jane",
    "last_name": "Doe",
    "birth_year": null,
    "gender": "female",
    "telephone": "5551111111",
    "email": "test@gmail.com",
    "active": true,
    "sms_opt_out": false,
    "sms_opt_in": true,
    "signature": "",
    "address": "",
    "zipcode": "98033",
    "city": "",
    "state": "WA",
    "birthday": null,
    "customer_type": "medical",
    "terms_agreed": false,
    "points": 105
  }
}
GET /api/v2/venue/customers/{id}

Read a customer

Parameters

Name Type In Required Description
id integer path Yes Customer ID

Example

curl -X GET "https://app.posabit.com/api/v2/venue/customers/{id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
400 Bad Request
422 Invalid parameters
500 Internal Server Error

Response Fields

Field Type Nullable Default
customer_type string Yes recreational
active boolean Yes true
gender string(15) Yes
loyalty boolean Yes false
loyalty_number string Yes
customer_level_id integer Yes
points integer No 0
lifetime_points integer No 0
birthday date Yes
first_name string Yes
full_name string Yes
id_number string Yes
id_expiration date Yes
id_type string Yes drivers_license
profile_image string Yes
last_name string Yes
telephone string Yes
created_at datetime Yes
updated_at datetime Yes
zipcode string(10) Yes
address string Yes
city string Yes
apns boolean Yes false
referral_code string Yes
state string Yes
email string Yes
was_first_created_on_pos boolean Yes false
country string(2) Yes US
sms_opt_out boolean Yes true
status string Yes
employee_hire_date date Yes
medical_card string Yes
medical_card_exp date Yes
caregiver_id string Yes
caregiver_id_exp date Yes
loyalty_member_since date Yes
sms_reachable boolean No true
sms_sent_at datetime Yes
coupons_count integer No 0
reviewed boolean Yes false
terms_agreed boolean Yes false
referral_source string Yes
ext_signature_src string Yes
certifying_provider string Yes
sms_opt_source string Yes
custom_allotment string Yes
medical_card_state string Yes
token string Yes
token_expires_at datetime Yes
medical_card_effective date Yes

Response Example

{
  "customer": {
    "id": 279160,
    "first_name": "Jane",
    "last_name": "Doe",
    "birth_year": null,
    "gender": "female",
    "telephone": "5551111111",
    "email": "test@gmail.com",
    "active": true,
    "sms_opt_out": false,
    "sms_opt_in": true,
    "signature": "",
    "address": "",
    "zipcode": "98033",
    "city": "",
    "state": "WA",
    "birthday": null,
    "customer_type": "medical",
    "terms_agreed": false,
    "points": 105
  }
}
PATCH /api/v2/venue/customers/{id}

Update a Customer

Patch JSON in body {"customer": {"first_name": "John"...}}

Parameters

Name Type In Required Description
id integer path Yes Customer ID
body customer body Yes JSON formatted body

Example

curl -X PATCH "https://app.posabit.com/api/v2/venue/customers/{id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{...}'

Responses

Status Description
200 Success
204 Record not found
400 Bad Request

Inventories

1 endpoints
The default view of the inventory page will show you all of your active inventory, from lowest to highest number of units (or grams) on hand - this is so you can easily see which products are running low. Using the filters on the left side of the page, you can narrow down your search results by a particular product type, brand, supplier, etc.
GET /api/v2/venue/inventories

Get all inventories for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/inventories" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
product_id integer No
tier_id integer Yes
barcode string Yes
price integer No 0
last_price integer Yes
cost integer No 0
discountable boolean No true
quantity_on_hand decimal No 0.0
optimum_level integer Yes 0
reorder_threshold integer Yes
calc_threshold integer Yes
last_replenish_date datetime Yes
velocity decimal No 0.0
sold integer No 0
days_supply integer No 0
avg_cost integer Yes
avg_price integer Yes
sync_expires_at datetime Yes
last_order datetime Yes
created_at datetime Yes
updated_at datetime Yes
supplier_id integer Yes
updated_by string Yes
unit string(15) No units
weight decimal No 0.0
weight_unit string(15) Yes
is_active boolean Yes true
notes text Yes
sellable_quantity decimal No 0.0
ecomm_quantity decimal No 0.0
allow_undercost boolean No false
manifest_items_count integer Yes 0
thc decimal Yes
cbd decimal Yes
cbn decimal Yes
equivalent_weight decimal Yes
equivalent_unit string Yes
thc_min decimal Yes
thc_max decimal Yes
cbd_min decimal Yes
cbd_max decimal Yes
cbn_min decimal Yes
cbn_max decimal Yes
api_id string Yes
inheritor_id integer Yes
med_price integer Yes
terpenes text Yes
manifest_transfer_date date Yes
thca decimal Yes
thca_min decimal Yes
thca_max decimal Yes
cbda decimal Yes
cbda_min decimal Yes
cbda_max decimal Yes
total_thc decimal Yes
total_thc_min decimal Yes
total_thc_max decimal Yes
producer_id integer Yes
doh_compliant boolean Yes false
total_cbd decimal Yes
total_cbd_min decimal Yes
total_cbd_max decimal Yes
last_received_quantity decimal Yes 0.0

Response Example

{
  "total_records": 1161,
  "current_page": 1,
  "total_pages": 1161,
  "per_page": 1,
  "inventory": [
    {
      "id": 210113,
      "product_id": 902429,
      "name": "Phat Panda - Lemon Danish Glaze",
      "unit": "280.0 gm",
      "price": 1300,
      "med_price": null,
      "last_price": 1300,
      "quantity_on_hand": "369.7",
      "sellable_quantity": "369.7",
      "ecomm_quantity": "369.7",
      "vendor": "PIONEER PRODUCTION AND PROCESSING",
      "vendor_license": null,
      "brand": "Phat Panda",
      "category": "Bulk Flower",
      "flower_type": "hybrid",
      "concentrate_type": null,
      "product_type": "hybrid",
      "product_family": "Flower",
      "description": "A perfect wake and bake strain. Sweet lemon and mell...",
      "image": [
        null
      ],
      "active": false,
      "bulk_item": true,
      "strain": "Lemon Danish",
      "thc_measure": "21.5%",
      "cbd_measure": "0.7%",
      "sku": "3264-902429",
      "discountable": true,
      "tier_name": "Top Shelf Tier",
      "created_at": "2019-10-16T20:37:49.000Z",
      "updated_at": "2022-07-05T17:31:23.000Z",
      "rooms": [
        {
          "Display Case 3": "369.7"
        }
      ]
    }
  ]
}

Manifest Items

1 endpoints
GET /api/v2/venue/manifest_items

Get all manifest items for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/manifest_items" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
manifest_id integer Yes
sts_license_id integer Yes
lot_number string Yes
item_type string Yes
strain string Yes
name text Yes
description text Yes
expires_on date Yes
barcode string Yes
barcode_dupe boolean No false
barcode_image string Yes
inventory_sku_id integer Yes
venue_room_id integer Yes
aasm_state string Yes pending
position integer Yes 0
quantity decimal No 0.0
weight decimal No 0.0
net_weight decimal Yes
weight_unit string(15) Yes grams
testing_lab string Yes
testing_date datetime Yes
testing_lab_license string Yes
test_results text Yes
test_contaminants_pass boolean Yes
test_cannabinoids_pass boolean Yes
test_pesticides_pass boolean Yes
thc decimal Yes
cbd decimal Yes
cbn decimal Yes
old_harvest_date datetime Yes
cost integer Yes 0
received_cost integer Yes 0
tax integer Yes
created_at datetime Yes
updated_at datetime Yes
last_sold datetime Yes
updated_by string Yes
is_sample boolean Yes false
is_medical_only boolean Yes false
ancestry string Yes
a_split boolean Yes false
quantity_on_hand decimal No 0.0
api_id string Yes
received_quantity decimal No 0.0
batch_number string(1000) Yes
return_manifest_id integer Yes
pre_return_state string Yes
pre_return_quantity decimal Yes
custom_barcode_image string Yes
sample_type string Yes
product_sample_type string Yes
custom_barcode_image_version string Yes
transformed_from_id integer Yes
transformed_conversion decimal No 0.0
transformed_from_quantity decimal No 0.0
transformed_conversion_weight string Yes
original_sts_quantity decimal No 0.0
original_sts_unit string Yes
sts_quantity decimal Yes
sts_category string Yes
sts_state string Yes
sts_last_modified string Yes
quantity_adj decimal No 0.0
discrepancy_detected datetime Yes
last_audit datetime Yes
number_of_doses decimal Yes
coa_file string Yes
coa_url text Yes
thca decimal Yes
cbda decimal Yes
total_thc decimal Yes
excise_tax integer Yes
growth_method string Yes
total_terpene decimal Yes
weight_in_grams decimal Yes
cbc decimal Yes
cbg decimal Yes
cbga decimal Yes
cbca decimal Yes
cbgv decimal Yes
thcv decimal Yes
cbdv decimal Yes
cbcv decimal Yes
harvest_date string Yes
custom_field_1 string Yes
custom_field_2 string Yes
custom_field_3 string Yes
accepted_date date Yes
sdp_category string Yes
sdp_compass string Yes
lab_result_link text Yes
doh_compliant boolean Yes false
total_cbd decimal Yes
doh_type string Yes
has_unique_barcodes boolean Yes false

Response Example

{
  "total_records": 208,
  "current_page": 1,
  "total_pages": 208,
  "per_page": 1,
  "manifest_items": [
    {
      "id": 261878,
      "manifest_id": null,
      "state": "active",
      "supplier_quantity": "365.0",
      "accepted_quantity": "365.0",
      "quantity_on_hand": "369.7",
      "pre_return_quantity": null,
      "cost_per_unit": 300,
      "inventory_id": 210113,
      "lot_number": "WAR414871.IN6BJ9N",
      "barcode": "WAJ416063.IN6AEJ2",
      "batch_number": null,
      "last_audit": null,
      "venue_room": "Display Case 3",
      "harvest_date": null,
      "thc_measure": "21.5%",
      "cbd_measure": "0.7%",
      "coa_url": null,
      "created_at": "2019-10-16T20:37:50.000Z",
      "updated_at": "2022-06-27T21:25:45.000Z"
    }
  ]
}

Manifests

1 endpoints
GET /api/v2/venue/manifests

Get all manifest items for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/manifests" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
supplier_id integer Yes
reference_no string Yes
aasm_state string Yes pending
transfer_date date Yes
delivery_time datetime Yes
notes text Yes
created_at datetime Yes
updated_at datetime Yes
api_id string Yes
accepted_by string Yes
accepted_at datetime Yes
pickup_time datetime Yes
transportation_type string Yes
destination_id integer Yes
driver_name string Yes
driver_id string Yes
driver_dob date Yes
vehicle_id string Yes
vehicle_year string Yes
vehicle_color string Yes
vehicle_model string Yes
vehicle_make string Yes
license_plate string Yes
courier_id integer Yes
type string Yes
route text Yes
courier_license_number string Yes
voided_lot_numbers text Yes
transferred_at datetime Yes
voided_at datetime Yes
incoming_created_at datetime Yes
estimated_departed_at datetime Yes
estimated_arrival_at datetime Yes
venue_destination_id integer Yes
received_cost integer Yes
accepted_cost integer Yes 0
received_quantity integer Yes
accepted_quantity integer Yes 0
has_marijuana boolean No false
json_filename string Yes
import_source string Yes
discount integer Yes
excise_tax boolean No false
total_excise_tax integer Yes 0
external_driver_id string Yes
external_vehicle_id string Yes
sts_license_id integer Yes
payment_method string(25) Yes
core_external_ref string(50) Yes

Response Example

{
  "total_records": 46,
  "current_page": 1,
  "total_pages": 46,
  "per_page": 1,
  "manifests": [
    {
      "id": 364,
      "reference_no": "2",
      "supplier": "Oregon Top Shelf",
      "state": "accepted",
      "transfer_date": "2019-10-22",
      "delivery_time": null,
      "notes": "",
      "accepted_at": "2019-12-05T18:13:24.000Z",
      "accepted_by": "Matt McCullough",
      "received_cost": 10000,
      "accepted_cost": null,
      "received_quantity": 100,
      "accepted_quantity": null,
      "has_marijuana": true,
      "import_source": null,
      "discount": null,
      "manifest_items": [
        {
          "id": 276454,
          "manifest_id": 364,
          "state": "active",
          "supplier_quantity": "100.0",
          "accepted_quantity": "100.0",
          "quantity_on_hand": "5.0",
          "pre_return_quantity": null,
          "cost_per_unit": 100,
          "inventory_id": 214643,
          "lot_number": "1A4FFFB0007A122000003899",
          "barcode": "1A4FFFB0007A122000003899",
          "batch_number": "ncx7pmo24XXNGt0H",
          "last_audit": null,
          "venue_room": "Display Case 1",
          "harvest_date": null,
          "thc_measure": "70.0%",
          "cbd_measure": "0.0%",
          "coa_url": null,
          "created_at": "2019-10-22T00:18:31.000Z",
          "updated_at": "2020-05-04T20:21:26.000Z"
        }
      ],
      "created_at": "2019-10-22T00:18:31.000Z",
      "updated_at": "2019-12-05T18:13:24.000Z"
    }
  ]
}

Sales Histories

2 endpoints
The Sales window, is where you can see and sort through all of your previous transactions. Use the filters on the left side of the page to sort the transactions however you'd like. You can use this tab when looking for a return or if you'd like to dive into the details of a specific transaction.
GET /api/v2/venue/sales_histories

Get all sales histories for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/sales_histories" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
order_type string Yes regular
order_source string Yes walk_in
incoming_order_id integer Yes
order_origin string(30) Yes
customer_id integer Yes
age integer Yes
gender string Yes
terminal_till_id integer Yes
order_id integer Yes
venue_name string Yes
customer_name string Yes
payment_source string Yes
payment_type string Yes
ordered_at datetime Yes
local_time datetime Yes
fulfilled_at datetime Yes
discount integer Yes
service_charge integer Yes
delivery_charge integer Yes
gratuity integer Yes
tax integer Yes
total integer Yes
open_credits integer Yes
restricted_credits integer Yes
promo_credits integer Yes
gopago_credits integer Yes
merchant_credits integer Yes
location string Yes
subtotal integer Yes
adjusted_time datetime Yes
venue_timezone string Yes
employee_name string Yes
status string Yes
local_order_id string Yes
fraction_of_day string Yes
bag_fee integer Yes 0
terminal_id integer Yes
tuid string Yes
order_discount integer Yes 0
pos_coupon_id integer Yes
pos_coupon_value integer Yes
cc_type string Yes
full_credit integer Yes 0
full_discount integer Yes 0
coupon_count integer No 0
created_at datetime Yes
updated_at datetime Yes
revisions integer No 0
description string Yes
proc_time integer Yes 0
cost integer Yes 0
sts_status string Yes
medical_card string Yes
medical_card_exp date Yes
api_id string Yes
breadcrumbs text Yes
is_caregiver boolean Yes false
medical_card_effective date Yes

Response Example

{
  "total_records": 36,
  "current_page": 1,
  "total_pages": 36,
  "per_page": 1,
  "sales_histories": [
    {
      "id": 49053313,
      "is_medical": false,
      "ordered_at": "2022-06-14T19:37:28.000Z",
      "ordered_at_local": "2022-06-14T12:37:28.000-07:00",
      "sale_type": "sale",
      "order_source": "walk_in",
      "terminal_till_id": 4676,
      "local_order_id": "3264-3-8881-123727",
      "customer_id": 544773,
      "user_id": 12777,
      "sub_total": 1127,
      "discount": 260,
      "tax": 173,
      "total": 1040,
      "cost": 275,
      "items": [
        {
          "item_id": 91312852,
          "sales_history_id": 49053313,
          "product_id": 902427,
          "inventory_id": 210111,
          "lot_id": 261876,
          "lot_number": "WAR414871.IN5SAJM",
          "is_marijuana": true,
          "quantity": 1,
          "weight": "1.0",
          "cost": 275,
          "sub_total": 1127,
          "tax": 173,
          "discount": 260,
          "sku": "WAJ416746.IN5NZ29",
          "category": "Bulk Flower",
          "brand": "High Five Farms",
          "product_name": "High Five Farms - Ghost Train Haze",
          "family_name": "Flower",
          "unit_of_weight": "gm",
          "tier_name": "Top Shelf Tier",
          "discount_list": [
            {
              "coupon_id": 47769,
              "coupon_name": "test happy hour"
            }
          ],
          "total": 1040
        }
      ],
      "sales_tenders": [
        {
          "sales_tender_id": 11738303,
          "subtotal": 867,
          "tax": 173,
          "total": 1040,
          "payment_method_name": "Cash"
        }
      ],
      "created_at": "2022-06-14T19:37:30.000Z",
      "updated_at": "2022-06-14T19:37:30.000Z"
    }
  ]
}
GET /api/v2/venue/sales_histories/{id}

Get a sales history for a venue

Parameters

Name Type In Required Description
id integer path Yes Sales History ID

Example

curl -X GET "https://app.posabit.com/api/v2/venue/sales_histories/{id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
order_type string Yes regular
order_source string Yes walk_in
incoming_order_id integer Yes
order_origin string(30) Yes
customer_id integer Yes
age integer Yes
gender string Yes
terminal_till_id integer Yes
order_id integer Yes
venue_name string Yes
customer_name string Yes
payment_source string Yes
payment_type string Yes
ordered_at datetime Yes
local_time datetime Yes
fulfilled_at datetime Yes
discount integer Yes
service_charge integer Yes
delivery_charge integer Yes
gratuity integer Yes
tax integer Yes
total integer Yes
open_credits integer Yes
restricted_credits integer Yes
promo_credits integer Yes
gopago_credits integer Yes
merchant_credits integer Yes
location string Yes
subtotal integer Yes
adjusted_time datetime Yes
venue_timezone string Yes
employee_name string Yes
status string Yes
local_order_id string Yes
fraction_of_day string Yes
bag_fee integer Yes 0
terminal_id integer Yes
tuid string Yes
order_discount integer Yes 0
pos_coupon_id integer Yes
pos_coupon_value integer Yes
cc_type string Yes
full_credit integer Yes 0
full_discount integer Yes 0
coupon_count integer No 0
created_at datetime Yes
updated_at datetime Yes
revisions integer No 0
description string Yes
proc_time integer Yes 0
cost integer Yes 0
sts_status string Yes
medical_card string Yes
medical_card_exp date Yes
api_id string Yes
breadcrumbs text Yes
is_caregiver boolean Yes false
medical_card_effective date Yes

Response Example

{
  "sales_history": {
    "id": 49054557,
    "is_medical": false,
    "ordered_at": "2024-08-02T18:42:21.000Z",
    "ordered_at_local": "2024-08-02T18:42:21.000Z",
    "sale_type": "sale",
    "order_source": "walk_in",
    "terminal_till_id": 5906,
    "terminal_id": 8829,
    "local_order_id": "3221-169-8082-114218",
    "customer_id": 187408,
    "user_id": 12794,
    "sub_total": 8063,
    "discount": 4130,
    "tax": 722,
    "total": 4655,
    "cost": 764,
    "status": "COMPLETE",
    "items": [
      {
        "item_id": 91315881,
        "sales_history_id": 49054557,
        "product_id": 1031454,
        "inventory_id": 334814,
        "lot_id": 560579,
        "lot_number": "COAIQRT-20240613-001",
        "is_marijuana": true,
        "quantity": 1,
        "weight": "1.0",
        "unit_weight": "3.5",
        "unit_of_weight": "grams",
        "weight_in_grams": "3.5",
        "cost": 700,
        "sub_total": 1377,
        "tax": 123,
        "discount": 705,
        "sku": "COAIQRT-20240613-001",
        "category": "Flower",
        "brand": "Global Xtracts",
        "product_name": "The Finest Green",
        "family_name": "Flower",
        "tier_name": null,
        "discount_list": [
          {
            "coupon_id": 47626,
            "coupon_name": "Will's Test Employee Discount"
          },
          {
            "coupon_id": 47541,
            "coupon_name": "ZZ - Friends & Family 30% Off (Trove Extended)"
          },
          {
            "coupon_id": 47601,
            "coupon_name": "Tribal Tag Test"
          }
        ],
        "total": 795
      },
      {
        "item_id": 91315882,
        "sales_history_id": 49054557,
        "product_id": 801385,
        "inventory_id": 108709,
        "lot_id": 222607,
        "lot_number": "WARPOSABIT.IN33TB",
        "is_marijuana": true,
        "quantity": 1,
        "weight": "1.0",
        "unit_weight": "3.5",
        "unit_of_weight": "grams",
        "weight_in_grams": "3.5",
        "cost": 64,
        "sub_total": 6686,
        "tax": 599,
        "discount": 3425,
        "sku": "WAJPOSABIT.IN1LOY",
        "category": "Flower",
        "brand": null,
        "product_name": "Alta Nova - Blue Hawaiian (3.5g)",
        "family_name": "Flower",
        "tier_name": null,
        "discount_list": [
          {
            "coupon_id": 47626,
            "coupon_name": "Will's Test Employee Discount"
          },
          {
            "coupon_id": 47541,
            "coupon_name": "ZZ - Friends & Family 30% Off (Trove Extended)"
          },
          {
            "coupon_id": 47601,
            "coupon_name": "Tribal Tag Test"
          }
        ],
        "total": 3860
      }
    ],
    "sales_tenders": [
      {
        "sales_tender_id": 11739651,
        "subtotal": 3933,
        "tax": 722,
        "total": 4655,
        "payment_method_name": "Cash"
      }
    ],
    "created_at": "2024-08-02T18:43:01.000Z",
    "updated_at": "2024-08-02T18:43:01.000Z"
  }
}

Terminal Tills

1 endpoints
GET /api/v2/venue/terminal_tills

Get all terminal tills for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/terminal_tills" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
aasm_state string Yes open
terminal_id integer No
till_ref string No
start_time datetime Yes
end_time datetime Yes
start_amount integer No 0
end_amount integer No 0
end_calc_amount integer No 0
left_in_drawer integer No 0
expected_amount integer Yes 0
notes text Yes
opened_by string Yes
closed_by string Yes
review_later boolean Yes
reviewed_by string Yes
reviewed_at datetime Yes
created_at datetime No
updated_at datetime No
terminal_data text Yes
oc1 integer Yes
oc5 integer Yes
oc10 integer Yes
oc25 integer Yes
od1 integer Yes
od5 integer Yes
od10 integer Yes
od20 integer Yes
od50 integer Yes
od100 integer Yes
cc1 integer Yes
cc5 integer Yes
cc10 integer Yes
cc25 integer Yes
cd1 integer Yes
cd5 integer Yes
cd10 integer Yes
cd20 integer Yes
cd50 integer Yes
cd100 integer Yes
open_notes text Yes

Response Example

{
  "total_records": 1408,
  "current_page": 1,
  "total_pages": 1408,
  "per_page": 1,
  "terminal_tills": [
    {
      "id": 1673,
      "terminal_id": 8216,
      "state": "pending",
      "till_ref": "326411571689226811",
      "start_time": "2019-10-21T20:20:26.000Z",
      "end_time": "2019-10-21T22:11:54.000Z",
      "start_amount": 20000,
      "end_amount": 0,
      "left_in_drawer": 0,
      "notes": "",
      "opened_by": "Andy Sweet",
      "closed_by": "Andy Sweet",
      "created_at": "2019-10-21T20:20:27.000Z",
      "updated_at": "2019-10-21T22:11:55.000Z",
      "adjustments": []
    }
  ]
}

Users

1 endpoints
GET /api/v2/venue/users

Get all users for a venue

Parameters

Name Type In Required Description
page integer query No Page Number
per_page integer query No Results per page (default 1000)
q[updated_at_gt] datestring query No Limit results using ransack syntax (e.g. q[updated_at_gt]='2019-07-01' would return employees updated since 2019-07-01)

Example

curl -X GET "https://app.posabit.com/api/v2/venue/users" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Responses

Status Description
200 Success
401 Unauthorized

Response Fields

Field Type Nullable Default
company string Yes
first_name string Yes
last_name string Yes
language string(5) No en
created_at datetime Yes
updated_at datetime Yes
telephone string Yes
email string No
business_type integer Yes
address string Yes
city string Yes
state string Yes
zip string Yes
bank_routing integer Yes
bank_account integer Yes
ein integer Yes
perm_level integer Yes 100
first_login boolean Yes true
user_image_source string Yes
active boolean Yes true
ratings integer Yes
is_signed_in boolean Yes
session_timeout_value integer Yes 24
session_timeout_unit integer Yes 1
credit_discount_validation_option integer Yes 1
est_monthly_sales float Yes
avg_ticket_transaction float Yes
delivery_minimum integer Yes
delivery_fee integer Yes
menu_creation_fee string Yes
current_business_bank string Yes
current_credit_card_processor string Yes
other_social_info string Yes
sales_code string Yes
shipping_option integer Yes
customer_id integer Yes
encrypted_password string(128) No
confirmation_token string Yes
confirmed_at datetime Yes
confirmation_sent_at datetime Yes
reset_password_token string Yes
remember_token string Yes
remember_created_at datetime Yes
current_sign_in_at datetime Yes
current_sign_in_ip string Yes
last_sign_in_ip string Yes
last_sign_in_at datetime Yes
reset_password_sent_at datetime Yes
temporary_initial_password string Yes
uid string Yes
nfc string Yes
last_password_reset datetime Yes
failed_login_timeout datetime Yes
sts_api_key string Yes
sts_api_key_valid boolean Yes

Response Example

{
  "total_records": 10,
  "current_page": 1,
  "total_pages": 10,
  "per_page": 1,
  "users": [
    {
      "id": 12926,
      "first_name": "Budtender 2",
      "last_name": "Budtender 2",
      "perm_level": "none",
      "access_level": "cashier",
      "email": "budtender2@posabit.com",
      "created_at": "2019-11-08T00:54:36.000Z",
      "updated_at": "2021-04-19T21:25:19.000Z"
    }
  ]
}