Contratos

Validar un contrato

Cierra un contrato en borrador: le asigna un número de la serie y lo bloquea como inmutable, en la misma transacción —sin huecos y sin doble emisión—.

Herramienta
filmo_contracts_validate
Acceso: Destructiva

Resultado

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_contracts_validate",
    "arguments": {
      "contractId": "cont_8f2a1c"
    }
  }
}

generado desde el esquema

No reversible

Esta herramienta no se puede deshacer.

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.

Anotación del servidor

Valida un documento que queda bloqueado. Hoy la validación no envía el documento a la administración tributaria, pero no se puede deshacer.

Solo desde draft; desde cualquier otro estado rechaza la petición sin tocar nada. Mueve el estado del DOCUMENTO (status), no el estado de la firma (operativeStatus): un contrato validado sigue sin firmar hasta /sign. No lleva cuerpo. Requiere documentos de venta en el plan de la cuenta (402 si no están incluidos). Devuelve el contrato completo, con la misma proyección que su GET.

Argumentos

contractIdstringObligatorio

Identificador del contrato.

Límites: longitud mín. 1

idempotencyKeystring

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.

Límites: longitud mín. 1, longitud máx. 255

ifMatchstring

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.

Límites: longitud mín. 1

Resultado

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

Ver los atributos de data
idstring

Identificador único del contrato.

contractNumberstring | null

Número del contrato, por ejemplo "C260001"; null mientras es un borrador.

statusstring

Estado del documento.

Opciones disponibles: draft, validated, voided

operativeStatusstring

Estado de la firma.

Opciones disponibles: pending, signed, cancelled

signedboolean

true si el contrato consta como firmado. Es lo que decide si el equipo puede salir.

signedAtstring<date-time> | null

Fecha de firma en ISO 8601 UTC; null si no está firmado.

contactIdstring | null

Identificador del cliente; null en borradores sin cliente.

orderIdstring | null

Pedido asociado; null si no tiene.

orderNumberstring | null

Número del pedido asociado; null si no tiene.

projectIdstring | null

Proyecto asociado; null si no tiene.

contractDatestring<date-time> | null

Fecha del contrato en ISO 8601 UTC; null si no está definida.

startDatestring<date-time> | null

Inicio de la vigencia en ISO 8601 UTC; null si no aplica.

endDatestring<date-time> | null

Fin de la vigencia en ISO 8601 UTC; null si no aplica.

grossPricestring | null

Importe total con impuestos como cadena decimal "1234.50"; null si no aplica.

Límites: patrón ^-?\d+\.\d{2}$

createdAtstring<date-time> | null

Fecha de creación en ISO 8601 UTC; null si no consta.

updatedAtstring<date-time> | null

Fecha de la última modificación en ISO 8601 UTC; null si no está registrada.

Un error es un resultado con isError: true y el problema en content[0].text; no hay structuredContent. Consulta Errores.

La misma operación por REST

Esta herramienta ejecuta POST /api/v1/contracts/{contractId}/validate.

  • Contratos

    Validar un contrato

    Cierra un contrato en borrador: le asigna un número de la serie y lo bloquea como inmutable, en la misma transacción —sin huecos y sin doble emisión—.

  • Guías

    Escrituras seguras

    Un asistente que puede escribir también puede escribir lo equivocado. Decide qué herramientas necesitan a una persona, reintenta sin duplicar y sabe qué pone en marcha una escritura.

  • Guías

    Errores

    Un error de herramienta es un resultado con isError: true y el problema en el primer bloque de texto. Ramifica por su code.