API Reference

The Providers & Integrations API allows you to connect your system to various food delivery platforms ("Providers") like Grubhub, Uber Eats, DoorDash, and more. Through these connections, orders from different channels can be managed centrally via KitchenHub.



βœ… Prerequisites

Before using the API, make sure you have:

  • A KitchenHub account with API access
  • At least one restaurant/store created in your KitchenHub account
  • Any required credentials or access from the third-party provider (e.g., DoorDash credentials)


πŸ› οΈ Ways to Connect Providers

There are two ways to connect providers to your store:

  1. Via the Admin Dashboard – Use the KitchenHub web interface to browse providers and connect them using built-in forms. This method is user-friendly and requires no coding.
  2. Via the API – For programmatic access and integration into your custom systems, use the Providers & Integrations API to list, create, and manage provider connections.


πŸ”— How Integration Works



Integration is performed through the creation of an Integration Account via the API. Here’s how it works:

  1. First, use the API to get the list of supported providers and present them to the customer. You can choose to show any provider you want.
  2. As soon as the user selects a provider from the list, you can create a connection (Integration Account) to that provider.
  3. In response, you receive a link to a connection form specific to the chosen provider.
  4. This link should be opened by the end user (restaurant owner/manager), who will fill in their credentials or authorize access. Ideally, open the link automatically in the user's browser to streamline the process.
  5. Once the form is submitted, KitchenHub finalizes the connection in the background. After submission, the user is redirected to the redirect_url that was provided during the Integration Account creation.
  6. Each provider has its own connection flowβ€”some establish the integration immediately, while others may take several days. In such cases, it's important to monitor the integration status either by polling the API periodically or by listening for webhook notifications when the status changes. This allows your system to stay in sync and know exactly when the provider becomes fully connected.


πŸ”„ Integration Account Statuses

  • pending: Waiting for user to complete the connection form
  • connected: Successfully connected and ready to use
  • failed: Connection attempt failed (e.g., incorrect credentials or timeout)
  • paused: The integration is temporarily disabled by the user or system
  • disconnected: The integration was removed or invalidated


βš™οΈ Post-Connection Actions

  • Orders will automatically sync from the provider to your KitchenHub platform
  • You can retrieve or send menus (depending on the provider's supported capabilities)
  • You can pause the integration temporarily (e.g. during downtime or reconfigurations)

πŸ“˜

Why pause an integration?

Pausing prevents order flow from a provider without deleting the connection. This is helpful during temporary closures, maintenance, or operational pauses, ensuring that no orders are lost but also no false availability is communicated to platforms.



πŸ“‘ How to Get List of Supported Integrations

GET /api/v2/integrations/providers

πŸ†• How to Create a New Integration Connection

POST /api/v2/integration_accounts
  • provider_id
  • store_id
  • redirect_url

πŸ” How to Get Integration Details (Including Status)

GET /api/v2/integration_accounts/{integration_account_id}

🏬 How to List Integrations for a Store

GET /api/v2/stores/{store_id}/integration_accounts

⏸️ How to Pause or Resume an Integration

POST /api/v2/integration_accounts/{integration_account_id}/pause
POST /api/v2/integration_accounts/{integration_account_id}/resume

🧩 Provider Capabilities

Providerprovider_idOrder APIMenu API
Doordashdoordashβœ… tablet protocol❌
Doordash POSdoordash_posβœ… POS protocolβœ… full support
Grubhubgrubhubβœ… tablet protocol❌
Grubhub POSgrubhub_posβœ… POS protocolβœ… full support
Uber Eatsubereatsβœ… parallel & full protocolβœ… full support
Chownowchownowβœ…βŒ
GloriaFoodgloriafoodβœ…βœ… full support
Flipdishflipdishβœ…βœ… (read only)
Beyond Menubeyondmenuβœ…βŒ
Cloudwaitresscloudwaitressβœ…βŒ
Eatstreeteatstreetβœ…βŒ
MENUFYmenufyβœ…βŒ



❓ FAQ

Q: What if the user closes the authorization form before completing it?

A: The Integration Account will remain in pending status. You can resend the connection link or delete and recreate the account.

Q: Can one store be connected to multiple providers at once?

A: Yes, KitchenHub is designed to support multiple parallel integrations per store.

Q: What happens if provider credentials expire?

A: The integration will move to disconnected or failed status. You’ll need to reauthorize via a new connection link.

Q: Can I test integrations in a sandbox environment?

A: Some providers can be connected, contact KitchenHub support for sandbox access for provider.

Q: Can integrations be managed via the UI?

A: Yes. All integrations can be viewed, created, and paused via both the UI and API.

Q: Why does Grubhub sometimes take time to connect?

A: Grubhub integrations are processed manually and typically become active once a week on Mondays.

Q: What are the two Uber Eats modes?

A: Uber Eats can work in two modes: read-only (parallel protocol) and full mode with full ordering and menu capabilities.

Q: What is the difference between tablet and POS protocols for Grubhub and DoorDash?

A: Both providers support tablet and POS protocols. POS protocol generally provides deeper integration and supports menu upload and syncing, while tablet protocol is more limited.

Q: Why do I see waiting_menu status in some integrations?

A: Some providers (e.g. DoorDash) require a menu to be uploaded before the integration can go live. In such cases, the status will be waiting_menu until the menu is provided.

Q: Why can't I delete a DoorDash integration during connection?

A: DoorDash does not allow integration deletion during the connection phase due to platform limitations. You must wait until the connection completes or fails.

Q: Will restaurants see that they’re connected to KitchenHub?

A: Yes. Most delivery providers display KitchenHub as the technical partner during the connection process.

Q: Can I get test access to provider accounts like DoorDash, Grubhub, or Uber Eats?

A: No. Due to provider policy restrictions, we do not provide direct access to test accounts for these platforms.