*MCP › Referencia › Finanzas › Tesorería*

# Registrar un pago entrante o saliente

> Registra un pago en una cuenta de tesorería.

> **Envía tu propia idempotencyKey:** Un reintento sin la misma clave duplica el efecto. Envía tu propia `idempotencyKey` (un UUID) y reenvía la misma si reintentas.

> **Requiere confirmación humana:** Pon esta herramienta en la lista de «preguntar antes de ejecutar» de tu cliente. Las anotaciones son pistas que declara el servidor, no garantías: no decidas la aprobación solo por `destructiveHint`. El servidor marca esta herramienta con `_meta["anthropic/requiresUserInteraction"]`, que los clientes que lo respetan usan para preguntar a una persona antes de cada llamada.

El documento al que está vinculado va como el PAR `linkedDocumentType` + `linkedDocumentId`, nunca como un campo por tipo: enviar dos identificadores a la vez dejaría sin saber a cuál se vinculó. `type: "deposit"` marca una fianza cobrada a un cliente: exige `direction: in` (400 en `direction` en caso contrario) y no se descuenta del total del pedido. La fecha puede ser cualquier momento de hoy, pero no un día posterior, en la zona horaria de la cuenta (400 en `date`). Envía `Idempotency-Key`: un reintento sin ella registra el pago dos veces. Devuelve el pago completo, la misma proyección que su GET.

HERRAMIENTA `filmo_treasury_payments_create` · `treasury:write` · 120/min · Anotación del servidor: Destructiva · Requiere confirmación humana · Envía tu propia idempotencyKey

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `direction` | string | Sí | in para un cobro de un cliente, out para un pago a un proveedor. `in`, `out` |
| `amount` | string | Sí | Importe como cadena decimal, mayor que cero. |
| `currency` | string | No | Moneda en ISO 4217. Por defecto, EUR. |
| `date` | string<date-time> | Sí | Fecha del pago, en ISO 8601 con desplazamiento. Se acepta cualquier hora de hoy; un día posterior, en la zona horaria de la cuenta, se rechaza con 400. |
| `paymentMethodId` | string | Sí | Método de pago configurado en la cuenta. |
| `treasuryAccountId` | string | Sí | Cuenta de tesorería por la que entra o sale el dinero. |
| `type` | string | No | "deposit" marca una fianza cobrada a un cliente: exige direction=in (400 en caso contrario) y no se descuenta del total del pedido. `normal`, `deposit` |
| `contactId` | string | No | Cliente o proveedor del pago. |
| `linkedDocumentType` | string | No | Tipo del documento al que está vinculado el pago. Va junto con `linkedDocumentId`. `invoice`, `creditNote`, `supplierInvoice`, `quote`, `proforma`, `salesReceipt`, `simpleCreditNote`, `purchaseOrder` |
| `linkedDocumentId` | string | No | Documento al que está vinculado el pago. Va junto con `linkedDocumentType`. |
| `reference` | string | No | Referencia externa del pago. |
| `notes` | string | No | Notas. Se guardan en Filmo y NO se devuelven. |
| `idempotencyKey` | string | No | Clave de idempotencia elegida por el cliente (se recomienda un UUID). Repetir la misma clave con los mismos argumentos en 24 h devuelve la respuesta almacenada sin volver a ejecutar; con argumentos distintos responde 422. Es la forma segura de reintentar tras un fallo de red. |
| `ifMatch` | string | No | Bloqueo optimista: el meta.etag que obtuviste de la lectura de detalle de este recurso (o "*"). Si el recurso ha cambiado desde entonces, la llamada falla con 412 precondition_failed antes de escribir nada; léelo de nuevo y reintenta. Omítelo para escribir sin condiciones. |

## Resultado

En un éxito el resultado lleva `structuredContent` con `data` y `meta`. Estos son los atributos de `data`.

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador del pago. |
| `direction` | string | in cuando entra dinero (un cobro) y out cuando sale (un pago). |
| `amount` | string | Importe del pago como cadena decimal, en la moneda indicada. |
| `currency` | string | Moneda del pago, como código ISO 4217. |
| `date` | string<date-time> | Fecha del pago en ISO 8601 UTC. |
| `type` | string | normal, o deposit cuando es un pago anticipado. |
| `treasuryAccountId` | string | Cuenta de tesorería por la que pasa el pago. |
| `contactId` | string | Cliente o proveedor del pago; null si no se ha declarado. |
| `reference` | string | Referencia externa del pago; null si no tiene. |
| `linkedDocuments` | object[] | Documentos a los que está asignado el pago; vacío si no está vinculado a ninguno. |
| `linkedDocuments.type` | string | Tipo del documento vinculado. `invoice`, `creditNote`, `supplierInvoice`, `quote`, `proforma`, `salesReceipt`, `simpleCreditNote`, `purchaseOrder` |
| `linkedDocuments.id` | string | Identificador del documento vinculado. |
| `linkedDocuments.amount` | string | Importe de este pago asignado al documento, como cadena decimal. |
| `createdAt` | string<date-time> | Fecha de creación en ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Fecha de la última modificación en ISO 8601 UTC. |

*Llamada · filmo_treasury_payments_create*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_treasury_payments_create",
    "arguments": {
      "direction": "in",
      "amount": "1234.50",
      "date": "2026-09-01T08:00:00Z",
      "paymentMethodId": "paym_8f2a1c",
      "treasuryAccountId": "trea_8f2a1c",
      "idempotencyKey": "<a UUID you generate>"
    }
  }
}
```

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": {
      "id": "id_8f2a1c",
      "direction": "<direction>",
      "amount": "1234.50",
      "currency": "EUR",
      "date": "2026-09-01T08:00:00Z",
      "type": "<type>",
      "treasuryAccountId": "trea_8f2a1c",
      "contactId": "cont_8f2a1c",
      "reference": "<reference>",
      "linkedDocuments": [
        {
          "type": "invoice",
          "id": "id_8f2a1c",
          "amount": "1234.50"
        }
      ],
      "createdAt": "2026-09-01T08:00:00Z",
      "updatedAt": "2026-09-01T08:00:00Z"
    },
    "meta": {
      "idempotencyKey": "<the key you sent, or the one the server generated>",
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## La misma operación por REST

Esta herramienta ejecuta [`POST /api/v1/treasury/payments`](https://docs.filmo.io/es/rest-api/endpoint-reference/treasury/record-an-incoming-or-outgoing-payment).

---

URL canónica: https://docs.filmo.io/es/mcp/tools/treasury/filmo-treasury-payments-create  
Última actualización: 2026-10-25