# Loyverse

> Loyverse through One

- Skill: `withoneai/loyverse` (Agent Skill)
- Install (CLI): `npx skillmds@latest add withoneai/loyverse`
- Raw SKILL.md: https://api.skillmd.com/api/skills/withoneai/loyverse/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: withoneai (https://skillmd.com/u/withoneai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/withoneai/loyverse

---


# Loyverse through One

Loyverse is a cloud-based point-of-sale and retail management platform that provides tools for sales processing, inventory tracking, employee management, and customer loyalty programs, allowing retailers, restaurants, and small businesses to manage in-store operations and connect transaction data with business workflows.

One exposes Loyverse through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.

## How to run an action

1. Find the action in the table below, or call `search_one_platform_actions` with platform `loyverse` if it is not listed.
2. Call `get_one_action_knowledge` with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
3. Call `execute_one_action` with parameters copied from that knowledge.

Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.

## Before you start

Call `list_one_integrations` once and confirm Loyverse is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.

Each connection carries an `access` field. If it reports `{"policy": "methods", "methods": ["GET"]}` the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.

## Before a write

Creates, updates, deletes and sends land on a real Loyverse account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.

## Actions

### Items

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Item | GET | `/items/{{itemId}}` | `conn_mod_def::GK1E38mgsCg::353DNGAXQQmiAWiEiJcCsA` |
| List Items | GET | `/items` | `conn_mod_def::GK1E31ONMeA::r4WlTGfdRMiSLaHW55vHpA` |
| Create or Update a Single Item | POST | `/v1.0/items` | `conn_mod_def::GK1E3zV4wWA::FXuwERlOQEmhVdFBMTYzXQ` |
| Delete a Single Item Resource | DELETE | `/items/{{itemId}}` | `conn_mod_def::GK1E3ycnMpA::Jd65Ge8gShGo_JRiHrkbTg` |
| Delete an Item's Image | DELETE | `/items/{{itemId}}/image` | `conn_mod_def::GK1E3zotb9A::L4eT9oF0S4CSOyvmp6mW0g` |
| Upload a Single Item Image | POST | `/items/{{itemId}}/image` | `conn_mod_def::GK1E39CHnDA::5T7o-xSGQyGWwYf7-GyOKQ` |

### Categories

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Category | GET | `/categories/{{categoryId}}` | `conn_mod_def::GK1E3Qo6Gdg::8PmtJ-O8SfSG0nfGRzQL0A` |
| List Categories | GET | `/categories` | `conn_mod_def::GK1E3TGp4WA::qTX9WZWyTYCUTS0zqcu5ng` |
| Create or Update a Category | POST | `/v1.0/categories` | `conn_mod_def::GK1E3Qo6d5g::0p5aSOhAQqe9gsscmueLqA` |
| Delete a Category | DELETE | `/categories/{{categoryId}}` | `conn_mod_def::GK1E3Q6rmRA::2uF6rIuyQzCzKY_kJhF1nw` |

### Customers

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Customer | GET | `/customers/{{customerId}}` | `conn_mod_def::GK1E3bBMtCA::S4_1p53RRCy4snm3SPIX7A` |
| List Customers | GET | `/customers` | `conn_mod_def::GK1E3efXmzA::yaax838BSi2sZLsCDGFETA` |
| Create or Update a Customer | POST | `/v1.0/customers` | `conn_mod_def::GK1E3RqAizg::rF6pgl9CRD2zXBQAqd5VYg` |
| Delete a Customer | DELETE | `/customers/{{customerId}}` | `conn_mod_def::GK1E3bBRrZA::7pfLA2iJSzyH-HsgZTHe-A` |

### Discounts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Discount | GET | `/discounts/{{discountId}}` | `conn_mod_def::GK1E3m4l6kg::m7LrkRBSRfCxEFi9qOmmwg` |
| List Discounts | GET | `/discounts` | `conn_mod_def::GK1E3nmcAzA::G-6vKWUFRG2IvS-6Aw77ew` |
| Create or Update a Discount | POST | `/discounts` | `conn_mod_def::GK1E3bV6NEA::EdhaWec0SYC2-aUZNTf0Vw` |
| Delete a Discount | DELETE | `/discounts/{{discountId}}` | `conn_mod_def::GK1E3bs-rNA::ZgZ8FZ6PQlOTKCbOc_2cEw` |

