Contratos y acuerdos legales
Un contrato es texto legal con datos dentro: partes, fechas, importes, plazos. En STXT el texto sigue siendo texto, cláusula a cláusula, y los datos son datos, en el mismo documento.
Esta página trata del formato fuente de un contrato: el fichero del que salen el PDF, la siguiente versión y los datos que necesitan otros sistemas. No sustituye al documento firmado ni al proceso jurídico.
Un acuerdo de servicios
Agreement (com.acme.legal.contract):
Id: AGR-2026-001
Title: Acuerdo de prestación de servicios de soporte
Status: Signed
Effective date: 2026-02-01
Parties:
Party: ACME Corp
Role: Proveedor
Registration: B-12345678
Party: Example Ltd
Role: Cliente
Registration: GB-87654321
Term:
Start: 2026-02-01
End: 2027-01-31
Payment:
Fee: 12000
Currency: EUR
Billing period: Monthly
Clauses:
Clause: Objeto
Number: 1
Text >>
El Proveedor prestará al Cliente los servicios de soporte técnico
descritos en el Anexo I, en el horario y con los niveles de servicio
que en él se establecen.
Clause: Limitación de responsabilidad
Number: 2
Text >>
La responsabilidad total de cada parte no excederá el importe anual
del contrato.
Esta limitación no se aplicará en caso de dolo o negligencia grave.
Internal notes >>
Cláusula estándar LEG-07, aprobada por el departamento legal el
2025-11-03. No modificar sin revisión jurídica.En este ejemplo tenemos:
- Datos: las partes, las fechas y el pago. Es lo que necesita un sistema de facturación o una alerta de vencimiento.
- Cláusulas: cada una es un nodo con su título como valor, su número y su texto.
- Texto: la redacción legal de cada cláusula, tal cual, en un nodo block que admite varios párrafos.
- Notas internas: van dentro de la cláusula a la que se refieren, y quien genera el PDF las omite.
Por ejemplo, un programa puede obtener estos valores sin leer el contrato:
| Nodo | Valor |
|---|---|
Term/End |
2027-01-31 |
Payment/Fee |
12000 |
Payment/Currency |
EUR |
La plantilla
Template (@stxt.template): com.acme.legal.contract
Structure >>
Agreement:
Id: (1)
Title: (1)
Status: (1) ENUM [Draft, Signed, Terminated]
Effective date: (?) DATE
Parties: (1)
Party: (2+)
Role: (1)
Registration: (?)
Term: (?)
Start: (1) DATE
End: (?) DATE
Payment: (?)
Fee: (1) NUMBER
Currency: (1) ENUM [EUR, USD, GBP]
Billing period: (?) ENUM [Monthly, Quarterly, Yearly]
Clauses: (?)
Clause: (*)
Number: (?) NATURAL
Text: (1) TEXT
Internal notes: (?) TEXTLa plantilla comprueba los datos y no restringe la redacción de las cláusulas, ni su número, ni su orden.
Un acuerdo que no valida
# ERROR: este documento no valida
Agreement (com.acme.legal.contract):
Id: AGR-2026-002
Title: Acuerdo de confidencialidad
Status: Draft
# Un acuerdo tiene al menos dos partes: (2+)
Parties:
Party: ACME Corp
Role: Proveedor
Payment:
# Un NUMBER no lleva separador de miles ni símbolo
Fee: 12.000 €
# `Euros` no es un valor de la lista
Currency: Euros
Clauses:
# Una cláusula sin `Text` no es una cláusula
Clause: Confidencialidad
Number: 1Un acuerdo de nivel de servicio
Un SLA es el caso con más datos dentro del texto legal: objetivos, tiempos y penalizaciones.
SLA (com.acme.legal.sla):
Service: Plataforma de pagos
Agreement: AGR-2026-001
Effective date: 2026-03-01
Availability:
Target percentage: 99.9
Measurement period: Monthly
Response times:
Severity: Critical
Max response minutes: 30
Severity: High
Max response minutes: 120
Severity: Normal
Max response minutes: 480
Penalties:
Penalty: Incumplimiento de disponibilidad
Condition >>
Disponibilidad mensual inferior al objetivo.
Consequence >>
Descuento del 10 % en la factura del mes afectado.
Legal text >>
Las métricas se medirán conforme a los procedimientos descritos en el
anexo técnico. Las partes revisarán los objetivos anualmente.Y su plantilla:
Template (@stxt.template): com.acme.legal.sla
Structure >>
SLA:
Service: (1)
Agreement: (?)
Effective date: (1) DATE
Availability: (1)
Target percentage: (1) NUMBER
Measurement period: (1) ENUM [Monthly, Quarterly]
Response times: (?)
Severity: (*)
Max response minutes: (1) NATURAL
Penalties: (?)
Penalty: (*)
Condition: (1) TEXT
Consequence: (1) TEXT
Legal text: (?) TEXTAgreement: AGR-2026-001 enlaza el SLA con su contrato. El panel que mide el servicio
puede leer el objetivo de disponibilidad y los tiempos de respuesta del mismo fichero
que firmaron las partes.
Cómo se trabaja
- Versiones: cada contrato es un fichero en un repositorio, y cada revisión es un diff que muestra qué cláusula cambió o qué fecha se movió.
- Cláusulas estándar: un programa compara cada cláusula con la versión aprobada por el departamento legal, y señala las que difieren.
- Validación:
stxt validate --recursive contracts/(La línea de comandos) en integración continua. - Extracción: los vencimientos del trimestre o los importes por cliente salen del árbol.
- Publicación: el PDF se genera a partir del fichero, sin las notas internas.
Límites
STXT no aporta validez jurídica, firma electrónica ni custodia.
Tampoco interpreta el texto de las cláusulas: «salvo en caso de dolo» es texto, y solo lo puede evaluar una persona.
La plantilla no comprueba la coherencia entre campos (que End sea posterior a Start,
o que el contrato que cita el SLA exista). Eso lo hace el programa que recorre el repositorio.
Ver también Documentos corporativos y la comparación STXT frente a XML.