Venue API V3
Resources
Incoming Orders
3 endpoints/api/v3/incoming_orders
List venue's current incoming orders. Supports ransack query params for filtering (e.g. q[customer_id_eq]= followed by the customer_id). Other search params are telephone_eq, email_eq, reference_no_eq. Telphone example: q[telephone_eq]= followed by the phone number with no formatting (just digits).
Example
curl -X GET "https://app.posabit.com/api/v3/incoming_orders" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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 |
|---|---|---|---|
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 | — |
/api/v3/incoming_orders
Create an incoming order
Example
curl -X POST "https://app.posabit.com/api/v3/incoming_orders" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-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"
}
]
}
/api/v3/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/v3/incoming_orders/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-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/api/v3/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/v3/incoming_quotes/{id}/finalize" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{...}'
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
/api/v3/incoming_quotes
Create an incoming quote
Example
curl -X POST "https://app.posabit.com/api/v3/incoming_quotes" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-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
}
}
}
}
/api/v3/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/v3/incoming_quotes/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-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
}
}
}
}
/api/v3/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/v3/incoming_quotes/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_TOKEN)" \
-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 |
Info
1 endpoints/api/v3/venue/info
Venue Info
Example
curl -X GET "https://app.posabit.com/api/v3/venue/info" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/coupons" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/customers" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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
}
}
]
}
/api/v3/venue/customers
Create a Customer
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
body
|
customer | body | Yes | JSON formatted body |
Example
curl -X POST "https://app.posabit.com/api/v3/venue/customers" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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
}
}
/api/v3/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/v3/venue/customers/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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
}
}
/api/v3/venue/customers/{id}
Update a Customer
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/v3/venue/customers/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/inventories" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/manifest_items" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/manifests" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/sales_histories" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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"
}
]
}
/api/v3/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/v3/venue/sales_histories/{id}" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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 | — |
Terminal Tills
1 endpoints/api/v3/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/v3/venue/terminal_tills" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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/api/v3/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/v3/venue/users" \
-H "Authorization: Basic BASE64(INTEGRATOR_TOKEN:VENUE_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"
}
]
}