### Modifiers

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Modifier | GET | `/modifiers/{{modifierId}}` | `conn_mod_def::GK1E4Fbq9gA::weQdRBFdTayal1e9UIquRg` |
| List Modifiers | GET | `/modifiers` | `conn_mod_def::GK1E4IOKAsg::lR7xYulXS_GWxoOGbJBHmQ` |
| Create or Update a Modifier | POST | `/v1.0/modifiers` | `conn_mod_def::GK1E39RsWEA::Dxe_Jk4yQq2a7WcY7MIrDg` |
| Delete a Modifier | DELETE | `/modifiers/{{modifierId}}` | `conn_mod_def::GK1E3994Lgg::K2nOV_sXSrCbPUJgmSCswA` |

### PosDevices

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single POS Device | GET | `/pos_devices/{{posDeviceId}}` | `conn_mod_def::GK1E4QK-GQg::H6LSB4kbSaeLH-Ep4MhHZQ` |
| List POS Devices | GET | `/pos_devices` | `conn_mod_def::GK1E4Rl0y4g::bjFKX1gcQxC7dvulhcsOyw` |
| Create or Update a POS Device | POST | `/pos_devices` | `conn_mod_def::GK1E4GJnzXg::GHzy7TmtSeeelzf2MkCD_g` |
| Delete a POS Device | DELETE | `/pos_devices/{{posDeviceId}}` | `conn_mod_def::GK1E4QkMFLg::Jevks90fRge8ystAYuRdKg` |

### Receipts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Receipt | GET | `/receipts/{{receiptNumber}}` | `conn_mod_def::GK1E4bMCbSg::pXqWIkGRRc-Jr3YxPJ3wMw` |
| List Receipts | GET | `/v1.0/receipts` | `conn_mod_def::GK1E4lAkXQA::0kurVoL4S6qqvuNwquNCmw` |
| Create a Refund Receipt for a Sales Receipt | POST | `/receipts/{{receiptNumber}}/refund` | `conn_mod_def::GK1E4SNK8BA::t2BQzj9uSfOXqtCtLDmgPQ` |
| Create a Sales Receipt | POST | `/receipts` | `conn_mod_def::GK1E4SC_tTg::mRKwLP38Tiu5tjS_z6u-cg` |

### Suppliers

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Supplier | GET | `/suppliers/{{supplierId}}` | `conn_mod_def::GK1E4s66nQA::aQ1qI3ChSXm0R2pc_1O2RQ` |
| List Suppliers | GET | `/suppliers/` | `conn_mod_def::GK1E4tUy2Rg::BYiIAT0bSBe5zgwkSXAsfA` |
| Create or Update a Supplier | POST | `/suppliers/` | `conn_mod_def::GK1E4tU3zqA::ynB8sgc7RKWSC94kIcwWWQ` |
| Delete a Single Supplier | DELETE | `/suppliers/{{supplierId}}` | `conn_mod_def::GK1E4tDj_RA::WJshqEquQLSV-ACCSDp4mQ` |

### Taxes

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Tax | GET | `/taxes/{{taxId}}` | `conn_mod_def::GK1E41sV06A::w6IqiJgyTmSHby2-UdkC8w` |
| List Taxes | GET | `/taxes` | `conn_mod_def::GK1E44gbhcA::kSJvXOZIQm-v5VQUyG96Ow` |
| Create or Update a Single Tax | POST | `/taxes` | `conn_mod_def::GK1E43VDEyg::kkpH1pIaSJ2zBeg1JOjoow` |
| Delete a Tax | DELETE | `/taxes/{{taxId}}` | `conn_mod_def::GK1E41PO-QA::BgrwBNH8QEW_5--fpfoVHw` |

