# Payment links

> MCP tools to create, read and delete payment links, and prepare their delivery.

- kind: mcp-tool
- status: stable
- access: destructive
- last_verified: 2026-10-07
- url: https://tilopay.com/en/developers/agentes/mcp/enlaces-de-pago

## What it covers [#que-cubre]

With this group the agent creates a payment link, reads its detail, deletes it and prepares delivery to the customer over WhatsApp or email. WhatsApp delivery does not send the message: it returns a link ready to send.

## Tools [#herramientas]

### Create a charge with a link [#tilopay-create-charge]

- `tilopay_create_charge`
- Access: Write

Creates a charge and returns the Tilopay short link (tilo.co/s/…) that opens the secure payment form directly; if it is not available, the own link tilopay.shop/pagar/…. The response includes url (the short one when it exists) and fallback_url (the own one); both work. On WhatsApp, send the QR as an image together with the link at once; do not call the QR tool afterwards. If customer data is missing, the link page asks for it before charging.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `amount` | number | yes | Amount to charge |
| `currency` | string | — | Currency, e.g. USD or CRC. If omitted, the merchant's country currency is used. |
| `reference` | string | yes | Charge reference in plain text, with spaces. Do not convert to a slug or replace spaces with dashes or underscores. |
| `description` | string | yes | Concept visible to the customer. Keep the merchant's text literally, with spaces, accents and capitals; e.g. 'prueba link', never 'prueba_link'. |
| `client` | string | — | Customer name |
| `client_email` | string | — | Customer email |
| `client_phone` | string | — | Customer phone |

**Returns**

`{ code, url, fallback_url, orderNumber }`

url = short link (tilo.co/s/… or https://tilopay.shop/pagar/{code}); fallback_url = the latter.

### Payment link detail [#tilopay-get-payment-link]

- `tilopay_get_payment_link`
- Access: Read only
- API operation: `GET /api/v1/getDetailLinkPayment/{link_payment_id}/{api_key}` — https://tilopay.com/en/developers/api/links-de-pago/detail-link-payment

Returns the detail of a payment link by its ID.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `linkPaymentId` | string | yes | Payment link ID |

**Returns**

`{ result }`

Raw Tilopay API response under the `result` key.

### Delete payment link [#tilopay-delete-payment-link]

- `tilopay_delete_payment_link`
- 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 payment link by its ID.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | ID of the payment link to delete |
| `confirmation_code` | string | — | 6-digit code received by email to authorize the operation |

**Returns**

`{ result }`

Raw Tilopay API response under the `result` key.

### Send payment link over WhatsApp [#tilopay-send-payment-link-whatsapp]

- `tilopay_send_payment_link_whatsapp`
- Access: Write

Prepares sending the payment link over WhatsApp: it returns a wa.me link with the message ready. It accepts the name of a saved contact or a phone number.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `link_url` | string | yes | Payment link URL |
| `contact_name` | string | — | Name of the saved contact or of the customer |
| `phone` | string | — | WhatsApp phone, e.g. +50688887777 |
| `amount` | number | — | Only used to write the message; it does not change the link |
| `currency` | string | — | Only used to write the message; it does not change the link |
| `description` | string | — | Only used to write the message; it does not change the link |
| `message` | string | — | Your own message text |
| `save_contact` | boolean | — | Save the contact in the address book |
| `send_now` | boolean | — | Deprecated: ignored. The wa.me link is always returned. |

**Returns**

`{ to, message, whatsapp_url }`

It does not send the message: it returns the resolved phone, the drafted text and a wa.me link to send it with one tap. When there is no phone and no saved contact with that name, it returns an error asking for it. It saves the contact unless save_contact is false.

### Send payment link over email [#tilopay-send-payment-link-email]

- `tilopay_send_payment_link_email`
- Access: Write

Emails the payment link to the customer. It accepts the name of a saved contact or an email address.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `link_url` | string | yes | Payment link URL |
| `email` | string | — | Recipient email |
| `contact_name` | string | — | Name of the saved contact or of the customer |
| `amount` | number | — | Only used to write the message; it does not change the link |
| `currency` | string | — | Only used to write the message; it does not change the link |
| `description` | string | — | Only used to write the message; it does not change the link |
| `message` | string | — | Additional note for the customer |
| `save_contact` | boolean | — | Save the contact in the address book |

**Returns**

`{ sent, to }`

sent is true and to is the address it was sent to. When there is no email and no saved contact with that name, it returns an error asking for it.

### QR of a payment link or product [#tilopay-payment-link-qr]

- `tilopay_payment_link_qr`
- Access: Read only

Generates the QR of a payment link or of a catalog product and sends it as an image (PNG) (sending as an image is only in the WhatsApp assistant; other clients use qr_url). Use it when the merchant asks for the QR to share or print.

**Parameters**

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `link_url` | string | — | Full payment link (https://...) |
| `catalog_id` | string | — | Catalog product ID |
| `label` | string | — | Name for the image footer |

**Returns**

`{ link, qr_url }`

link = payment link; qr_url = QR code image.

### Permanent open-amount QR [#tilopay-static-payment-qr]

- `tilopay_static_payment_qr`
- Access: Read only

Returns the merchant's permanent open-amount link and QR (the customer scans, enters the amount and pays). Query only: if the merchant does not have it enabled, it explains so and does not enable it.

**Parameters**

No parameters.

**Returns**

`{ enabled, link, qr_url }`

enabled = whether the static QR is active; link = the merchant's fixed link; qr_url = QR code image.
