canonical: https://jentic.com/apis/deliveryhero.com/deliveryhero-pos-plugin-api

# Delivery Hero POS Plugin API

Jentic publishes the only available OpenAPI specification for Delivery Hero POS Plugin API, keeping it validated and agent-ready. The API is the contract that POS systems implement so Delivery Hero's order processing service can dispatch live orders, accept status updates, and trigger menu imports for restaurants on Foodpanda, Talabat, and other Delivery Hero brands. The surface is small but tightly scoped: orders are pushed to the POS, the POS reports back status, and menu imports are triggered on demand with a callback for completion.

## For AI agents

Receive orders dispatched from Delivery Hero brands into a POS, update order status back to Delivery Hero, and trigger menu imports.

## Scope

Does not handle payments, courier dispatch, customer-facing storefront content, or marketing campaigns - use for POS-side order ingestion, status updates, and menu imports only.

## Capabilities

- Receive orders dispatched from Delivery Hero into a POS via POST `/order/{remoteId}`
- Update the POS-side status of an order back to Delivery Hero through PUT `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus`
- Trigger a menu import for a restaurant with GET `/menuimport/{remoteId}`
- Acknowledge catalog import completion via the POST /{catalogImportCallback} hook
- Bridge a third-party POS to Foodpanda, Talabat, and other Delivery Hero brands

## Use cases

### POS Integration for Delivery Hero Brands

Connect a third-party POS to Foodpanda, Talabat, and other Delivery Hero brands by implementing this plugin contract. Delivery Hero pushes each new order to POST `/order/{remoteId}`, the POS responds with status changes via the posOrderStatus PUT, and menu changes are pulled with the menu import endpoint. This is the canonical integration shape Delivery Hero expects from POS partners.

Example prompt: Implement POST `/order/{remoteId}` in the POS, accept the dispatched order payload, and respond with PUT posOrderStatus when the order is accepted.

### Real-Time Order Status Sync

Keep Delivery Hero in sync with kitchen reality by reporting status transitions (accepted, preparing, ready, completed, rejected) through the posOrderStatus PUT endpoint. This avoids stale order screens for couriers and customers and feeds Delivery Hero's SLA dashboards.

Example prompt: When the kitchen marks an order ready, call PUT `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus` with the new status.

### Menu Import on Demand

Refresh a restaurant's catalog on Delivery Hero by calling GET `/menuimport/{remoteId}` from the POS or a back-office tool. Completion is reported asynchronously via the catalog import callback, so the POS knows when the new menu is live on the storefront.

Example prompt: Call GET `/menuimport/{remoteId}` to start a menu import, then handle the catalog import callback to confirm completion.

### AI Agent Integration via Jentic

An operations agent can use Jentic to push order status updates back to Delivery Hero or kick off menu imports across a fleet of restaurants. Jentic resolves the Bearer token from the vault and exposes typed schemas for each operation, so the agent can act on the integration without reading the underlying contract.

Example prompt: Use Jentic to search for 'update delivery hero pos order status', load the operation, and execute it with the order id and new status.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/order/{remoteId}` | Dispatch an order to the POS plugin |
| PUT | `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus` | Update POS order status |
| GET | `/menuimport/{remoteId}` | Trigger a menu import |
| POST | `/{catalogImportCallback}` | Receive catalog import status callback |

## Key resources

- **Orders** — Receive orders from Delivery Hero and report status back from the POS
- **Menu** — Trigger menu imports and acknowledge catalog import completion

## Why Jentic

- **Setup:** Wiring the Delivery Hero POS Plugin API by hand means learning its JWT bearer auth with the required service claim, pointing at the integration-middleware host, and mapping order ingestion, status updates, and menu import yourself. Through Jentic you install once, import the Delivery Hero POS Plugin API from the API Directory, store the bearer token once, and your agent calls it.
- **Permission scoping:** Delivery Hero puts the remote order id in the URL path (`/order/{remoteId}`, `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus`), so a rule can pin your agent to one order. You choose the operations it may call, so posting a new order or updating its status are included only if you add them.
- **Credential handling:** Your Delivery Hero bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'update delivery hero pos order status', and Jentic returns the matching operation with its full schema so the agent calls the right endpoint without reading the integration doc set.

## Related APIs

- **Toast POS API** — Restaurant POS platform whose order data often needs to flow into Delivery Hero.
- **Square API** — Square POS and payments stack used by many restaurants on aggregator platforms.
- **Lightspeed API** — Hospitality POS used by restaurants that may also serve Delivery Hero brands.
- **Grubhub API** — Food delivery marketplace API for the US covering similar order dispatch concerns.

## FAQ

### Why is there no official OpenAPI spec for Delivery Hero POS Plugin API?

Delivery Hero does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Delivery Hero POS Plugin API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Delivery Hero POS Plugin API use?

The Delivery Hero POS Plugin API uses HTTP Bearer token authentication. Tokens are issued by Delivery Hero to onboarded POS partners. Through Jentic, tokens are stored encrypted in the vault so they never appear in the agent's context.

### Can I receive new Delivery Hero orders into my POS through this API?

Yes. POST `/order/{remoteId}` is the dispatch endpoint Delivery Hero calls when a new order arrives for a restaurant. The POS implements this endpoint, parses the order payload, and acknowledges with a status update.

### How do I update an order's status back to Delivery Hero?

Call PUT `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus` with the new status (for example accepted, preparing, ready, or completed). Delivery Hero uses these updates to drive courier dispatch and customer-facing screens.

### How do I trigger a menu import for a restaurant?

Call GET `/menuimport/{remoteId}` for the restaurant whose catalog needs refreshing. Completion is reported asynchronously through the POST /{catalogImportCallback} hook, which the POS implements to confirm the import finished.

### How do I push order status updates through Jentic?

Run `pip install jentic`, search for 'update delivery hero pos order status', load PUT `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus`, and execute with the order ids and new status. Jentic handles the Bearer auth from the vault.

### Can I limit what my agent is allowed to do with the Delivery Hero POS Plugin API?

Yes. Because you run Jentic One yourself, your own rules decide which of this API's operations the agent may call, so dispatching an order to POST `/order/{remoteId}` or updating status with PUT `/remoteId/{remoteId}/remoteOrder/{remoteOrderId}/posOrderStatus` are available only if you include them. The remote order id sits in the URL path, so a rule can pin the agent to a single order rather than the whole account. The Bearer token stays with your instance and is injected only at execution, so you control both the operations and the credentials the agent can use.
