# How to integrate PayPal Zettle MCP with Atomic Agent

```json
{
  "title": "How to integrate PayPal Zettle MCP with Atomic Agent",
  "toolkit": "PayPal Zettle",
  "toolkit_slug": "zettle",
  "framework": "Atomic Agent",
  "framework_slug": "atomic-agent",
  "url": "https://composio.dev/toolkits/zettle/framework/atomic-agent",
  "markdown_url": "https://composio.dev/toolkits/zettle/framework/atomic-agent.md",
  "updated_at": "2026-10-28T05:34:44.332Z"
}
```

## Introduction

Atomic Agent is an open-source AI agent that runs on your machine and supports local models through llama.cpp. Connect it to 1,500+ apps through Composio, including PayPal Zettle.
This guide uses Atomic Agent's built-in Composio integration. You need Atomic Agent v0.5.6 or later, your own Composio API key, and a PayPal Zettle account. See the [Atomic Agent documentation](https://atomicagent.io/docs/?cta_placement=atomic-agent-docs) for installation instructions.

## Also integrate PayPal Zettle with

- [ChatGPT](https://composio.dev/toolkits/zettle/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/zettle/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/zettle/framework/hermes-agent)

## TL;DR

### How Atomic Agent connects to PayPal Zettle
Atomic Agent connects to Composio's Tool Router over Streamable HTTP MCP. It discovers the tools needed for your request, and Composio handles account authentication.
Execution and account-connection tools follow Atomic Agent's configured approval policy. Review any approval prompt before allowing an action on your connected account.

## Connect PayPal Zettle to Atomic Agent

### Connect PayPal Zettle to Atomic Agent
- Sign up or sign in to the [Composio dashboard](https://dashboard.composio.dev/?cta_placement=atomic-agent-api-key). Copy your API key.
- In Atomic Agent, open the Integrations tab and select Composio. Select API key, press e, paste the key, and press Enter. The tools become available immediately, without a restart.
- Ask Atomic Agent to do something in PayPal Zettle. It searches Composio for the right tool.
- On first use, open the sign-in link returned in the chat. Connect your PayPal Zettle account, then return to Atomic Agent to continue.
### Headless setup
Add the following line to ~/.atomic-agent/.env, replacing YOUR_COMPOSIO_API_KEY with your key. Start Atomic Agent after saving the file.

```bash
COMPOSIO_API_KEY=YOUR_COMPOSIO_API_KEY
```

## What is the PayPal Zettle MCP server, and what's possible with it?

The PayPal Zettle MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your PayPal Zettle account. It provides structured and secure access to your product library, inventory, purchases, finance data, tax settings, and webhook subscriptions, so your agent can manage products and categories, track stock, review purchases and transactions, and configure discounts and tax rates on your behalf.
- Product library management: Have your agent create, update, list, count, import, and delete products, categories, product images, discounts, and tax rates in your Zettle library.
- Inventory and stock tracking: Let the agent list inventories, check product stock, review low-stock settings, and monitor inventory tracking across your stores.
- Purchase and finance reporting: Direct your agent to retrieve purchases and refunds, list transactions within a date range, check account balances, and review payout information.
- Tax and discount administration: Instruct your agent to retrieve tax settings, manage tax rates, create or remove discounts, and check how many products use each tax rate.
- Webhook subscription management: Have your agent create and delete Zettle webhook subscriptions for selected events and retrieve the signing key needed to verify incoming messages.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `ZETTLE_COUNT_PRODUCTS` | Count Products | Retrieve the count of existing products for a merchant organization. |
| `ZETTLE_COUNT_PRODUCTS_BY_TAX_RATE` | Count Products By Tax Rate | Get each tax rate and its associated product count. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_CREATE_CATEGORIES` | Create Categories | Create one or more product categories in one request and return creation metadata. |
| `ZETTLE_CREATE_DISCOUNT` | Create Discount | Create a fixed-amount or percentage discount in a product library. |
| `ZETTLE_CREATE_INVENTORY` | Create Inventory | Create one Zettle STORE inventory from its name and optional description. |
| `ZETTLE_CREATE_PRODUCT` | Create Product | Create a product and up to 99 complete embedded variants. |
| `ZETTLE_CREATE_TAX_RATES` | Create Tax Rates | Create up to 15 tax rates in one request. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_CREATE_WEBHOOK_SUBSCRIPTION` | Create Webhook Subscription | Create a Zettle webhook subscription for selected events at a public HTTPS destination and return the signing key needed to verify incoming messages. |
| `ZETTLE_DELETE_CATEGORY` | Delete Category | Permanently delete a category. This cannot be undone; verify the identifier before calling. |
| `ZETTLE_DELETE_DISCOUNT` | Delete Discount | Permanently delete one discount. This cannot be undone; verify the identifier before calling. |
| `ZETTLE_DELETE_PRODUCTS` | Delete Products | Permanently delete one or more products and their embedded variants. This cannot be undone; verify every product UUID before calling. |
| `ZETTLE_DELETE_TAX_RATE` | Delete Tax Rate | Permanently delete one tax rate. This cannot be undone; verify the identifier before calling. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_DELETE_WEBHOOK_SUBSCRIPTION` | Delete Webhook Subscription | Permanently delete a Zettle webhook subscription. This cannot be undone; verify the identifier before calling. |
| `ZETTLE_FETCH_PRODUCT_IMAGE` | Fetch Product Image | Fetch a product image by lookup key, optionally resizing, cropping, or converting it, and return a downloadable file. |
| `ZETTLE_GENERATE_PRODUCT_SLUG` | Generate Product Slug | Create a unique online product slug from a product name. |
| `ZETTLE_GET_DISCOUNT` | Get Discount | Retrieve one discount from a merchant's product library. |
| `ZETTLE_GET_FINANCE_BALANCE` | Get Finance Balance | Get the balance of the merchant's preliminary or liquid Zettle account, optionally at a specified point in time. |
| `ZETTLE_GET_IMPORT_STATUS` | Get Import Status | Return the latest product-library import status, or a specific import when import_uuid is provided. |
| `ZETTLE_GET_INVENTORY` | Get Inventory | Fetch one inventory belonging to the connected Zettle organization. |
| `ZETTLE_GET_PAYOUT_INFO` | Get Payout Info | Get the connected merchant's liquid-account payout balance, next payout amount, voucher discount balance, and payout schedule at a point in time. |
| `ZETTLE_GET_PRODUCT` | Get Product | Retrieve one product and its complete embedded variants. |
| `ZETTLE_GET_PRODUCT_LIBRARY` | Get Product Library | Return one page of the complete product library or changes after an event-log UUID, including full products, embedded variants, and discounts. |
| `ZETTLE_GET_PRODUCT_STOCK` | Get Product Stock | Return one page of variant stock balances from the documented product- and inventory-specific Zettle endpoint, including low-stock settings and a continuation cursor. |
| `ZETTLE_GET_PURCHASE` | Get Purchase | Fetch one immutable Zettle purchase or refund by its UUID version 1, including complete item, payment, discount, tax, and refund details. |
| `ZETTLE_GET_SELECTED_PRODUCTS_STOCK` | Get Selected Products Stock | Return one page of product-variant stock balances for selected products in one Zettle inventory. |
| `ZETTLE_GET_TAX_RATE` | Get Tax Rate | Get one tax rate. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_GET_TAX_SETTINGS` | Get Tax Settings | Get organization tax settings and the organization UUID needed by other Zettle actions. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_GET_TRACKING_STATUS` | Get Tracking Status | Return inventory-tracking status for selected Zettle products. |
| `ZETTLE_IMPORT_LIBRARY_ITEMS` | Import Library Items | Start an asynchronous product import. At least one product is required. Zettle currently ignores discounts and categories included in the payload; create those resources with their dedicated actions. Only one import can run at a time. |
| `ZETTLE_IMPORT_PRODUCT_IMAGES` | Import Product Images | Import one or more product images from HTTPS URLs and return their lookup keys. Imported assets have no documented delete endpoint. |
| `ZETTLE_LIST_CATEGORIES` | List Categories | Retrieve all product categories for a merchant organization. |
| `ZETTLE_LIST_DISCOUNTS` | List Discounts | Retrieve all discounts from a merchant's product library. |
| `ZETTLE_LIST_FINANCE_TRANSACTIONS` | List Finance Transactions | Return one page of transactions from a Zettle preliminary or liquid account within a required date range, optionally filtered by transaction type. |
| `ZETTLE_LIST_INVENTORIES` | List Inventories | List the merchant organization's inventories and the UUIDs needed for stock-management actions. |
| `ZETTLE_LIST_INVENTORY_STOCK` | List Inventory Stock | Return one page of product-variant stock balances from the documented inventory-specific Zettle endpoint, including low-stock settings and a continuation cursor. |
| `ZETTLE_LIST_LIBRARY_IMAGES` | List Library Images | Retrieve all image references used by library items. |
| `ZETTLE_LIST_PRODUCT_OPTIONS` | List Product Options | Retrieve aggregate active variant options in the product library. |
| `ZETTLE_LIST_PRODUCTS` | List Products | List all POS-visible products with complete embedded variants in the selected current or legacy representation. This endpoint is not paginated. |
| `ZETTLE_LIST_PURCHASES` | List Purchases | Return one page of purchases and refunds from up to three years ago, with date and ordering filters plus an opaque continuation cursor. |
| `ZETTLE_LIST_STOCK` | List Stock | Return one page of variant stock balances across Zettle store inventories, optionally filtered by inventory or product. |
| `ZETTLE_LIST_STOCK_UPDATES` | List Stock Updates | Return one page of stock-balance updates made at or after a timestamp, optionally filtered to specific inventories, with a continuation cursor. |
| `ZETTLE_LIST_TAX_RATES` | List Tax Rates | List the connected merchant's tax rates. Zettle does not provide this tax surface outside sales-tax countries. |
| `ZETTLE_LIST_TRACKED_PRODUCTS` | List Tracked Products | Return one page of UUIDs for Zettle products with inventory tracking enabled, with an opaque continuation cursor when more records are available. |
| `ZETTLE_LIST_TRACKING_UPDATES` | List Tracking Updates | Return one page of product inventory-tracking status changes made at or after a timestamp, with a continuation cursor when more are available. |
| `ZETTLE_LIST_WEBHOOK_SUBSCRIPTIONS` | List Webhook Subscriptions | List all webhook subscriptions configured for a Zettle organization. |
| `ZETTLE_MOVE_INVENTORY_STOCK` | Move Inventory Stock | Atomically move product-variant quantities between inventories. This changes stock balances; verify every UUID and quantity before calling. If any movement fails, Zettle applies none of them. |
| `ZETTLE_SET_INVENTORY_TRACKING` | Set Inventory Tracking | Start or stop inventory tracking for one or more Zettle products. Stopping tracking retains saved balances but stops automatic purchase updates. |
| `ZETTLE_SET_LOW_STOCK_LEVELS` | Set Low Stock Levels | Set low-stock refill thresholds and Zettle Go alert settings for product variants across inventories. All definitions are applied in one array request. |
| `ZETTLE_UPDATE_CATEGORY` | Update Category | Rename a category. Zettle requires a non-null name in the JSON body. |
| `ZETTLE_UPDATE_DISCOUNT` | Update Discount | Update selected fields of a discount using JSON merge-patch semantics, optionally guarded by its ETag. |
| `ZETTLE_UPDATE_PRODUCT` | Update Product | Replace a product using Zettle's full update contract. The request requires the product uuid, name, and current ETag from Get Product. |
| `ZETTLE_UPDATE_TAX_RATE` | Update Tax Rate | Update one tax rate. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_UPDATE_TAX_SETTINGS` | Update Tax Settings | Update the organization's taxation mode. This changes tax behavior across the entire organization; verify the intended mode before calling. Zettle documents this tax surface as unavailable outside sales-tax countries. |
| `ZETTLE_UPDATE_WEBHOOK_SUBSCRIPTION` | Update Webhook Subscription | Change a Zettle webhook subscription's selected events, HTTPS destination, transport, or contact email. |
| `ZETTLE_UPLOAD_PRODUCT_IMAGE` | Upload Product Image | Upload one GIF, JPEG, or PNG product image smaller than 5 MB and larger than 50 by 50 pixels. |

## Supported Triggers

None listed.

## Troubleshooting

### Why is my API key rejected?

Copy the key directly from the Composio dashboard. Atomic Agent requires ASCII characters because it sends the key in an HTTP header. Remove any extra characters introduced when copying.

### Why are Composio tools unavailable after saving a key?

Check that you use Atomic Agent v0.5.6 or later and that Composio is enabled in your configuration. A "composio": { "enabled": false } setting disables the integration while keeping the saved key on disk.

### Does Composio have a free plan?

The Hobby plan includes 100,000 tool calls per month. Composio-managed OAuth apps have a lower included allowance. See [Composio pricing](/pricing) for the current limits that apply to your connection.

## Complete Code

None listed.

## Conclusion

### Use PayPal Zettle from Atomic Agent
With your account connected, ask Atomic Agent to work with PayPal Zettle in natural language. You can connect more apps through the same Composio integration as you need them.
Visit the [Atomic Agent website](https://atomicagent.io/?cta_placement=atomic-agent-site) or inspect the [Atomic Agent source code](https://github.com/AtomicBot-ai/atomic-agent?cta_placement=atomic-agent-repo).

## How to build PayPal Zettle MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/zettle/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/zettle/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/zettle/framework/hermes-agent)

## Related Toolkits

- [Addresszen](https://composio.dev/toolkits/addresszen) - Addresszen is a real-time address autocomplete and verification service. It helps capture accurate, deliverable addresses with instant suggestions and validation.
- [Asin data api](https://composio.dev/toolkits/asin_data_api) - Asin data api gives you detailed, real-time product data from Amazon, including price, rank, and reviews. Perfect for e-commerce pros and data-driven marketers who need instant marketplace insights.
- [Baselinker](https://composio.dev/toolkits/baselinker) - BaseLinker is an all-in-one e-commerce management platform connecting stores, marketplaces, carriers, and more. It streamlines order processing, inventory control, and automates your sales operations.
- [Bestbuy](https://composio.dev/toolkits/bestbuy) - Best Buy is a leading retailer offering APIs for product, store, and recommendation data. Instantly access up-to-date retail insights for smarter shopping and decision-making.
- [Bluebarry](https://composio.dev/toolkits/bluebarry) - Bluebarry is a customer data and product-advice platform for shopper identities, profiles, and recommendations. It helps teams analyze customer context and synchronize shopper data for better commerce experiences.
- [Btcpay server](https://composio.dev/toolkits/btcpay_server) - BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor. It lets merchants accept Bitcoin payments directly, cutting out middlemen and boosting privacy.
- [Cdr platform](https://composio.dev/toolkits/cdr_platform) - Cdr platform is an API for purchasing carbon dioxide removal services. It enables businesses to offset emissions by accessing verified carbon removal projects.
- [ClickFunnels 2.0](https://composio.dev/toolkits/clickfunnels) - ClickFunnels 2.0 is a sales funnel and online business platform for marketing, commerce, courses, and websites. It helps businesses build and manage customer journeys from one workspace.
- [Cloudcart](https://composio.dev/toolkits/cloudcart) - CloudCart is an e-commerce platform for building and managing online stores. It helps businesses streamline product listings, orders, and customer engagement.
- [Clover](https://composio.dev/toolkits/clover) - Clover is a point-of-sale and merchant platform that provides payments, orders, inventory, and device APIs. Use it to manage orders, customers, employees, payments, and receipts across locations.
- [Commerce Layer](https://composio.dev/toolkits/commerce_layer) - Commerce Layer is a headless commerce platform with transactional APIs for orders, inventory, pricing, customers, and fulfillment. Use it to centralize ecommerce operations and surface real-time commerce data.
- [Countdown api](https://composio.dev/toolkits/countdown_api) - Countdown API gives you real-time, structured eBay product data, reviews, and seller feedback. Perfect for powering price monitoring, product research, or marketplace analytics workflows.
- [Creem](https://composio.dev/toolkits/creem) - Creem is a merchant-of-record platform for managing products, checkouts, subscriptions, customers, licenses, discounts, transactions, refunds, and revenue operations. Helps businesses handle billing, compliance, and revenue workflows with a unified billing stack.
- [Dpd2](https://composio.dev/toolkits/dpd2) - Dpd2 is a robust email management platform for handling, sorting, and automating email workflows. Streamline your communications and boost productivity with advanced sorting, labeling, and response tools.
- [eBay](https://composio.dev/toolkits/ebay) - eBay is an online marketplace for buying and selling products worldwide. Its public APIs help developers access listings, categories, and marketplace data.
- [Finerworks](https://composio.dev/toolkits/finerworks) - FinerWorks is an online platform for fine art and photo printing services. Artists and photographers use it to order custom prints and manage print inventory efficiently.
- [Fingertip](https://composio.dev/toolkits/fingertip) - Fingertip is a business management platform for selling, booking, and customer engagement—all from a single link. It helps businesses streamline operations and connect with customers across social channels.
- [Fraudlabs pro](https://composio.dev/toolkits/fraudlabs_pro) - FraudLabs Pro is an online payment fraud detection service for e-commerce and merchants. It helps minimize chargebacks and revenue loss by detecting and preventing fraudulent transactions.
- [Gelato](https://composio.dev/toolkits/gelato) - Gelato is a print-on-demand platform for creating products, managing orders, checking stock, and finding shipping options. It helps businesses sell globally with local production, pricing, and fulfillment.
- [Gift up](https://composio.dev/toolkits/gift_up) - Gift Up! is a digital platform for selling, managing, and redeeming gift cards online. It streamlines promotions and gift card transactions for businesses and their customers.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and PayPal Zettle MCP?

With a standalone PayPal Zettle MCP server, the agents and LLMs can only access a fixed set of PayPal Zettle tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from PayPal Zettle and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Atomic Agent?

Yes, you can. Atomic Agent fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right PayPal Zettle tools.

### Can I manage the permissions and scopes for PayPal Zettle while using Tool Router?

Yes, absolutely. You can configure which PayPal Zettle scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your PayPal Zettle data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
