Venue API V1

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

Authentication

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 endpoints
The 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

Menu Feeds

2 endpoints
GET /api/{token}/v1/menu_feeds/{menu_feed_id}/options

Show a Menu Feed Configuration

Parameters

Name Type In Required Description
menu_feed_id integer path Yes Feed Key

Example

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

Responses

Status Description
200 Success
400 Bad Request
422 Invalid parameters
500 Internal Server Error
GET /api/{token}/v1/menu_feeds/{id}

Show a Menu Feed

Parameters

Name Type In Required Description
id integer path Yes Feed Key

Example

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

Responses

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

Employees

1 endpoints
Employee 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 endpoints
POSaBIT offers custom profiles for each of your loyalty customers. With just the scan of the customer's ID, the point of sale pulls up the customer’s favorite types of products, displays their purchase history, shows their available loyalty points/rewards, and even has an area where you can easily make notes about the customer.
GET /api/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 endpoints
The default view of the inventory page will show you all of your active inventory, from lowest to highest number of units (or grams) on hand - this is so you can easily see which products are running low. Using the filters on the left side of the page, you can narrow down your search results by a particular product type, brand, supplier, etc.
GET /api/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 endpoints
The Sales window, is where you can see and sort through all of your previous transactions. Use the filters on the left side of the page to sort the transactions however you'd like. You can use this tab when looking for a return or if you'd like to dive into the details of a specific transaction.
GET /api/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"
    }
  ]
}