Bevz Integrator Service

The Bevz Integrator Service is a partner REST API that lets POS vendors and third-party integrators provision and manage stores on the Bevz platform programmatically. It covers store creation, provisioning and deprovisioning; menu upload in CSV or JSON with configurable column mapping and asynchronous status tracking; menu synchronization out to the connected delivery services; product catalog maintenance with per-service pricing and availability; the full order lifecycle from receipt through acceptance, out-for-delivery, completion, rejection and cancellation; post-acceptance order adjustments; and delivery-service onboarding for DoorDash and Grubhub via a single call plus a dedicated three-step OAuth handshake for Uber Eats. Three outbound webhooks push order events, menu upload status and store settings changes. Authentication is a bearer JWT with a 30-day lifetime, minted from Bevz-issued integrator credentials.

Documentation

Specifications

Other Resources

OpenAPI Specification

bevz-integrator-service-openapi.yaml Raw ↑
# generated: '2026-08-13'
# method: searched
# source: https://docs.bevz.com/bevz-openapi.yaml
# note: >-
#   Bevz Integrator Service API, published by Bevz at https://docs.bevz.com/ (Redoc, initialised with
#   Redoc.init("bevz-openapi.yaml")). This file is the provider's own OpenAPI 3.0.3 document with its
#   128 external $ref files resolved inline so it stands alone; the verbatim multi-file bundle exactly
#   as served is preserved under openapi/_original/ (root document plus yaml/apis, yaml/schemas,
#   yaml/responses, yaml/webhooks, yaml/texts, yaml/changelog, yaml/faq — every file HTTP 200 on
#   2026-08-13). Nothing was added to or removed from the contract.
# ownership: >-
#   Verified as Bevz's own contract: info.title "Bevz Integrator Service", info.contact
#   tech@bevz.com, servers[] https://api.bevz.com/integrator-service and
#   https://sandbox-api.bevz.com/integrator-service, served from docs.bevz.com.
# operations: 30
# webhooks: 3 (declared as x-webhooks)
# enhancements: overlays/bevz-integrator-service-overlay.yaml
openapi: 3.0.3
servers:
- url: https://api.bevz.com/integrator-service
  description: Production server
- url: https://sandbox-api.bevz.com/integrator-service
  description: Sandbox server
info:
  title: Bevz Integrator Service
  contact:
    name: API Support
    email: tech@bevz.com
  description: '# Introduction


    Welcome to the Bevz Integrator Service API documentation.


    The Bevz Integrator Service empowers our partners—including integrators and third-party POS providers—to seamlessly manage stores and related operations through a secure, scalable, and high-performance
    REST API platform.


    ## Who is this documentation for?


    This documentation is designed for integrators and third-party POS systems looking to leverage the Bevz SaaS platform to automate and streamline store management, menu operations, and more.


    ## Key Features


    By integrating with the Bevz platform, you gain access to:


    - **Rapid Store Onboarding:** Effortlessly provision and deprovision stores using our dedicated APIs.

    - **Menu Management:** Upload, update, and synchronize store menus programmatically.

    - **User & Access Management:** Manage integrator admin users and developer access for your organization.

    - **Order Processing:** Receive and process orders in real time via webhooks and API endpoints.

    - **Reporting & Analytics:** (Coming Soon) Access comprehensive reporting tools to monitor and optimize your operations.


    Explore the following sections to get started, review API endpoints, and discover best practices for a successful integration with Bevz.

    '
  version: 1.12.0
