Venue API V1
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/{token}/v1/info
Venue Info
Example
curl -X GET "https://app.posabit.com/api/YOUR_API_TOKEN/v1/info" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Example
{
"code": 1,
"name": "The Bong Marché",
"license": "C11-0001157-LIC",
"region": "Washington State",
"locale": "en-US",
"vertical": "dispensaries",
"logo_thumb": "https://pbit-qa.s3.amazonaws.com/logos/Venue/thumb_3221_logo.png",
"logo_medium": "https://pbit-qa.s3.amazonaws.com/logos/Venue/medium_3221_logo.png",
"telephone": "5556543211",
"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": 1000,
"tax_rate": "10.0",
"price_included": true
},
{
"id": 4286,
"name": "Bellingham, WA",
"rate": 837,
"tax_rate": "8.375",
"price_included": true
},
{
"id": 4415,
"name": "Excise tax",
"rate": 1500,
"tax_rate": "15.0",
"price_included": true
}
],
"payment_methods": [
"Cash",
"POSaBIT Pay",
"Debit Card",
"Other"
],
"venue_settings": {
"online_order_curbside": "1",
"online_order_delivery": "0"
}
}
Coupons
1 endpoints
GET
/api/{token}/v1/coupons
Venue Coupons
Example
curl -X GET "https://app.posabit.com/api/YOUR_API_TOKEN/v1/coupons" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Example
{
"code": 1,
"total_records": 111,
"current_page": 1,
"total_pages": 4,
"per_page": 30,
"coupons": [
{
"id": 47370,
"name": "B - Student 5% Off",
"display_name": "B - Student 5% Off",
"kind": "discount",
"amount": 500,
"coupon_type": "percent",
"applies_to": "order",
"auto_apply": false,
"customer_type": ""
}
]
}
Incoming Orders
2 endpointsThe Online Orders page is where you can view and manage all of your incoming online orders. This page is designed to give you a better overview of all of your incoming orders in one place. You can easily see important information such as the order source, order status, and order details. Additionally, you can filter and sort through your orders to find exactly what you're looking for.
POST
/api/{token}/v1/incoming_orders
Create an incoming order
Example
curl -X POST "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_orders" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"incoming_order": {
"order_type": "pickup",
"first_name": "John",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551112222",
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": "",
"reference_no": "12345-86-123",
"notes": "Gets free lighter",
"requested_payment_method": "cash",
"source": "online_store",
"order_items_attributes": [
{
"product_parent_id": "Treehawk Farms - Wifi OG Pre-Roll 2pk (1g)",
"product_id": 808542,
"quantity": 2
}
]
}
}'
Request Body
{
"incoming_order": {
"order_type": "pickup",
"first_name": "John",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551112222",
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": "",
"reference_no": "12345-86-123",
"notes": "Gets free lighter",
"requested_payment_method": "cash",
"source": "online_store",
"order_items_attributes": [
{
"product_parent_id": "Treehawk Farms - Wifi OG Pre-Roll 2pk (1g)",
"product_id": 808542,
"quantity": 2
}
]
}
}
Responses
| Status | Description |
|---|---|
| 400 | Bad Request |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Example
{
"code": 1,
"incoming_order": {
"id": 19800,
"aasm_state": "pending",
"reference_no": "12345-86-123",
"first_name": "John",
"last_name": "Doe",
"source": "online_store",
"order_type": "pickup",
"notes": "Gets free lighter",
"delivered_at": null,
"requested_date": null,
"requested_window_start_time": {},
"requested_window_end_time": {},
"requested_payment_method": "cash",
"payment_verified": false,
"curbside": false,
"created_at": "2024-10-03T19:12:19.000Z",
"updated_at": "2024-10-03T19:12:19.000Z"
},
"order_items": [
{
"item_id": 32744,
"product_id": 808542,
"sku_id": 115866,
"manifest_item_id": null,
"product_name": "Treehawk Farms - Wifi OG Pre-Roll 2pk (1g)",
"product_brand": "Treehawk Farms",
"product_strain": "Wifi OG",
"weight": null,
"quantity": 2,
"unit_quantity": "2.0",
"price": 1000,
"discount": null,
"tax": null,
"tier_weight_id": null,
"coupons": [],
"taxes": [],
"created_at": "2024-10-03T19:12:19.000Z",
"updated_at": "2024-10-03T19:12:19.000Z"
}
]
}
GET
/api/{token}/v1/incoming_orders/{id}
Find an incoming order
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
id
|
integer | path | Yes |
Example
curl -X GET "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_orders/{id}" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 404 | Requested reference number or id not found |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Fields
| Field | Type | Nullable | Default |
|---|---|---|---|
reference_no
|
string | Yes | — |
customer_type
|
string | Yes |
recreational
|
terminal_id
|
integer | Yes | — |
customer_id
|
integer | Yes | — |
local_order_id
|
string | Yes | — |
driver_id
|
integer | Yes | — |
vehicle_id
|
integer | Yes | — |
aasm_state
|
string(50) | Yes |
pending
|
pos_status
|
string | Yes | — |
source
|
string(30) | Yes |
online_store
|
first_name
|
string | Yes | — |
last_name
|
string | Yes | — |
telephone
|
string | Yes | — |
email
|
string | Yes | — |
processed_by
|
string | Yes | — |
saved_order_data
|
text | Yes | — |
created_at
|
datetime | No | — |
updated_at
|
datetime | No | — |
processed_at
|
datetime | Yes | — |
order_type
|
string | Yes |
pickup
|
requested_payment_method
|
string | Yes | — |
address
|
string | Yes |
|
city
|
string | Yes |
|
state_abbrev
|
string | Yes |
|
zipcode
|
string | Yes |
|
country
|
string | Yes |
US
|
lat
|
float | Yes | — |
lng
|
float | Yes | — |
notes
|
text | Yes | — |
internal_notes
|
text | Yes | — |
departured_at
|
datetime | Yes | — |
delivered_at
|
datetime | Yes | — |
requested_date
|
date | Yes | — |
requested_window_start_time
|
string(100) | Yes | — |
requested_window_end_time
|
string(100) | Yes | — |
planned_route
|
text | Yes | — |
delivery_status
|
string | Yes | — |
sts_error
|
text | Yes | — |
total
|
integer | Yes | — |
tip_amount
|
integer | Yes |
0
|
tip_type
|
string | Yes | — |
created_by
|
string | Yes | — |
status_callback
|
text | Yes | — |
payment_prepaid
|
boolean | Yes |
false
|
payment_source
|
string(80) | Yes | — |
payment_reference_id
|
string(80) | Yes | — |
payment_amount
|
integer | Yes | — |
proc_time
|
integer | Yes |
0
|
reason
|
string | Yes | — |
payment_verified
|
boolean | Yes |
false
|
curbside
|
boolean | Yes |
false
|
third_party_request_id
|
integer | Yes | — |
api_id
|
string(64) | Yes | — |
cancellation_notes
|
text | Yes | — |
external_error
|
text | Yes | — |
payment_auth_id
|
string | Yes | — |
tip_calculated
|
integer | Yes |
0
|
processing_fee
|
integer | Yes |
0
|
ip
|
string | Yes | — |
oauth_token
|
text | Yes | — |
otp
|
string | Yes | — |
Response Example
{
"code": 1,
"incoming_order": {
"id": 19798,
"aasm_state": "processing",
"reference_no": "3221-1727814981-bb1314bf",
"first_name": "A",
"last_name": "A",
"source": "posabit_v2",
"order_type": "pickup",
"notes": null,
"delivered_at": null,
"requested_date": null,
"requested_window_start_time": {},
"requested_window_end_time": {},
"requested_payment_method": "cash",
"payment_verified": false,
"curbside": false,
"created_at": "2024-10-01T20:39:23.000Z",
"updated_at": "2024-10-01T20:41:19.000Z"
},
"order_items": [
{
"item_id": 32713,
"product_id": 800583,
"sku_id": 107907,
"manifest_item_id": null,
"product_name": "'oh' McDonald Farms - Nuken (1g)",
"product_brand": "'oh' McDonald Farms",
"product_strain": "Nuken",
"weight": "1.1g",
"quantity": 1,
"unit_quantity": "1.1",
"price": 1500,
"discount": 0,
"tax": 473,
"tier_weight_id": null,
"coupons": [],
"taxes": [],
"created_at": "2024-10-01T20:36:21.000Z",
"updated_at": "2024-10-01T20:36:21.000Z"
}
]
}
Incoming Quotes
4 endpoints
PUT
/api/{token}/v1/incoming_quotes/{id}/finalize
Finalize an incoming quote. Submits an Order.
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
id
|
integer | path | Yes |
Example
curl -X PUT "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_quotes/{id}/finalize" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{...}'
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
POST
/api/{token}/v1/incoming_quotes
Create an incoming quote
Example
curl -X POST "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_quotes" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"quote": {
"incoming_order_id": null,
"venue_id": 3221,
"fulfillment": {
"source": "posabit_v2",
"order_type": "pickup",
"requested_date": null,
"requested_window_start_time": null,
"requested_window_end_time": null,
"tip_amount": 0,
"tip_type": null,
"processing_fee": 300,
"tip_calculated": 0,
"delivery_address": {
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": ""
}
},
"customer": {
"first_name": "Jane",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551112222",
"customer_type": "recreational"
},
"payment": {
"requested_payment_method": "cash"
},
"items": [
{
"sku_id": 107907,
"quantity": 1,
"product_id": 800583,
"name": "'oh' McDonald Farms - Nuken (1g)",
"unit_type": "g",
"unit": "1.1",
"variant_id": "k107907",
"quantity_on_hand": 30,
"test_results": {
"thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"cbd": {
"current": 10,
"low": 10,
"high": 10,
"unit_type": "%"
},
"thca": null,
"cbda": null,
"total_thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"total_cbd": null,
"thcv": null,
"cbdv": null,
"cbc": null,
"cbca": null,
"cbcv": null,
"cbn": null,
"cbg": null,
"cbga": null,
"cbgv": null
},
"terpene_results": [],
"product_image": {
"is_product_specific_image": true,
"lg": "https://pbit-staging.s3.amazonaws.com/images/image/210/large_image.jpg",
"md": "https://pbit-staging.s3.amazonaws.com/images/image/210/medium_image.jpg"
},
"discount": 0,
"price": 1500,
"discount_ids": []
}
]
}
}'
Request Body
{
"quote": {
"incoming_order_id": null,
"venue_id": 3221,
"fulfillment": {
"source": "posabit_v2",
"order_type": "pickup",
"requested_date": null,
"requested_window_start_time": null,
"requested_window_end_time": null,
"tip_amount": 0,
"tip_type": null,
"processing_fee": 300,
"tip_calculated": 0,
"delivery_address": {
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": ""
}
},
"customer": {
"first_name": "Jane",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551112222",
"customer_type": "recreational"
},
"payment": {
"requested_payment_method": "cash"
},
"items": [
{
"sku_id": 107907,
"quantity": 1,
"product_id": 800583,
"name": "'oh' McDonald Farms - Nuken (1g)",
"unit_type": "g",
"unit": "1.1",
"variant_id": "k107907",
"quantity_on_hand": 30,
"test_results": {
"thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"cbd": {
"current": 10,
"low": 10,
"high": 10,
"unit_type": "%"
},
"thca": null,
"cbda": null,
"total_thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"total_cbd": null,
"thcv": null,
"cbdv": null,
"cbc": null,
"cbca": null,
"cbcv": null,
"cbn": null,
"cbg": null,
"cbga": null,
"cbgv": null
},
"terpene_results": [],
"product_image": {
"is_product_specific_image": true,
"lg": "https://pbit-staging.s3.amazonaws.com/images/image/210/large_image.jpg",
"md": "https://pbit-staging.s3.amazonaws.com/images/image/210/medium_image.jpg"
},
"discount": 0,
"price": 1500,
"discount_ids": []
}
]
}
}
Responses
| Status | Description |
|---|---|
| 400 | Bad Request |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Example
{
"code": 1,
"quote": {
"reference_no": "3221-1727982977-3f59c5f1",
"incoming_order_id": null,
"venue_id": 3221,
"fulfillment": {
"source": "posabit_v2",
"order_type": "pickup",
"requested_date": null,
"requested_window_start_time": null,
"requested_window_end_time": null,
"tip_amount": 0,
"tip_type": null,
"processing_fee": 300,
"tip_calculated": 0,
"delivery_address": {
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": ""
}
},
"customer": {
"first_name": "Jane",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551112222",
"customer_type": "recreational"
},
"payment": {
"requested_payment_method": "cash"
},
"items": [
{
"sku_id": 107907,
"quantity": 1,
"product_id": 800583,
"name": "'oh' McDonald Farms - Nuken (1g)",
"unit_type": "g",
"unit": "1.1",
"variant_id": "k107907",
"quantity_on_hand": 30,
"test_results": {
"thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"cbd": {
"current": 10,
"low": 10,
"high": 10,
"unit_type": "%"
},
"thca": null,
"cbda": null,
"total_thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"total_cbd": null,
"thcv": null,
"cbdv": null,
"cbc": null,
"cbca": null,
"cbcv": null,
"cbn": null,
"cbg": null,
"cbga": null,
"cbgv": null
},
"terpene_results": [],
"product_image": {
"is_product_specific_image": true,
"lg": "https://pbit-staging.s3.amazonaws.com/images/image/210/large_image.jpg",
"md": "https://pbit-staging.s3.amazonaws.com/images/image/210/medium_image.jpg"
},
"discount": 0,
"price": 1500,
"discount_ids": []
}
],
"taxes": [
{
"tax_id": 4286,
"name": "Bellingham, WA",
"price_included": true,
"amount": 93,
"tax_rate": "9.0"
},
{
"tax_id": 4285,
"name": "Cannabis Tax",
"price_included": true,
"amount": 380,
"tax_rate": "37.0"
}
],
"totals": {
"discount_ids": [],
"subtotal": 1500,
"discount": 0,
"tax": 473,
"total": 1500
},
"limits": {
"exceeded_limits": [],
"sum_per_limit": {
"recreational_flower": 1.1
}
}
}
}
GET
/api/{token}/v1/incoming_quotes/{id}
Find an incoming quote
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
id
|
integer | path | Yes |
Example
curl -X GET "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_quotes/{id}" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 404 | Requested reference number or id not found |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
Response Fields
| Field | Type | Nullable | Default |
|---|---|---|---|
customer_type
|
string | Yes |
recreational
|
reference_no
|
string | Yes | — |
subtotal
|
integer | Yes |
0
|
tax
|
integer | Yes |
0
|
discount
|
integer | Yes |
0
|
total
|
integer | Yes |
0
|
tip_amount
|
integer | Yes |
0
|
tip_type
|
string | Yes | — |
created_at
|
datetime | No | — |
updated_at
|
datetime | No | — |
telephone
|
string | Yes | — |
customer_id
|
integer | Yes | — |
order_type
|
string | Yes |
pickup
|
address
|
string | Yes |
|
city
|
string | Yes |
|
state_abbrev
|
string | Yes |
|
zipcode
|
string | Yes |
|
country
|
string | Yes |
US
|
last_name
|
string | Yes | — |
first_name
|
string | Yes | — |
email
|
string | Yes | — |
payment_source
|
string | Yes | — |
requested_payment_method
|
string | Yes | — |
source
|
string | Yes |
posabit_v2
|
requested_date
|
date | Yes | — |
requested_window_start_time
|
time | Yes | — |
requested_window_end_time
|
time | Yes | — |
payment_auth_id
|
string | Yes | — |
tip_calculated
|
integer | Yes |
0
|
processing_fee
|
integer | Yes |
0
|
payment_amount
|
integer | Yes |
0
|
notes
|
text | Yes | — |
ip
|
string | Yes | — |
oauth_token
|
text | Yes | — |
otp
|
string | Yes | — |
Response Example
{
"code": 1,
"quote": {
"reference_no": "3221-1727814981-bb1314bf",
"incoming_order_id": null,
"venue_id": 3221,
"fulfillment": {
"source": "posabit_v2",
"order_type": "pickup",
"requested_date": null,
"requested_window_start_time": null,
"requested_window_end_time": null,
"tip_amount": 0,
"tip_type": null,
"processing_fee": 300,
"tip_calculated": 0,
"delivery_address": {
"address": "",
"city": "",
"state_abbrev": "",
"zipcode": ""
}
},
"customer": {
"first_name": "Jane",
"last_name": "Doe",
"email": "test@posabit.com",
"telephone": "5551111111",
"customer_type": "recreational"
},
"payment": {
"requested_payment_method": "cash"
},
"items": [
{
"sku_id": 107907,
"quantity": 1,
"product_id": 800583,
"name": "'oh' McDonald Farms - Nuken (1g)",
"unit_type": "g",
"unit": "1.1",
"variant_id": "k107907",
"quantity_on_hand": 30,
"test_results": {
"thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"cbd": {
"current": 10,
"low": 10,
"high": 10,
"unit_type": "%"
},
"thca": null,
"cbda": null,
"total_thc": {
"current": 4.2,
"low": 4.2,
"high": 4.2,
"unit_type": "%"
},
"total_cbd": null,
"thcv": null,
"cbdv": null,
"cbc": null,
"cbca": null,
"cbcv": null,
"cbn": null,
"cbg": null,
"cbga": null,
"cbgv": null
},
"terpene_results": [],
"product_image": {
"is_product_specific_image": true,
"lg": "https://pbit-staging.s3.amazonaws.com/images/image/210/large_image.jpg",
"md": "https://pbit-staging.s3.amazonaws.com/images/image/210/medium_image.jpg"
},
"discount": 0,
"price": 1500,
"discount_ids": []
}
],
"taxes": [],
"totals": {
"discount_ids": [],
"subtotal": 1500,
"discount": 0,
"tax": 473,
"total": 1500
},
"limits": {
"exceeded_limits": [],
"sum_per_limit": {
"recreational_flower": 1.1
}
}
}
}
PATCH
/api/{token}/v1/incoming_quotes/{id}
["Update an incoming quote", "Update an incoming quote items"]
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
id
|
integer | path | Yes | |
id
|
integer | path | Yes |
Example
curl -X PATCH "https://app.posabit.com/api/YOUR_API_TOKEN/v1/incoming_quotes/{id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{...}'
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
Employees
1 endpointsEmployee management through the POSaBIT web portal allows you to easily create and manage all employees. This includes creating or changing their employee PIN number or adjusting their access level. Using the employee groups feature you can easily specify exactly how much access each employee should be given in the web portal.
GET
/api/v1/venue/employees
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/v1/venue/employees" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
Response Example
{
"total_records": 1,
"current_page": 1,
"total_pages": 1,
"per_page": 1,
"employees": [
{
"employeeId": 12998,
"firstName": "Jane",
"created_at": "2022-04-21T22:41:04.000Z",
"updated_at": "2022-04-21T22:41:04.000Z"
}
]
}
Customers
1 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/v1/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) |
Example
curl -X GET "https://app.posabit.com/api/v1/venue/customers" \
-H "Accept: application/json"
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 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": 475,
"current_page": 1,
"total_pages": 475,
"per_page": 1,
"customers": [
{
"customerId": 279159,
"firstName": "JANE",
"created_at": "2019-10-21T20:21:19.000Z",
"updated_at": "2021-10-05T19:31:24.000Z",
"birthyear": 1992,
"gender": "female",
"phone": "5551111111"
}
]
}
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/v1/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/v1/venue/inventories" \
-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": 1182,
"current_page": 1,
"total_pages": 1182,
"per_page": 1,
"products": [
{
"productId": 210111,
"internal_product_identifier": "800566",
"name": "High Five Farms - Ghost Train Haze",
"display_name": "Ghost Train Haze",
"unit": "280.0 gm",
"price": 1300,
"quantityInStock": "0.0",
"vendor": "High Five Farms",
"vendor_license": null,
"brand": "High Five Farms",
"category": "Bulk Flower",
"flowertype": "hybrid",
"concentratetype": null,
"producttype": "hybrid",
"productfamily": "Flower",
"tags": [
"Test Tag",
"Sale Day"
],
"description": "Conducive to concentration and creativity, this sati...",
"image": [
null
],
"active": false,
"bulkitem": true,
"strain": "Ghost Train Haze",
"thcMeasure": "0.0%",
"cbdMeasure": "0.0%",
"sku": "3264-902427",
"discountable": true,
"tier_name": "Top Tier",
"doh_compliant": false,
"effects": [
"Relaxed",
"Creative"
],
"flavors": [
"Flowery"
],
"rooms": [],
"created_at": "2019-10-16T20:37:49.000Z",
"updated_at": "2022-06-14T19:37:38.000Z"
}
]
}
Manifest Items
1 endpoints
GET
/api/v1/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/v1/venue/manifest_items" \
-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": 1325,
"current_page": 1,
"total_pages": 1325,
"per_page": 1,
"restocks": [
{
"restockId": 261876,
"parent_id": null,
"utcDate": "2019-10-16T20:37:49.000Z",
"quantity": "396.0",
"quantityInStock": "-1755.422",
"costPerUnit": 275,
"productId": 210111,
"inventoryId": "WAR414871.IN5SAJM",
"thcMeasure": "19.2%",
"cbdMeasure": "0.0%",
"created_at": "2019-10-16T20:37:49.000Z",
"updated_at": "2022-06-14T19:37:31.000Z"
}
]
}
Sales Histories
1 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/v1/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/v1/venue/sales_histories" \
-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": 197,
"current_page": 1,
"total_pages": 197,
"per_page": 1,
"tickets": [
{
"ticketId": 49052949,
"isMedical": true,
"utcDate": "2022-01-14T23:52:34.000Z",
"localTime": "2022-01-14T15:52:34.000-08:00",
"ticketType": "sale",
"customerId": 279560,
"employeeId": 12777,
"paymentType": "",
"subTotal": 9498,
"discount": 1900,
"tax": 0,
"total": 7857,
"items": [
{
"ticketItemId": 91311967,
"ticketId": 49052949,
"productId": 318604,
"inventoryId": "WAR421642.INOLNTM",
"quantity": 1,
"weight": "1.0",
"cost": 800,
"subTotal": 2500,
"tax": 0,
"discount": 500,
"discountList": [
{
"couponId": 47831,
"couponName": "buy more than $30 of whatever"
}
],
"total": 2000
}
],
"created_at": "2022-01-14T23:52:36.000Z",
"updated_at": "2022-01-14T23:52:36.000Z"
}
]
}