# Catalog

> MCP tools to browse, create, edit and delete products and services in your catalog, and get feeds for other channels.

- kind: mcp-tool
- status: stable
- access: destructive
- last_verified: 2026-10-20
- url: https://tilopay.com/en/developers/agentes/mcp/catalogo

## What it covers [#que-cubre]

You can list your products and services, view their details, create new ones, edit or delete them,
and get feeds for other channels. Deleting a product is sensitive: the WhatsApp Assistant asks
for confirmation in chat and MCP clients must ask for human confirmation;
no email code is required.

## Tools [#herramientas]

### List catalog of products or services [#tilopay-catalog-list-items]

- `tilopay_catalog_list_items`
- Access: Read only
- API operation: `GET /api/v1/getLinkPaymentList/{api_key}/{limit}` — https://tilopay.com/en/developers/api/links-de-pago/payment-item-list

Lists the products or services of the Tilopay catalog (title, price and short link). It can search by name or description (ignoring accents and case). The Tilopay listing may take a few minutes to reflect changes made in the dashboard; whatever is created from here appears immediately and the response of tilopay_catalog_create_item already includes the new item. Use refresh=true to force a fresh read.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | — | Maximum items (50 by default, 500 maximum) |
| `search` | string | — | Text to search in the product name |
| `page` | integer | — | Page (1 by default) |
| `refresh` | boolean | — | true to ignore the short-term memory and read again |
| `include_qr` | boolean | — | Include each item's full base64 QR (false by default; the listing returns only the link and has_qr) |

**Returns**

`{ result }`

Raw Tilopay API response under the `result` key.

### Catalog item detail [#tilopay-catalog-get-item]

- `tilopay_catalog_get_item`
- Access: Read only
- API operation: `GET /api/v1/getLinkPaymentById/{link_payment_id}/{api_key}` — https://tilopay.com/en/developers/api/links-de-pago/payment-by-id

Gets the detail of a product or service of the Tilopay catalog by its ID. The base64 QR only with include_qr=true.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `itemId` | string | yes | Catalog item ID |
| `include_qr` | boolean | — | Include the base64 QR (false by default; use it only if the merchant asks for the QR) |

**Returns**

`{ result }`

Raw Tilopay API response under the `result` key.

### Add a product or service to the catalog [#tilopay-catalog-create-item]

- `tilopay_catalog_create_item`
- Access: Write
- API operation: `POST /api/v1/createLinkPayment` — https://tilopay.com/en/developers/api/links-de-pago/create-link-payment

Creates a product or service in the Tilopay catalog with its price and returns the short payment link and the QR as an image. If the merchant sent a photo on WhatsApp in the last 10 minutes, it uses it as the product image.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string | yes | Product or service name |
| `amount` | number | yes | Price |
| `currency` | string | — | Currency, e.g. CRC or USD. If omitted, the merchant's country currency is used. |
| `description` | string | — | Product or service description |
| `media_ref` | string | — | Exact reference of the image received over WhatsApp, if known |
| `use_last_image` | boolean | — | false to create the product without a photo even if there is a recent image |

**Returns**

`{ result, linkId, url }`

result = the raw API response; linkId = id of the payment link representing the product; url = the product's charge link.

### Edit a catalog product [#tilopay-catalog-update-item]

- `tilopay_catalog_update_item`
- Access: Write

Edits a product of the Tilopay catalog (name, price, currency, description or photo) without changing its payment link.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `itemId` | string | yes | Catalog item ID |
| `name` | string | — | New name (or the same one) |
| `amount` | number | — | New price (or the same one) |
| `currency` | string | — | Currency; if omitted, the merchant's country currency |
| `description` | string | — | New description (or the same one) |
| `media_ref` | string | — | Exact reference of the image received over WhatsApp, if known |
| `use_last_image` | boolean | — | false to keep the photo unchanged even if there is a recent image |

**Returns**

`{ item, short_link, changed }`

item = the updated product; short_link = its payment link (unchanged); changed = the fields that changed. Changing the amount or the currency is owner-only.

### Delete a catalog product [#tilopay-catalog-delete-item]

- `tilopay_catalog_delete_item`
- Access: Sensitive
- Requires confirmation: https://tilopay.com/en/developers/agentes/mcp/permisos#confirmaciones
- API operation: `POST /api/v1/deleteLinkPayment` — https://tilopay.com/en/developers/api/links-de-pago/delete-link-payment

Deletes a product from the Tilopay catalog and disables its payment link. No email code is required. The WhatsApp Assistant asks for confirmation in chat; in MCP clients, human confirmation is the client's responsibility.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `itemId` | string | yes | Catalog item ID |

**Returns**

`{ result }`

result = API response deleting the payment link representing the product.

### Sync the catalog with social networks and search engines [#tilopay-catalog-feed]

- `tilopay_catalog_feed`
- Access: Write

Delivers the synced catalog link and the steps to connect it in Facebook/Instagram, Google Shopping, TikTok or Pinterest (one channel at a time, the one the merchant asks for). With send_email=true it sends it to the merchant's email.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `platform` | string (facebook | google | tiktok | pinterest) | — | Requested channel. If the merchant did not say which, DO NOT call: ask first. |
| `send_email` | boolean | — | true if they asked to receive it by email |

**Returns**

`{ url, urls, omitted_without_photo, platform }`

url = the requested channel's feed; urls = [{ currency, url }] per currency; omitted_without_photo = products omitted for having no photo.