tags:
- name: Getting Started
  description: "# Development Phase\n\nBefore going live, Bevz will provide you with sandbox credentials to help you implement and test your App integration. You’ll also receive a checklist outlining the\
    \ minimum required APIs that must be integrated before moving to production.  \n\nAs a POS integrator, it’s essential to ensure all required APIs are implemented and tested to meet the criteria for\
    \ a successful integration.\n\n## Quickstart\nUse the following cURL command to test your sandbox credentials and obtain a JWT token for authentication.\n\n**Sample cURL Request:**\n```json\ncurl --location\
    \ 'https://sandbox-api.bevz.com/integrator-service/integrators/login' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n    \"email\": \"sample_email@bevz.com\",\n    \"password\" : \"\
    sample_password\"\n}'\n```\n**Sample Response:**\n```json\n{\n    \"api_version\": \"v1.11.3\",\n    \"status_code\": 200,\n    \"message\": \"Login successful\",\n    \"errors\": [],\n    \"data\"\
    : {\n        \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdhYjIwNGJiLTRhOGEtNGMwMS1iNDUwLTAzZjgzYmY1ZTk0NCIsImVtYWlsIjoiaGFubmFoQGJldnouY29tIiwiY2xpZW50IjoiSU5URUdSQVRPUiIsInNjb3BlIjoiKiIsInN1YiI6IjEiLCJleHAiOjE3NjA2MjUxNjEuODM0LCJpYXQiOjE3NTgwMzMxNjEuODcyLCJhdWQiOiJCZXZ6In0.32MxKENvgTWif58cRUaHIoHg2nGO8z1tP11PwHoM1\"\
    \n    }\n}\n```\n*Note: The token expires every 30 days. To generate a new token, simply log in again.*\n\n## Integration Checklist\n\n### Integrator\n| **API Name** | **Required** |\n|--------------|--------------|\n\
    | [**Setup Order Notification Webhook**](#tag/Integrators/operation/patchOrder) | Yes |\n| [**Setup Menu Upload Notification**](#tag/Integrators/operation/patchMenuUpload) | Yes |\n\n### Integrator\
    \ User\n| **API Name** | **Required** |\n|--------------|--------------|\n| [**Retrieve All Integrator User Access**](#tag/integrator_users/operation/getUser) | No |\n| [**Create Integrator User**](#tag/integrator_users/operation/postUser)\
    \ | No |\n| [**Update Integrator User Access**](#tag/integrator_users/operation/putUser) | No |\n| [**Change Integrator User Password**](#tag/integrator_users/operation/changePassword) | No |\n\n###\
    \ Stores\n| **API Name** | **Required** |\n|--------------|--------------|\n| [**Retrieve All Provisioned Stores**](#tag/Stores/operation/getStores) | Yes |\n| [**Create Store**](#tag/Stores/operation/createStore)\
    \ | Yes |\n| [**Get Store by store_id**](#tag/Stores/operation/getIntegratorStore) | No |\n| [**Patch Store**](#tag/Stores/operation/patchStore) | Yes |\n| [**Provision Store**](#tag/Stores/operation/postStore)\
    \ | Yes |\n| [**Deprovision Store**](#tag/Stores/operation/removeStore) | Yes |\n| [**Menu Upload**](#tag/Stores/operation/postMenu) | Yes |\n| [**Retrieve the Menu Upload Status**](#tag/Stores/operation/getMenu)\
    \ | No |\n| [**Onboard Delivery Service**](#tag/Stores/operation/onboard) | Yes |\n| [**Generate Checkout Link**](#tag/Stores/operation/generateCheckoutLink) | No |\n\n### Store Products\n| **API Name**\
    \ | **Required** |\n|--------------|--------------|\n| [**Get Products**](#tag/Store-Products/operation/getProducts) | No |\n| [**Patch Product**](#tag/Store-Products/operation/patchProduct) | No |\n\
    | [**Delete Product**](#tag/Store-Products/operation/deleteProduct) | No |\n\n### Orders\n| **API Name** | **Required** |\n|--------------|--------------|\n| [**Get Store Orders**](#tag/Order/operation/getStoreOrders)\
    \ | Yes |\n| [**Test Store Orders**](#tag/Order/operation/testStoreOrders) | No |\n| [**Patch Store Orders**](#tag/Order/operation/patchOrderStatus) | Yes |\n\n---\n\n# Going Live\n\nAfter completing\
    \ your integration build, prototyping, and testing phases, you’ll participate in a collaborative testing process.  \nThis involves executing a predefined set of test cases to validate your integration\
    \ and ensure it meets all functional requirements.  \nUpon successful completion, Bevz will grant sign-off, provide production credentials, and initiate the Pilot phase.\n\nTo support effective communication\
    \ and feedback, a collaborative Q&A session will be scheduled for live discussions between your team and Bevz.\n\n## Procedural Breakdown\n\nThe following sections outline the specific procedures to\
    \ follow:\n\n### 1. Menu\n- Upload your menu\n\n### 2. Order Submission and Validation\n- Create a test order\n- Receive order notifications\n- Accept a test order\n- Cancel a test order\n- Mark a test\
    \ order as out for delivery\n- Complete a test order\n\n### 3. Item Modifiers and Availability\n- Update pricing\n- Remove an item from inventory\n\n### 4. Store Status Updates\n- Set restaurant hours\n\
    - Set store online/offline status\n- Adjust delivery service percentages\n\n---\n\n# Base URLs\n\n- `https://sandbox-api.bevz.com/integrator-service` — Developer (Sandbox) Environment  \n- `https://api.bevz.com/integrator-service`\
    \ — Live Production Environment\n\n---\n\n# Authentication\n\nTo access API endpoints, include an API key in the request header.  \nObtain your API key by generating a JWT token using your POS integrator\
    \ user credentials.\n\nJWT is used as an access token to protect your store resources and prevent unauthorized access.  \nLearn more about JWT here: [JWT.io](https://jwt.io)\n\n> **⚠️ Common Errors**\
    \  \n> \n> - **401 Unauthorized:**  \n>   - Your JWT token is missing, expired, or invalid.  \n>   - Ensure you include the header: `Authorization: Bearer yourJWTtoken` in every request.  \n>   - If\
    \ your token is older than 30 days, log in again to obtain a new one.\n\n## Generating a JWT Token\n\n1. Use your email and password to log in via POST `{BaseUrl}/integrators/login`\n    \n    **Sample\
    \ Request Body:**\n    ```json\n    {\n      \"email\": \"sample_email@bevz.com\",\n      \"password\": \"sample_password\"\n    }\n    ```\n\n    **Sample Response:**\n    ```json\n    {\n      \"\
    api_version\": \"v1.11.3\",\n      \"status_code\": 200,\n      \"message\": \"Login successful\",\n      \"errors\": [],\n      \"data\": {\n        \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjdhYjIwNGJiLTRhOGEtNGMwMS1iNDUwLTAzZjgzYmY1ZTk0NCIsImVtYWlsIjoiaGFubmFoQGJldnouY29tIiwiY2xpZW50IjoiSU5URUdSQVRPUiIsInNjb3BlIjoiKiIsInN1YiI6IjEiLCJleHAiOjE3NjA2MjUxNjEuODM0LCJpYXQiOjE3NTgwMzMxNjEuODcyLCJhdWQiOiJCZXZ6In0.32MxKENvgTWif58cRUaHIoHg2nGO8z1tP11PwHoM1\"\
    \n      }\n    }\n    ```\n\n    *Note: The token expires every 30 days. To generate a new token, simply log in again.*\n"
