Venue API V2
This is a legacy API.
V3 is the actively maintained version. New integrations should use
Venue API V3
instead.
Resources
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 endpointsPOSaBIT 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 endpointsThe 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 endpointsThe 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"
}
]
}