canonical: https://jentic.com/apis/apideck.com/pos

# Apideck POS API

The Apideck POS API is a unified interface across point-of-sale platforms including Square, Clover, Lightspeed, Toast, and Shopify POS. A single set of 46 endpoints covers orders, payments, merchants, locations, items, modifiers, modifier groups, order types, and tenders, eliminating the need to maintain a separate integration per POS vendor. Orders, payments, and the surrounding catalog resources support full CRUD plus a dedicated POST /pos/orders/{id}/pay endpoint that closes out an order. Designed for marketplaces, loyalty programs, and back-office tools that need to read or write to whichever POS the merchant runs.

## For AI agents

Create orders, capture payments, and manage menu items, modifiers, and locations across Square, Clover, Lightspeed, Toast, and Shopify POS through one unified API.

## Scope

Does not handle e-commerce storefronts, inventory forecasting, or loyalty point ledgers - use for in-person POS orders, payments, and merchant catalog operations only.

## Capabilities

- Create an order with line items and modifiers, then close it out via POST /pos/orders/{id}/pay
- Capture, list, retrieve, update, and refund payments through the /pos/payments endpoints
- Sync a merchant's menu by managing items, modifiers, and modifier groups
- List and update merchant and location records to support multi-site rollouts
- Configure order types (dine-in, takeout, delivery) per merchant
- Manage tenders so the POS can record cash, card, and gift-card transactions

## Use cases

### Online Ordering Connected to In-Store POS

Build an online ordering experience (web or app) that drops orders directly into the merchant's POS - Square, Clover, Lightspeed, Toast, or Shopify POS - without writing a separate integration per platform. POST /pos/orders creates the order with line items and modifiers, then POST /pos/orders/{id}/pay records the payment. Items, modifiers, and locations are read from the same API so the online menu stays in sync.

Example prompt: Create an order at location 'loc_42' with two items including modifier groups, then call POST /pos/orders/{id}/pay with payment_method 'card' and verify the resulting status

### Cross-POS Menu Sync

Push menu changes from a central catalog out to every merchant's POS - items, modifiers, modifier groups, and order types are normalised across providers. POST and PATCH on /pos/items, /pos/modifiers, and /pos/modifier-groups apply consistently regardless of whether the merchant is on Square or Clover. Useful for franchise tools or multi-location loyalty programs.

Example prompt: For each item in the new menu, PATCH /pos/items/{id} with the updated price; if the item ID does not exist, POST /pos/items to create it

### Sales Reporting and Reconciliation

Aggregate orders, payments, and tender data from a merchant's POS into a back-office reporting tool. GET /pos/orders, GET /pos/payments, and GET /pos/tenders return normalised data across providers, so the same reporting code works whether the merchant runs Square, Clover, or Lightspeed. Useful for accounting integrations and financial dashboards.

Example prompt: List all orders and payments at location 'loc_42' for date 2026-06-08, group by order type, and return total gross sales and total tender count per group

### AI Agent POS Workflow via Jentic

An AI agent fields a request like 'how many lattes did we sell today across all locations?'. Through Jentic, the agent searches 'list pos orders', loads the GET /pos/orders operation, and executes it filtered by date and item. Jentic stores the Apideck Authorization, x-apideck-app-id, and x-apideck-consumer-id headers separately, and the agent never holds raw credentials.

Example prompt: Through Jentic, search 'list pos orders', load GET /pos/orders, filter by date 2026-06-08, then aggregate line items by name and return the count for 'Latte'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /pos/orders | Create an order |
| POST | /pos/orders/{id}/pay | Pay/close an order |
| POST | /pos/payments | Create a payment |
| GET | /pos/payments | List payments |
| POST | /pos/items | Create a menu item |
| GET | /pos/locations | List merchant locations |
| POST | /pos/modifier-groups | Create a modifier group |
| GET | /pos/orders | List orders |

## Key resources

- **Orders** — List, create, get, update, delete, and pay orders
- **Payments** — List, create, get, update, and delete (refund) payments
- **Merchants** — List, create, get, update, and delete merchant records
- **Locations** — List, create, get, update, and delete merchant locations
- **Items** — List, create, get, update, and delete menu items
- **Modifiers** — List, create, get, update, and delete item modifiers (sizes, toppings, options)
- **Modifier Groups** — List, create, get, update, and delete groupings of modifiers
- **Order Types** — List, create, get, update, and delete order types (dine-in, takeout, etc.)
- **Tenders** — List, create, get, update, and delete tender records (cash, card, gift card)

## Why Jentic

- **Setup:** Wiring the Apideck POS API by hand means setting up its API key plus consumer and service headers, learning the unified order and payment shapes, and normalising across point-of-sale platforms yourself. Through Jentic you install once, import Apideck POS from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Apideck POS API puts the order id in the URL path (/pos/orders/{id}/pay) while items and orders are created via the request body, so scope the agent to the operations it needs, such as listing locations and reading orders, and leave out paying an order unless you add it. You choose the allowed operations, so the agent only calls what you list.
- **Credential handling:** Your Apideck API key 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 'list POS locations' or 'read in-person orders', and Jentic returns the matching Apideck POS operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Square API** — Square-only POS, payments, and catalog API with deeper Square-specific features the unified API does not surface.
- **Shopify API** — Shopify Admin API covers Shopify POS plus full e-commerce storefront management.
- **Apideck Vault API** — Vault sets up the OAuth or API key connection the POS API executes against.

## FAQ

### What authentication does the Apideck POS API use?

An apiKey scheme on the `Authorization` header with your Apideck application key, plus `x-apideck-app-id` and `x-apideck-consumer-id` headers identifying the application and the merchant. Through Jentic these are stored encrypted in the vault and injected at execution.

### Can I create an order and capture payment in one workflow?

Yes. POST /pos/orders creates the order with line items and modifiers, then POST /pos/orders/{id}/pay closes it out - supplying the payment method and any tip or tender details. Both calls are normalised across Square, Clover, Lightspeed, Toast, and Shopify POS.

### What are the rate limits for the Apideck POS API?

The OpenAPI spec does not publish per-endpoint rate limits. Apideck applies plan-based limits at unify.apideck.com plus per-connector limits passed through from the underlying POS (Square's 300 req/sec per endpoint, Clover's lower per-merchant burst, etc.). See https://developers.apideck.com for your plan's quotas.

### How do I create an order through Jentic?

Install with `pip install jentic`, then run the search query 'create a pos order'. Jentic returns POST /pos/orders - load its schema, supply location_id, line items with item_id and quantity plus any modifiers, then execute. Follow up with POST /pos/orders/{id}/pay to close out.

### Which POS providers does this API support?

Apideck's POS Unified API normalises Square, Clover, Lightspeed, Toast, and Shopify POS behind a single set of 46 endpoints. The provider used for a given call is determined by the connection associated with the x-apideck-consumer-id; manage connections via the Vault API.

### Can I refund a payment with this API?

Yes. DELETE /pos/payments/{id} initiates a refund/void on the underlying POS. Refund semantics follow the provider's rules - partial refunds and refund windows depend on whether the merchant is on Square, Clover, or another connector.

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

Yes. Because Jentic One is self-hosted, you decide which of the 46 Apideck POS operations your agent may call, so you can allow read-only calls such as listing locations (GET /pos/locations) and reading orders (GET /pos/orders) while leaving out write operations like creating an order (POST /pos/orders) or paying one (POST /pos/orders/{id}/pay). The agent can only invoke the operations you list, and your stored Apideck key is injected at execution rather than exposed to the agent. That lets you grant a reporting agent read access to orders and payments without giving it the ability to close out or refund a transaction.