- name: Preparing Your Store
  description: '## Setting Up Your Store


    To fully leverage the Bevz platform, you’ll need to have an active store provisioned within our system. This store acts as the foundation for managing orders, inventory, and other operational data through
    our API. Below, you’ll find guidance on creating a new store, provisioning an existing one, and deprovisioning when necessary.


    ### Creating a New Store


    <img alt="Bevz Create Store Workflow" src="https://join-bevz.s3.us-west-1.amazonaws.com/apidocs_create_store.png" />


    If you don’t already have a store on Bevz, you can easily register a new one using our API. This process allows you to provide all required details, such as the store’s name, address, and other key
    information.


    **Steps to Create a New Store:**

    - Submit a request to the [**Create Store**](#tag/Stores/operation/createStore) API endpoint, including all necessary store details.

    - Receive confirmation that your store has been successfully created.

    - After creation, you’ll receive a unique store identifier (store ID) for future API operations.


    With this store ID, you’ll be able to manage inventory, process orders, and perform other store operations through the API.


    ### Provisioning an Existing Store


    <img alt="Bevz Create Store Workflow" src="https://join-bevz.s3.us-west-1.amazonaws.com/apidocs_provision_store.png" />


    If your store already exists on Bevz but isn’t yet linked to your Integrator account, you’ll need to provision it. Provisioning connects the store to your account, granting you management access.


    **When to Provision:**

    - The store exists on Bevz but isn’t associated with your Integrator account.

    - You want to enable management features for an existing store.


    **Steps to Provision an Existing Store:**

    - Send a request to the [**Provision Existing Store**](#tag/Stores/operation/postStore) API endpoint, specifying the store’s unique identifier.

    - Once provisioned, the store will appear in your account’s managed stores list, and you’ll have full access to its features.


    ### Deprovisioning a Store


    If you no longer need to manage a store through your Integrator account, you can deprovision it. Deprovisioning disconnects the store from your account, making it available for other partners to provision
    if needed.


    **When to Deprovision:**

    - The store is being transferred to another partner.

    - The store is inactive or no longer requires management.

    - You want to clean up unused stores from your account.


    **Steps to Deprovision a Store:**

    - Initiate a request to the [**Deprovision Store**](#tag/Stores/operation/removeStore) API endpoint, specifying the store ID.

    - Once confirmed, the store will be removed from your managed list and can be re-provisioned later if necessary.


    ## Activating Your Store


    To activate your store, you’ll need to set up a Stripe account using the link provided in the [**Create a New Store API**](#tag/Stores/operation/createStore) response.


    ## Onboarding Your Store: Two Methods


    ### 1. Onboard via Delivery Services Onboarding API


    - Onboard your store to DoorDash and Grubhub delivery services using the [**Delivery Services Onboarding API**](#tag/Pick-a-Delivery-Service-for-Onboarding-API/operation/onboard).

    - Onboard your store to Uber Eats using the three-step process outlined in the [**Uber Eats Onboarding API Workflow**](#tag/Uber-Eats-Onboarding-API-Workflow).


    ### 2. Use Our Dedicated Onboarding Page


    If you prefer not to collect bank information via API, we offer a secure, dedicated onboarding page for your convenience.


    **Page URL:** https://sandbox-join.bevz.com/pos/delivery-services


    **Features:**

    - Onboard delivery services such as DoorDash, GrubHub, Uber Eats, and more.

    - Responsive design for all devices.

    - Supports both new and existing customers.

    - Secure onboarding with required parameters.

    - Callback mechanism to notify you upon successful onboarding.


    <img alt="POS Onboarding" src="https://join-bevz.s3.us-west-1.amazonaws.com/pos_onboarding.png" />


    **Onboarding Page URL Parameters:**


    | Parameter         | Description                                 | Required |

    |-------------------|---------------------------------------------|----------|

    | `store_id`        | Unique identifier for the store             | Yes      |

    | `pos_integrator_id` | Identifier for the POS integration        | Yes      |

    | `token`           | Secure authentication token                 | Yes      |

    | `callback_url`    | URL for redirect after onboarding           | Optional |


    **Example URL:**


    ```

    https://sandbox-join.bevz.com/pos/delivery-services?store_id=0000000-000-0000-0000-0000000&pos_integrator_id=1&token=your_token_that_is_in_jwt&callback_url=https://sandbox-join.bevz.com

    ```


    If any required parameters are missing or invalid, an error page will be displayed.

    '
- name: Using Webhooks
  description: "## What Are Webhooks?\n\nWebhooks allow your application to receive real-time notifications from Bevz whenever important events occur—such as new orders or menu upload results. Instead of\
    \ polling our API, simply register your webhook endpoint and Bevz will send you event payloads as soon as they happen.\n\n## Supported Events\n\n- [**Order Notification Webhook:**](#tag/Webhooks/operation/orderWebhook)\
    \ Receive instant updates when new orders are placed or their status changes.\n- [**Menu Upload Webhook:**](#tag/Webhooks/operation/menuUploadWebhook) Get notified about the status of menu uploads,\
    \ including any errors or successful imports.\n- [**Store Status Webhook:**](#tag/Webhooks/operation/storeStatusWebhook) Get notified when store settings change, such as operating hours or delivery\
    \ service configurations.\n\n## Example Payloads\n\n**Order Accepted Event**\n```json\n{\n  type: 'order.accepted',\n  data: {\n    fees: { tipTotal: 0, taxTotal: 4.08 },\n    orderId: 'cfd2ab0f-8e28-4c50-bfc4-8b4242d8884d',\n\
    \    orderProducts: [\n      {\n        \"productSnapshot\": {\n          \"images\": [\n            {\n              \"src\": \"https://bevz-media.s3-us-west-1.amazonaws.com/ef81f97b-1d8a-4f91-906d-3542427e99f2.png\"\
    ,\n              \"primary\": true\n            }\n          ],\n          \"quantity\": \"6 Pack\",\n          \"productId\": \"cd017f3f-fbda-41c1-b9d9-842eab06cbea\",\n          \"taxable\": true,\n\
    \          \"description\": \"Enjoy the refreshing lemon-lime taste in every sip of 7UP.\",\n          \"upc\": \"078000000382\",\n          \"extras\": {},\n          \"priority\": false,\n       \
    \   \"createdAt\": \"2019-08-02T15:11:28.608Z\",\n          \"size\": \"12 oz Cans\",\n          \"price\": 4.99,\n          \"name\": \"7 UP\",\n          \"disabled\": false,\n          \"categories\"\
    : {\n            \"L1\": \"Soft Drinks\",\n            \"L2\": \"Soda\"\n          },\n          \"updatedAt\": \"2019-08-02T15:11:28.608Z\"\n        },\n        \"quantity\": 1,\n        \"productId\"\
    : \"a00dd3f1-dac9-4574-8e23-51a94dd7094c\",\n        \"merchantSuppliedId\": \"507f191e810c19729de860ea\",\n        \"selectedPrice\": 3.99\n      }\n    ],\n    orderStatus: 'ACCEPTED',\n    subTotal:\
    \ 41.89,\n    storeId: '831fd907-b455-4e92-828b-2e5421d057d7',\n    orderTotal: 45.97,\n    createdAt: '2025-09-17T06:59:24.660Z',\n    deliveryId: 'faf5e13e',\n    deliverySource: 'DOORDASH',\n   \
    \ integratorId: '230428004',\n    customerId: 'DOORDASH_CUSTOMER',\n    deliveryDetails: {\n      deliveryId: 'faf5e13e',\n      \"driver\": {\n        \"name\": \"John Doe\",\n        \"phone\": \"\
    91234567890\",\n        \"estimated_time_arrival\": \"string\"\n      }\n      deliveryType: 'DELIVERY',\n      \"customerDetails\": {\n        \"name\": \"Bevz Staging\",\n        \"phone\": \"(917)\
    \ 123-1234\",\n        \"email\": \"string\",\n        \"pinCode\": \"555 55 555\"\n      },\n      deliveryStatus: 'arriving',\n      deliveryInstructions: ''\n    },\n    updatedAt: '2025-09-17T07:06:18.534Z'\n\
    \  }\n}\n```\n\n**Menu Upload Failed Event**\n```json\n{\n  \"id\": 1,\n  \"store_id\": \"6e066cfe-9122-4c30-a7fc-a8894dd72f4h\",\n  \"file_path\": \"https://integrator-menu-569241935122.s3.us-west-1.amazonaws.com/raw/a990fb29-3ea7-4e59-b293-a20574807927_b8c49890-67e5-42b8-aaaa-855ffbe92511.csv\"\
    ,\n  \"status\": \"failed\",\n  \"error_file\": \"https://integrator-menu-569241935122.s3.us-west-1.amazonaws.com/error/a990fb29-3ea7-4e59-b293-a20574807927_b8c49890-67e5-42b8-aaaa-855ffbe92511_error-file.csv\"\
    ,\n  \"date\": \"2023-03-09T04:18:57.658Z\",\n  \"time_completed\": \"\"\n}\n```\n\n**Store Settings Updated Event**\n```json\n{\n  \"event\": \"store_settings_updated\",\n  \"bevzStoreId\": \"831fd907-b455-4e92-828b-2e5421d057d7\"\
    ,\n  \"data\": {\n    \"hours\": [\n      {\n        \"type\": \"DAILY_HOURS\",\n        \"days\": [1, 2, 3, 4, 5, 6, 7],\n        \"openTime\": \"09:00 AM\",\n        \"closeTime\": \"10:00 PM\"\n\
    \      }\n    ]\n  }\n}\n```\n\n## How to Set Up Webhooks\n\n1. **Create Your Webhook Endpoint:**  \n   Set up a URL on your server to receive POST requests from Bevz. Your endpoint should accept JSON\
    \ payloads and handle authentication if needed.\n\n2. **Register Your Webhook with Bevz:**\n   Use the following endpoints to register your webhook URLs:\n   - [Setup Order Notification Webhook](#tag/Integrators/operation/patchOrder)\n\
    \   - [Setup Menu Upload Notification](#tag/Integrators/operation/patchMenuUpload)\n   - **Setup Store Status Webhook:** To enable store status notifications for your integration, please contact your\
    \ Bevz POS integration manager.\n\n3. **(Optional) Secure Your Webhook:**  \n   For added security, you can require a shared secret or token in the request headers or body. Contact your POS integration\
    \ manager to enable this feature.\n\n4. **Receive and Process Events:**  \n   When an event occurs, Bevz will send a POST request to your webhook URL with a JSON payload describing the event. Your system\
    \ should process this data and take any necessary actions (e.g., update your database, notify staff, etc.).\n\n## Best Practices\n\n- Always verify the authenticity of incoming webhook requests.\n-\
    \ Respond with a `200 OK` status to acknowledge receipt.\n- Log webhook events for troubleshooting and auditing.\n- Handle retries gracefully—Bevz may resend events if your endpoint does not respond\
    \ successfully.\n"
- name: Uploading store menu
  description: "## Uploading Your Store Menu\n\nBevz supports two convenient ways to upload your store's menu:\n\n- **CSV File Upload**\n- **JSON Payload in the Request Body**\n\nFor both formats, the following\
    \ fields are **required**: `upc`, `name`, and `price`.\n\n### How It Works\n\n- When you upload a menu, Bevz matches each UPC with products in our database. If a match is found, the product is enabled\
    \ for your store.\n- If any products do not match, you’ll receive a downloadable error file listing those items.\n\n### Sample CSV Upload\n\n| upc           | name                       | price | description\
    \ | stock | quantity | size         | imageurl                                                        |\n|---------------|----------------------------|-------|-------------|-------|----------|--------------|-----------------------------------------------------------------|\n\
    | 00980012301   | FERRERO ROCHER             | 1.99  | Chocolate   | 10    | single   | 12 piece box | https://bevz-media.s3-us-west-1.amazonaws.com/example.png       |\n| 00980080005   | NUTELLA  \
    \                  | 1.0  | Chocolate spread | 10 | single | 350g | https://bevz-media.s3-us-west-1.amazonaws.com/example.png\n| ...           | ...                        | ...   | ...         | ...\
    \   | ...      | ...          | ...                                                             |\n\n### Sample JSON Upload\n\n```json\n{\n  \"menu\": [\n    {\n      \"name\": \"Ben & Jerry's the Tonight\
    \ Dough (16 oz)\",\n      \"upc\": \"76840485116\",\n      \"description\": \"Ben and Jerry's The Tonight Dough Caramel & Chocolate Ice Cream\",\n      \"price\": \"8.90\",\n      \"stock\": \"10\"\
    ,\n      \"size\": \"1 Pint\",\n      \"quantity\": \"Single\",\n      \"imageurl\": \"https://bevz-media.s3-us-west-1.amazonaws.com/example.png\"\n    }\n  ]\n}\n```\n\n### Checking Upload Status\n\
    \n- Use [Retrieve the menu upload status](#tag/Stores/operation/getMenu) to check the status of your upload, download the error file, and see which products were successfully enabled.\n- You can also\
    \ receive real-time updates by configuring a [Menu Upload Webhook](#tag/Webhooks/operation/menuUploadWebhook).\n\n\n> **⚠️ IMPORTANT**  \n> - Ensure all required fields are present and valid.\n> - Use\
    \ the error file to quickly identify and correct any issues with your menu data.\n> - For large menus, consider breaking uploads into smaller batches for easier troubleshooting.\n\n## Error file\nThe\
    \ error file is a CSV that lists products from your upload that did not match any existing items in the Bevz database. Use this file to review and correct any discrepancies.\n\n#### Sample Error File\n\
    \n| quantity | size   | price | name                | upc        | description      | stock | merchantSuppliedId | reason                                      |\n|----------|--------|-------|---------------------|------------|------------------|-------|--------------------|----------------------------------------------|\n\
    | 1        | 1 item | 0.75  | SVC                 | svc1       | -SVC 1.00        | 8     | svc1               | INVALID_UPC                                 |\n| 1        | 1 item | 3.49  | SNAK CLUB\
    \           | 8707621641 | NON-TAXABLE      | 4     | 8707621641         | UPC_NOT_FOUND                                |\n| 1        | 1 item | -5.99 | SC LM CASHEWS 4.50Z | 8707641135 | NOTX - SNACKS\
    \    | 3     | 8707641135         | Invalid amount value, must be numbers only   |\n| 1        | 1 item | 2.99  |                     | 8707641136 | NOTX - SNACKS    | 2     | 8707641136         | Invalid\
    \ name format                          |\n| 1        | 1 item | 3.99  | SC LM CASHEWS 4.50Z | 8707641137 | NOTX - SNACKS    | -5    | 8707641137         | Invalid stock count value, must be numbers\
    \ only |\n\n#### Error Reason Explanations\n\n| Reason                                          | Explanation                                                                                   |\n|-------------------------------------------------|-----------------------------------------------------------------------------------------------|\n\
    | INVALID_UPC                                     | The provided UPC is not in a valid format or contains invalid characters.                     |\n| UPC_NOT_FOUND                                 \
    \  | The UPC does not match any product in the Bevz database.                                      |\n| Invalid amount value, must be numbers only      | The price field contains a non-numeric value\
    \ or a negative number, which is not allowed.      |\n| Invalid name format                             | The product name is missing or contains invalid characters.                                \
    \   |\n| Invalid stock count value, must be numbers only | The stock field contains a non-numeric value or a negative number, which is not allowed.      |\n"
- name: Receiving and processing order
  description: '## Receiving Orders


    Bevz makes it easy to receive and process orders in real time using webhooks and our order management API.


    ### 1. Receive Order Notifications


    - Register your webhook endpoint using [Setup Order Notification Webhook](#tag/Integrators/operation/patchOrder).

    - When a new order is placed or its status changes, Bevz will send a POST request to your webhook with all relevant order details.


    ### 2. Accepting or Updating Orders


    - Use [Patch Order Status](#tag/Order/operation/patchOrderStatus) to accept, update, or cancel orders.

    - Update your internal systems and trigger any necessary notifications or workflows.


    ### 3. Completing Orders


    - When an order is fulfilled and handed over to the delivery service or courier, update its status using [Patch Order Status](#tag/Order/operation/patchOrderStatus).

    - This will trigger notifications and update your records accordingly.


    ### 4. Testing Orders


    - Use [Test Order Status](#tag/Order/operation/testStoreOrders) to simulate order flows and ensure your integration is working as expected.

    - This endpoint allows you to finalize test orders, process payments, and verify that notifications and webhooks are triggered correctly.


    ## Best Practices


    - Always acknowledge webhook events with a `200 OK` response.

    - Validate and log all incoming order data.

    - Handle order status changes promptly to ensure a smooth customer experience.

    - Use the test endpoints to verify your integration before going live.


    For more details, see the [Order API documentation](#tag/Order).

    '
- name: integrators
- name: stores
- name: integrator_users
  description: The Integrator Users API allows you to manage user accounts and access permissions for your integrator account.
  x-displayName: Integrator Users
- name: Delivery Services Onboarding
  description: The Delivery Services Onboarding API enables you to onboard your store to various delivery services partnered with Bevz.
- name: Uber Eats Onboarding API Workflow
  description: 'The Uber Eats API allows you to onboard your store to Uber Eats and manage related operations.


    Uber Eats onboarding is a three-step process:

    1. **Generate OAuth URL:** Obtain an authorization link for the store owner to grant access.

    2. **Exchange Authorization Code:** After authorization, exchange the received code for an access token.

    3. **Provision Store:** Use the access token and Uber Eats store ID to complete the onboarding and enable integration features.


    ### Process Flow

    <img alt="Bevz Create Store Workflow" src="https://join-bevz.s3.us-west-1.amazonaws.com/apidocs_ubereats_pos_workflow.png" />

    '
- name: Pick a Delivery Service for Onboarding API
  description: 'This document outlines the integration flow for onboarding new DoorDash and Grubhub stores through the [Delivery Services Onboarding API](#tag/Pick-a-Delivery-Service-for-Onboarding-API/operation/onboard).


    ## DoorDash Onboarding


    ### Overview

    Onboarding a store to DoorDash is an asynchronous process initiated by Bevz via a webhook. Once the POS sends a request to the [Delivery Services Onboarding API](#tag/Pick-a-Delivery-Service-for-Onboarding-API/operation/onboard),
    DoorDash processes the information, performs necessary checks, and notifies Bevz of the outcome through a webhook.


    ### Process Flow

    1. **Initiate Onboarding Request**

    - The POS sends a request to the Delivery Services Onboarding API with all required store and sensitive information.

    - Refer to the [Delivery Services Onboarding API](#tag/Pick-a-Delivery-Service-for-Onboarding-API/operation/onboard) for required fields.

    2. **DoorDash Processing**

    - DoorDash attempts to map the store using the provided details, requests approval from the merchant, and performs internal checks such as menu QA and business admin verification.

    3. **Receive Webhook Notification**

    - Once DoorDash completes processing, they send a webhook notification to Bevz indicating the onboarding status (e.g., approved, pending, rejected) and any relevant details or next steps.

    4. **Finalize Onboarding**

    - The integration is activated once all requirements and approvals are met. If issues arise (e.g., missing hours, menu errors, compliance problems), DoorDash notifies the merchant and Bevz for resolution.



    ## Grubhub Onboarding


    ### Overview

    The onboarding process enables POS systems to initiate a Grubhub store onboarding request via the [Delivery Services Onboarding API](#tag/Pick-a-Delivery-Service-for-Onboarding-API/operation/onboard).
    Bevz provides an auto-populated onboarding form, which the POS can present to the store. After submission, a Grubhub representative contacts the store to complete setup.


    ### Process Flow

    1. **Initiate Onboarding Request**

    - The POS sends a request to the Delivery Services Onboarding API.

    - This request contains the required store information (e.g., store details, sensitive data).

    2. **Generate Onboarding Link**

    - Bevz responds with a unique onboarding link.

    - This link points to a form that is pre-filled with store data provided in step 1.

    3. **Customer Completes Form**

    - The POS system embeds or redirects the store to the generated onboarding link.

    - The store reviews and completes the form.

    4. **Grubhub Representative Follows Up**

    - Once the store submits the form, the information is sent to Grubhub.

    - A Grubhub representative contacts the store to finalize onboarding and assist with setup.

    '
- name: Store Products
  description: Store Products refer to inventory items that are available in a specific store. These products can be managed, updated, and retrieved through the Store Products API.
- name: Lotto Scratcher Games
  description: '## Lotto Scratcher Games


    Retrieve lottery scratch-off game data from supported state lotteries. This endpoint provides game catalogs that can be used to display lotto ticket information in POS systems.


    ### Supported Lotteries

    - California (CA_LOTTERY)

    - Massachusetts (MA_LOTTERY)

    - Ohio (OH_LOTTERY)

    - Michigan (MI_LOTTERY)

    - Arizona (AZ_LOTTERY)

    - Connecticut (CT_LOTTERY)

    - Illinois (IL_LOTTERY)

    - Georgia (GA_LOTTERY)

    - Florida (FL_LOTTERY)


    ### UPC Barcode Lookup

    When a customer''s lottery ticket is scanned, pass the 12-digit UPC-A barcode along with the source to look up the specific game. The system extracts the game number from the barcode and returns the
    matching game details.

    '
- name: models
  x-displayName: Models
  description: "# Store\n  <SchemaDefinition schemaRef=\"#/components/schemas/Store\" />\n\n# User\n  <SchemaDefinition schemaRef=\"#/components/schemas/User\" />\n\n# Store Products\n  <SchemaDefinition\
    \ schemaRef=\"#/components/schemas/StoreProducts\" />  \n\n# Order\n  <SchemaDefinition schemaRef=\"#/components/schemas/Order\" />\n  \n# Menu Upload\n  <SchemaDefinition schemaRef=\"#/components/schemas/IntegratorMenu\"\
    \ />\n"
- name: faq
  description: "# How do I sign up for an Integrator account?\n  To get started with your Bevz integration, please email your request to [support@bevz.com](mailto:support@bevz.com).\n  An Integrator Account\
    \ Manager will guide you through the onboarding process.\n\n# Common HTTP Error Codes

# --- truncated at 32 KB (411 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bevz/refs/heads/main/openapi/bevz-integrator-service-openapi.yaml