Venue API V2
Endpoints
-
GET
/api/{token}/v2/menu_feeds/{id} -
GET
/api/v2/menu_feeds/{menu_feed_id}/options -
GET
/api/v2/venue/info -
GET
/api/v2/venue/coupons -
GET
/api/v2/venue/customers -
POST
/api/v2/venue/customers -
GET
/api/v2/venue/customers/{id} -
PATCH
/api/v2/venue/customers/{id} -
GET
/api/v2/venue/inventories -
GET
/api/v2/venue/manifest_items -
GET
/api/v2/venue/manifests -
GET
/api/v2/venue/sales_histories -
GET
/api/v2/venue/sales_histories/{id} -
GET
/api/v2/venue/terminal_tills -
GET
/api/v2/venue/users
GET
/api/v2/venue/info
Venue Info
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"
}
}
GET
/api/v2/venue/coupons
Get all available coupons for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
page
|
integer | query | No | Page Number |
per_page
|
integer | query | No | Results per page (default 1000) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/customers
Get all customers for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer (AuthToken) |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success (returns an array of customers) |
| 401 | Unauthorized |
POST
/api/v2/venue/customers
Create a Customer
Post JSON in body {"customer": {"first_name": "John"...}}
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer (AuthToken) |
body
|
customer | body | Yes | JSON formatted body |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
GET
/api/v2/venue/customers/{id}
Read a customer
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer (AuthToken) |
id
|
integer | path | Yes | Customer ID |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 400 | Bad Request |
| 422 | Invalid parameters |
| 500 | Internal Server Error |
PATCH
/api/v2/venue/customers/{id}
Update a Customer
Patch JSON in body {"customer": {"first_name": "John"...}}
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer (AuthToken) |
id
|
integer | path | Yes | Customer ID |
body
|
customer | body | Yes | JSON formatted body |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 204 | Record not found |
| 400 | Bad Request |
GET
/api/v2/venue/inventories
Get all inventories for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/manifest_items
Get all manifest items for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/manifests
Get all manifest items for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/sales_histories
Get all sales histories for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/sales_histories/{id}
Get a sales history for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
id
|
integer | path | Yes | Sales History ID |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
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"
}
}
GET
/api/v2/venue/terminal_tills
Get all terminal tills for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |
GET
/api/v2/venue/users
Get all users for a venue
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
Authorization
|
string | header | Yes | Bearer --Authentication token-- |
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) |
Responses
| Status | Description |
|---|---|
| 200 | Success |
| 401 | Unauthorized |