### Variants

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Item Variant | GET | `/variants/{{variantId}}` | `conn_mod_def::GK1E5BSlQog::6rza2rbyTxyVZ32cSpdCuQ` |
| List Item Variants | GET | `/variants` | `conn_mod_def::GK1E5EGvztg::7UuWlmQ3SfCExEXe4-dAgg` |
| Create or Update a Variant | POST | `/variants` | `conn_mod_def::GK1E41slYBg::ga7IbkgsSbujrr-jzkI3VQ` |
| Delete a Variant | DELETE | `/variants/{{variantId}}` | `conn_mod_def::GK1E5AqjKBg::W9k4i9-STi6HGy-1fDE6UQ` |

### Webhooks

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Webhook | GET | `/webhooks/{{webhookId}}` | `conn_mod_def::GK1E5M6lCyg::TNd_de4dTyCLe1F3FPg6_w` |
| List Webhooks | GET | `/webhooks/` | `conn_mod_def::GK1E5N7Ys_A::7nRxakQeTWitSXH38vXWVA` |
| Create or Update a Webhook | POST | `/v1.0/webhooks/` | `conn_mod_def::GK1E5BiEJoA::PKOt0k_aQCeED8YG6x9aZg` |
| Delete a Single Webhook | DELETE | `/webhooks/{{webhookId}}` | `conn_mod_def::GK1E5C8AWHA::xe87ikRwSMGOe2k20XG3ZA` |

### Employees

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Employee | GET | `/employees/{{employeeId}}` | `conn_mod_def::GK1E3m4DmSA::IfePSOVuR5iB8aWFr5fC0g` |
| List Employees | GET | `/v1.0/employees` | `conn_mod_def::GK1E3qKEJmA::kaXgzNc1SC2vqyKwUTvv1A` |

### PaymentTypes

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Payment Type | GET | `/payment_types/{{paymentTypeId}}` | `conn_mod_def::GK1E4GnwtkA::zgsJdOf2RS-NiWJ2SaBRPA` |
| List Payment Types | GET | `/payment_types` | `conn_mod_def::GK1E4H9077g::vdXa1M68S9qLwPSKcRZrCw` |

### Shifts

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Shift | GET | `/shifts/{{shiftId}}` | `conn_mod_def::GK1E4bytuPA::FyRE6rihRYqQjNx6TwnBIQ` |
| List Shifts | GET | `/v1.0/shifts` | `conn_mod_def::GK1E4dxJrAA::oiF2tCmvRX6S50kYU0q3CA` |

### Stores

| Action | Method | Path | Action id |
|---|---|---|---|
| Get a Single Store | GET | `/stores/{{storeId}}` | `conn_mod_def::GK1E4sUHAFA::76BAN5j-Qqic5nFjMCDQXA` |
| List Stores | GET | `/stores` | `conn_mod_def::GK1E4eS1fqA::c3WDd2c3Tjm0EcDeUZU8LQ` |

### Inventory

| Action | Method | Path | Action id |
|---|---|---|---|
| Batch Update Inventory Levels for Item Variants | POST | `/v1.0/inventory` | `conn_mod_def::GK1E3nwJhKg::besEYevDQEOJRLQ4tsLXEg` |

### InventoryLevels

| Action | Method | Path | Action id |
|---|---|---|---|
| List Inventory Levels for Item Variants | GET | `/inventory` | `conn_mod_def::GK1E3zeUabg::xvzs-916Sx6Bs9pwxcoXsA` |

### Merchant

| Action | Method | Path | Action id |
|---|---|---|---|
| Get Merchant Information | GET | `/merchant/` | `conn_mod_def::GK1E388qcXg::u-f3MUekTq-I6ra6kIL2XA` |

## When a call fails

The error comes from Loyverse, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.

Full catalog: https://www.withone.ai/knowledge/loyverse

Integration knowledge by One (withone.ai), licensed under [One-Knowledge-1.0](https://www.withone.ai/licenses/knowledge). Attribution must be preserved in derivative works.

