*MCP › Referencia › Finanzas › Tesorería*

# Actualizar un pago

> Corrige un pago ya registrado o lo marca como conciliado con el extracto bancario.

`reconciled` y `notes` se aceptan y no se devuelven: son estado del proceso contable interno. La fecha sigue la regla de la creación: cualquier hora de hoy, no un día posterior en la zona horaria de la cuenta (400 en `date`). Un nuevo importe mueve la asignación solo cuando todo el pago estaba asignado a un único documento o pedido; en cualquier otro pago solo cambia la parte sin asignar, así que los documentos conservan lo que habían cobrado, y un importe inferior a lo que ya está asignado responde 409 `conflict` sin escribir. Una fianza reembolsada, y el propio reembolso, conservan su importe y su sentido: cambiar cualquiera de los dos responde 409 `conflict` y no se escribe nada. Si los documentos vinculados al pago siguen cambiando mientras se guarda, también responde 409 `conflict`, no se escribe nada y se puede reintentar la llamada. Devuelve el pago completo, la misma proyección que su GET.

HERRAMIENTA `filmo_treasury_payments_update` · `treasury:write` · 120/min · Anotación del servidor: Idempotente

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `paymentId` | string | Sí | Identificador del pago de tesorería. |
| `direction` | string | No | Nueva dirección del pago. `in`, `out` |
| `amount` | string | No | Nuevo importe como cadena decimal, mayor que cero. Si todo el pago está asignado a un único documento o pedido, la asignación sigue al nuevo importe. En caso contrario, lo asignado se mantiene y solo cambia la parte sin asignar; un importe inferior a lo ya asignado responde 409 `conflict`. |
| `date` | string<date-time> | No | Nueva fecha, 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 | No | Nuevo método de pago; null lo quita. |
| `contactId` | string | No | Nuevo contacto; null lo desvincula. |
| `reference` | string | No | Nueva referencia externa; null la borra. |
| `notes` | string | No | Nuevas notas. NO se devuelven. |
| `reconciled` | boolean | No | Marca el pago como conciliado con el extracto bancario. |
| `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_update*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_treasury_payments_update",
    "arguments": {
      "paymentId": "paym_8f2a1c"
    }
  }
}
```

*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 [`PATCH /api/v1/treasury/payments/{paymentId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/treasury/update-a-payment).

---

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