Sherwood API v3.0.2

Introducción

🔌 Sherwood API — Automatiza. Integra. Controla.

La API de Sherwood está diseñada para ofrecer a despachos, desarrolladores y partners legales el control total y seguro sobre la actualización y explotación de cualquier parte de la suite Sherwood, sin depender de interfaces manuales ni de tareas repetitivas.

Convierte Sherwood en el núcleo operativo de tu despacho con una plataforma totalmente automatizada, segura y centrada en el dato estructurado. Gestiona expedientes, comunicaciones judiciales, tareas, contactos, vencimientos, escritos y más, todo desde tu propio sistema.

🚀 ¿Gobernar tu despacho desde tu sistema? Ahora puedes.

Esta documentación te proporciona todo lo necesario para integrar Sherwood en tu flujo de trabajo actual, sin fricciones y con total control.

🎯 Beneficios Clave

1. Centralización total: Actualiza, consulta o sincroniza cualquier entidad de la plataforma: expedientes, comunicaciones judiciales, tareas, contactos, vencimientos, escritos y más, desde tu propio sistema.

2. Ahorro de Tiempo Exponencial: Elimina duplicidades y automatiza los flujos operativos sin intervención humana. Alimenta los módulos clave sin teclear ni una sola línea en la interfaz.

3. Integración sin Fricciones: Arquitectura abierta basada en estándares (JSON, Webhooks, REST). Sherwood no necesita integrarse con nada, pero se integra con todo.

4. Propagación Inteligente: Cada actualización vía API se propaga automáticamente por todos los módulos relacionados, garantizando coherencia y trazabilidad completa.

5. Control Granular y Seguro: Con roles, logs de actividad y entornos auditables. Cada llamada queda registrada, cada acción es reversible, y los datos siempre son tuyos.

6. Adaptación a tus Procesos: La API está pensada para adaptarse a cualquier flujo de trabajo, CRM o ERP que ya utilices. No impone una forma de trabajar, se acopla a la tuya.

⚙️ ¿Qué puedes hacer con esta API?

  • Crear y actualizar expedientes automáticamente desde tu CRM o sistema de entrada de clientes
  • Vincular comunicaciones judiciales descargadas desde plataformas como LEXNET o E-JUSTICIA.CAT
  • Crear, editar o cerrar tareas y vencimientos calculados por sistemas propios
  • Subir escritos o archivos adjuntos a expedientes concretos
  • Consultar estados de escritos presentados, sin entrar a la interfaz
  • Extraer datos estructurados para tus propios cuadros de mando y análisis
  • Sincronizar agendas y señalamientos con tus herramientas de gestión del tiempo
  • Automatizar la asignación de responsables a nuevos expedientes según tus propias reglas
  • Ejecutar integraciones vía Webhooks cuando un expediente cambia de estado o se recibe una nueva comunicación

📚 Cómo usar esta documentación

Esta documentación está organizada para facilitar tu integración con Sherwood:

📖 Estructura de la Documentación

  • Grupos de Endpoints: Los endpoints están organizados por funcionalidad (Comunicaciones Judiciales, Expedientes, Calendario, etc.)
  • Ejemplos de Código: Cada endpoint incluye ejemplos en múltiples lenguajes (Bash, JavaScript, PHP, Python)
  • Try It Out: Prueba los endpoints directamente desde esta documentación
  • Respuestas de Ejemplo: Cada endpoint muestra respuestas reales del sistema

🔍 Navegación

En dispositivos de escritorio, encontrarás:

  • 📋 Panel izquierdo: Menú de navegación con todos los endpoints agrupados
  • 📝 Panel central: Documentación detallada del endpoint seleccionado
  • 💻 Panel derecho: Ejemplos de código en diferentes lenguajes

En dispositivos móviles, los ejemplos de código aparecen integrados en el contenido principal.

🏗️ Arquitectura de la API

Principios de Diseño

  • RESTful: Seguimos las convenciones REST para una integración intuitiva
  • Idempotencia: Las operaciones pueden repetirse sin efectos secundarios no deseados
  • Versionado: API versionada (v2) para garantizar retrocompatibilidad
  • Respuestas Consistentes: Estructura uniforme en todas las respuestas

Formato de Datos

  • Request: JSON (application/json)
  • Response: JSON con estructura estándar
  • Fechas: ISO 8601 (YYYY-MM-DD HH:MM:SS)
  • IDs: Hasheados para seguridad adicional en endpoints públicos

🔄 Flujo de Trabajo Típico

Ejemplo: Gestión Completa de una Comunicación Judicial

  1. Recepción: Crear notificación con datos básicos del documento recibido
  2. Análisis: Enviar archivo PDF para extracción automática de datos
  3. Vinculación: Asociar la notificación al expediente correspondiente
  4. Gestión de Plazos: Crear vencimientos y señalamientos automáticamente
  5. Asignación: Asignar responsables según reglas de negocio
  6. Seguimiento: Consultar estado y actualizaciones vía webhooks

🚦 Estado del Sistema

Monitoriza la disponibilidad y rendimiento del API en tiempo real:

  • 📊 Dashboard de Estado: littlejohn.ai/status-page
  • 📧 Suscripción a incidentes: Recibe notificaciones de mantenimiento programado
  • ⏱️ SLA Garantizado: 99.9% de disponibilidad mensual

🔔 Sistema de Webhooks

Mantente Actualizado en Tiempo Real

Sherwood ofrece un sistema completo de webhooks que te permite recibir notificaciones automáticas cuando ocurren eventos importantes en el sistema. Los webhooks eliminan la necesidad de hacer polling constante.

Eventos Disponibles:
  • 📥 Nueva comunicación judicial recibida
  • ✅ Expediente actualizado o cambio de estado
  • 📅 Vencimiento próximo o señalamiento creado
  • 📤 Escrito presentado o estado actualizado
  • 👥 Asignaciones y cambios en responsables

📋 Ver Documentación Completa de Webhooks

💬 Soporte

¿Necesitas Ayuda?

⚠️ Importante: Entorno de Producción

Esta documentación corresponde al entorno de producción. Para pruebas y desarrollo, utiliza nuestro entorno sandbox con credenciales de prueba.


Autenticación de solicitudes

Para autenticar las solicitudes, incluye un encabezado Authorization con el valor "Bearer ACCESS_TOKEN".

Todos los endpoints autenticados están marcados con una insignia de requiere autenticación en la documentación a continuación.

🔐 Autenticación y Seguridad

La API de Sherwood implementa múltiples capas de seguridad para garantizar la integridad y confidencialidad de tus datos:

1. Token de Acceso (Bearer Token)

Todas las peticiones deben incluir un token Bearer en la cabecera Authorization. Este token actúa como tu clave única de acceso al API.

2. Firma Digital (Body-Signature)

Además del token, todas las peticiones requieren una cabecera Body-Signature, que es un hash MD5 formado por:

  • El contenido completo del body de la petición (JSON)
  • Un "salt" secreto único asociado a tu empresa

Esta doble validación asegura que las peticiones no puedan ser alteradas ni interceptadas.

3. Control por IP (Opcional)

Opcionalmente, puedes restringir el acceso a IPs específicas para añadir una capa extra de seguridad.

4. Prefijo de URLs (Opcional)

Para métodos que requieren acceso a archivos externos, puedes definir prefijos de URL autorizados.

📋 Obtención de Credenciales

Para obtener tus credenciales de acceso (token, salt y client_id), contacta con nuestro equipo:

⚠️ Códigos de Error de Autenticación

La API devuelve códigos de error específicos para ayudarte a diagnosticar problemas de autenticación:

CódigoMensajeDescripción
403Authorization Bearer header errorEl token Bearer es incorrecto o ha expirado
403Body-Signature header missingFalta la cabecera Body-Signature obligatoria
403Body-Signature mismatchLa firma no coincide con el contenido enviado
403Unauthorized IPsLa IP desde la que se realiza la petición no está autorizada
403client_id missingFalta el parámetro client_id en la petición
403client_id does not existEl client_id proporcionado no existe
403ForbiddenOperación no autorizada o recursos no accesibles
401UnauthenticatedNo se ha proporcionado autenticación válida
429Too Many RequestsSe ha excedido el límite de peticiones permitidas

🔄 Límites de Uso (Rate Limiting)

Para garantizar un servicio estable para todos los usuarios:

  • Límite estándar: 1000 peticiones por minuto
  • Límite por endpoint específico: Variable según el recurso
  • Cabeceras de respuesta incluyen: X-RateLimit-Limit, X-RateLimit-Remaining

Si necesitas límites superiores para integraciones específicas, contacta con nuestro equipo comercial.

Archivos

Subir archivo a un recurso específico

POST
https://api.sherwood.littlejohn.ai
/api/v2/files/upload
requires authentication

Endpoint genérico para subir archivos que se asocian a diferentes recursos del sistema (submissions, cases, crm). Crea el registro File mediante FileIngestor y luego crea el registro pivot correspondiente con los campos adicionales específicos.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
multipart/form-data

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/files/upload" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: multipart/form-data" \
    --form "client_id=247de846..."\
    --form "resource_type=submission"\
    --form "resource_id=abc123xyz..."\
    --form "submission_kind=USER_DOCUMENT"\
    --form "attachment_type=ESCRITO"\
    --form "description=Contrato de arrendamiento firmado"\
    --form "involvement_type=PARTE_QUE_RECORRE"\
    --form "main_submission=1"\
    --form "name=Documento importante.pdf"\
    --form "path=/contratos"\
    --form "is_folder="\
    --form "public="\
    --form "file=@/tmp/phptdebk1siip6i9zAWQes" 
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Archivo subido correctamente",
    "data": {
        "file_id": "abc123xyz",
        "filename": "documento.pdf",
        "filesize": 1024000,
        "mimetype": "application/pdf",
        "status": "INIT",
        "resource_type": "submission",
        "resource_id": "def456",
        "pivot_id": "ghi789"
    }
}

Calendario

Tareas


Crear nueva tarea

POST
https://api.sherwood.littlejohn.ai
/api/v2/tasks
requires authentication

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/tasks" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"status\": \"\\\"TODO\\\"\",
    \"case_id\": 12345,
    \"case_procedure_id\": 67890,
    \"notification_id\": 12345,
    \"trial_schedule_id\": 456,
    \"deadline_id\": 789,
    \"subject\": \"\\\"Revisar documentación del caso\\\"\",
    \"start_date\": \"\\\"2024-03-15 09:00:00\\\"\",
    \"end_date\": \"\\\"2024-03-15 17:00:00\\\"\",
    \"all_day\": false,
    \"shown\": \"\\\"BUSY\\\"\",
    \"conference_link\": \"\\\"https:\\/\\/meet.google.com\\/abc-defg-hij\\\"\",
    \"localization\": \"\\\"Oficina principal, Sala 2\\\"\",
    \"description\": \"\\\"Revisar todos los documentos aportados por la parte contraria\\\"\"
}"
Respuesta de ejemplo:
{
    "status": "success",
    "message": "Tarea creada correctamente",
    "data": {
        "id": "xyz123",
        "subject": "Revisar documentación del caso",
        "status": "TODO"
    }
}
{
    "status": "error",
    "message": "Datos de entrada inválidos",
    "errors": {
        "subject": [
            "El asunto es obligatorio"
        ]
    }
}
{
    "status": "error",
    "message": "Error de validación",
    "errors": {
        "case_id": [
            "El expediente especificado no existe"
        ]
    }
}

Listar tareas

GET
https://api.sherwood.littlejohn.ai
/api/v2/tasks
requires authentication

Obtiene una lista paginada de todas las tareas de la empresa. Las tareas pueden estar asociadas a expedientes, notificaciones o ser independientes.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
case_id
string

ID hasheado del expediente para filtrar.

Example:
abc123
status
string

Filtrar por estado (PENDING, COMPLETED, CANCELLED).

Example:
PENDING
priority
string

Filtrar por prioridad (LOW, MEDIUM, HIGH, URGENT).

Example:
HIGH
due_date_from
string

date Fecha de vencimiento desde.

Example:
2024-01-01
due_date_to
string

date Fecha de vencimiento hasta.

Example:
2024-12-31
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/tasks?page=1&per_page=20&case_id=abc123&status=PENDING&priority=HIGH&due_date_from=2024-01-01&due_date_to=2024-12-31" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "subject": "Revisar documentación",
                "description": "Revisar la documentación del expediente antes de la audiencia",
                "status": "PENDING",
                "priority": "HIGH",
                "due_date": "2024-06-30",
                "case_id": "def456",
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 45,
        "per_page": 20
    }
}

Obtener tarea específica

GET
https://api.sherwood.littlejohn.ai
/api/v2/tasks/{hashId}
requires authentication

Obtiene los detalles completos de una tarea específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000001
id
string
required

ID hasheado de la tarea.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/tasks/10000001" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "subject": "Revisar documentación",
        "description": "Revisar la documentación del expediente antes de la audiencia",
        "status": "PENDING",
        "priority": "HIGH",
        "due_date": "2024-06-30",
        "case_id": "def456",
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar tarea

PUT
https://api.sherwood.littlejohn.ai
/api/v2/tasks/{hashId}
requires authentication

Actualiza los datos de una tarea existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000001
id
string
required

ID hasheado de la tarea.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/tasks/10000001" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"subject\": \"Revisar documentación\",
    \"description\": \"Revisar la documentación del expediente\",
    \"status\": \"COMPLETED\",
    \"priority\": \"HIGH\",
    \"due_date\": \"2024-06-30\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Tarea actualizada correctamente"
}

Eliminar tarea

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/tasks/{hashId}
requires authentication

Elimina una tarea del sistema (soft delete).

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000001
id
string
required

ID hasheado de la tarea.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/tasks/10000001" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Tarea eliminada correctamente"
}
POST
https://api.sherwood.littlejohn.ai
/api/v2/calendar/search
requires authentication

Realiza una búsqueda avanzada de eventos del calendario (tareas, señalamientos, vencimientos) con todos los filtros disponibles.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/calendar/search" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"query\": \"molestiae\",
    \"event_type\": [
        \"eaque\"
    ],
    \"filter_event_date_range\": \"totam\",
    \"calendar_users_assigned\": [
        \"ea\"
    ],
    \"has_notification\": \"perferendis\",
    \"notification_status\": [
        \"et\"
    ],
    \"has_trial\": \"dicta\",
    \"trial_digital\": \"labore\",
    \"filter_trial_date_range\": \"ea\",
    \"has_deadline\": \"id\",
    \"deadline_type\": [
        \"laborum\"
    ],
    \"filter_deadline_range\": \"fugiat\",
    \"task_status\": [
        \"architecto\"
    ],
    \"task_priority\": [
        \"error\"
    ],
    \"filter_task_due_range\": \"dolores\",
    \"actora\": [
        \"quis\"
    ],
    \"contraria\": [
        \"ipsam\"
    ],
    \"nullParty\": [
        \"occaecati\"
    ],
    \"case_type\": [
        \"omnis\"
    ],
    \"jurisdiction\": [
        \"sit\"
    ],
    \"procedure_type\": [
        \"dolorem\"
    ],
    \"caseStateParent\": [
        \"ut\"
    ],
    \"caseState\": [
        \"amet\"
    ],
    \"filter_last_status_range\": \"ullam\",
    \"filter_company\": [
        \"dolorum\"
    ],
    \"filter_company_role\": [
        \"qui\"
    ],
    \"court_provinces\": [
        \"maiores\"
    ],
    \"court_entity_id\": \"et\",
    \"sort\": \"architecto\",
    \"sort_direction\": \"omnis\",
    \"offset\": 10,
    \"limit\": 11,
    \"page\": 2
}"
Respuesta de ejemplo:

Catálogos de Escritos

Obtener catálogo o lista de catálogos disponibles

GET
https://api.sherwood.littlejohn.ai
/api/v2/submissions/catalog
requires authentication

Endpoint unificado para obtener catálogos de LEXNET o E-JUSTICIA.

Sin parámetros: Retorna lista de todos los catálogos disponibles Con parámetros: Retorna el catálogo específico solicitado

Catálogos disponibles:

  • LEXNET: clases-registro, delitos, materias, attachment-types, submission-types
  • EJUSTICIA: especialidades, materias-repartiment, clases-procedimiento, document-types, involvement-types, submission-types

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

platform
string

optional Plataforma judicial (LEXNET, EJUSTICIA). Requerido junto con catalog.

Example:
LEXNET
catalog
string

optional Tipo de catálogo a obtener. Requerido junto con platform.

Example:
clases-registro
jurisdiction
string

optional Filtrar por jurisdicción (CIVIL, PENAL, SOCIAL, ADMINISTRATIVO, CONTENCIOSO).

Example:
CIVIL
council_code
string

optional Código de consejo judicial (solo LEXNET).

Example:
28
group_type
string

optional Filtrar por grupo de escrito (INICIADOR, TRAMITE) - solo para catalog=submission-types.

Example:
TRAMITE
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/submissions/catalog?platform=LEXNET&catalog=clases-registro&jurisdiction=CIVIL&council_code=28&group_type=TRAMITE" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
Headers
cache-control: no-cache, private
location: https://api.sherwood.littlejohn.ai/auth/login
content-type: text/html; charset=utf-8
access-control-allow-origin: *
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://api.sherwood.littlejohn.ai/auth/login'" />

        <title>Redirecting to https://api.sherwood.littlejohn.ai/auth/login</title>
    </head>
    <body>
        Redirecting to <a href="https://api.sherwood.littlejohn.ai/auth/login">https://api.sherwood.littlejohn.ai/auth/login</a>.
    </body>
</html>

Comunicaciones Judiciales

Notificaciones


Obtener notificación

POST
https://api.sherwood.littlejohn.ai
/api/v2/notification/get
requires authentication

Extrae toda la información de una notificación

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
quae
Content-Type
Example:
application/json

Parámetros de consulta

id
string

Hash de la notificación.

Example:
7d5bc2785997d5bc2785997d5bc2785997d5bc278599
client_id
string

Debe contener el id de la compañía (hash)

Example:
est
refresh_url
boolean

Indica si se debe refrescar la URL de los archivos de la notificación. Este campo es opcional y su valor por defecto es false. Si se establece en true, se generará una nueva URL para los archivos de la notificación.

Example:
http://www.schmitt.com/repellendus-nisi-nesciunt-sunt-vel-est-ipsum
Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/notification/get?id=7d5bc2785997d5bc2785997d5bc2785997d5bc278599&client_id=est&refresh_url=http%3A%2F%2Fwww.schmitt.com%2Frepellendus-nisi-nesciunt-sunt-vel-est-ipsum" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: quae" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
	// Información relativa al modelo de notificación y su relación dentro de la suite de Sherwood en Little John
	"sherwood": {
		"notification": {
			"id": "7430e61d1764e324e5703e6826285179e047089034de7d1456081d...", // (str) ID (en formato hash) de la notificación de 64 bytes
			"url": "https://sherwood.littlejohn.ai/notification/...", // (url) URL de la notificación
			"creation_date": "2024-05-03 12:20:10+02:00", // (date) Fecha de creación en formato ISO 8601
			"last_modification": {
				"last_modification_Date": "2024-05-03 12:20:10+02:00", // (date) Fecha de última modificación en formato ISO 8601	
				"user": {
					"id": "7430e61d1764e324e5703e6826285179e04708903...", // (str) ID (en formato hash) del usuario que hizo la últ. modif.
					"name": "Elisa Perales", // (str) Nombre del usuario que hizo la últ. modif.
				},
			},
			"linked_notifications": [ // (array) Lista de identificadores de notificaciones vinculadas
				"7430e61d1764e324e5703e6826285179e047089034de7d1456081d...", // (str) ID (en formato hash) de la notificación de 64 bytes
				"26285179e047089034de7d1456081d7430e61d1764e324e5703e68...", // (str) ID (en formato hash) de la notificación de 64 bytes
				//...
			],
			"approval": {
				"approved_status": true,
				"date": "2024-05-03 12:20:10+02:00", // (date) Fecha de aprobación en formato ISO 8601
				"user": {
					"id": "7430e61d1764e324e5703e6826285179e04708903...", // (str) ID (en formato hash) del usuario que aprobó
					"name": "Elisa Perales", // (str) Nombre del usuario que aprobó
				},
			},
			"assignment": {
				"status_assigned": true, // Estado de la asignación
				"historic_assignation": [
					{
						"current": true, // (bool) Si es la asignación vigente
						"date": "2024-05-03 12:20:10+02:00", // (date) Fecha de la asignación vigente en formato ISO 8601
						"assignor": [
							"id": "7430e61d1764e324e5703e6826285179e04708903...", // (str) ID (en formato hash) del usuario que asignó
							"nombre": "Elisa Perales", // (str) Nombre del usuario que asignó
						],
						"assigned_users": [
							"id": "7430e61d1764e324e5703e6826285179e04708903...", // (str) ID (en formato hash) del usuario asignado
							"nombre": "Marta Robles", // (str) Nombre del usuario asignado
						],
						"url_video_moonback": "https://moonback.show/...", // (str) URL del video MoonBack del mensaje vigente
						"mensaje": "Te envío esto porque ...", // (str) Mensaje del mensaje vigente
					},
					// ... más elementos
				],
				"usuarios_recomendados": [
					{
						"id": "7430e61d1764e324e5703e6826285179e047089034de...", // (str) ID (en formato hash) del usuario
						"nombre": "Elisa Perales", // (str) Nombre del usuario
						"relevancia": 98 // (int) Porcentaje de relevancia para la recomendación
					},
					{
						"id": "6285179e047089034de7430e61d1764e324e5703e682...", // (str) ID (en formato hash) del usuario
						"nombre": "Marta Perez", // (str) Nombre del usuario
						"relevancia": 76 // (int) Porcentaje de relevancia para la recomendación
					},
					// ... más elementos
				]
			},
			"color": "verde", // Etiqueta de color asignada
			"history": [ // (array) Histórico de los cambios realizados
				{
					"date": { // (date) Fecha de la acción en formato ISO 8601
						"field": "due_date",
						"old_value": "xxxx",
						"new_value": "xxxx"
					},
					"action": "NOTIFICATION_APPROVED",
					"user": {
						"id": "7430e61d1764e324e5703e6826285179e04708903...", // (str) ID (en formato hash) del usuario que aprobó
						"name": "Elisa Perales", // (str) Nombre del usuario que aprobó
					}
				},
				// ... más elementos
			]
		},
		"case": {
			"id": "TE1.24.05.A09", // (str) Número de Expediente vinculado a la notificación
			"url": "https://sherwood.littlejohn.ai/case/...", // (url) URL del expediente,
			"jurisdiction": "Civil", // (str) Tipo de ordenamiento jurídico
			"creator": "Procuradores Ruiz", // (str) Nombre de la empresa que creo el expediente
			"owner": "Procuradores Ruiz", // (str) Nombre de la empresa propietaria del expediente
			"manager": "Procuradores Ruiz", // (str) Nombre de la empresa que gestiona el expediente
			"external_id": "2452134A", // (str) Identificador de la plataforma externa de la empresa
			"external_url": "https://otrosistema.com/...", // (str) URL de la plataforma externa de la empresa
		}
	},
	// Documentos involucrados en la notificación (array)
	"documents": [
		{
			"via": "CLOUD", // Canal a través se cargó el fichero
			"upload_date": "2024-05-03 12:20:10+02:00", // (date) Fecha cuando entró el documento en el sistema en formato ISO 8601
			"type": "NOTIFICATION", // 'HEADER','NOTIFICATION','MIX','DOCUMENT'
			"filename": "2018_001_0801942050_20240611_0813_41987838_00.pdf", // (str) Nombre original del fichero
			"filesize": 13443154, // (int) Tamaño del fichero en bytes
			"mimytype": "application/pdf", // (str) Mime Type del fichero (compatible con CTEAJE)
			"hash": "8f84652b5bca10bbe492310f0aed51037877520f057f8...", // (str) Hash único de fichero de 64 bytes
			"zipfile": "2018_001_0801942050_20240611.zip", // (str) Nombre del fichero ZIP donde venía el archivo (si así fuere) 
			"signed_url": "https://...", // (str) URL firmada y única del acceso al fichero
			"url_expiration": "2024-05-06 12:20:10+02:00", // (date) Fecha cuando expira la URL y cambiará en formato ISO 8601
			"ai_processing": true, // (bool) Si el documento fue procesado con IA
			"verification_code": "E04799402-MA", // (str) CSV para la verificación legal del documento
			"verification_url": "https://www.administraciondejusticia.gob.es", // (str) URL para la verificación legal del documento
			"header": {
				"type": "lexnet", // (str) "Lexnet", "Cicerone", "Avantius" o "Otra"
				"identifier": "245242525111234", // (int) Número de identificación de la plataforma
				"subject": "Comunicación del Acontecimiento...", // (str) Asunto de la cabecera
				"send_date": "2024-05-03 12:20:10+02:00", // (date) Fecha de envío a la plataforma en formato ISO 8601
				"court": {
					"cteaje_code": "42512342", // (int) Código oficial del CTEAJE
					"name": "Juzgado Nº5 de Primera Instancia de Santander", // (str) Nombre completo del juzgado
					"address": "C/ Cibeles 12, s/n", // (str) Dirección del juzgado
					"city": "Madrid", // (str) Ciudad del juzgado
					"postal_code": 28012, // (int) Código postal del juzgado
					"phone": "9761245425", // (str) Teléfono del juzgado
					"fax": "975614344", // (str) Fax del juzgado
					"email": "juzgado_n8@santander.es", // (str) Email del juzgado
					"coordenates": {
						"latitude": 42.131344, // (float) Latitud del juzgado
						"longitude": 0.850314 // (float) Longitud del juzgado 
					}
				},
				"history": [ // (array) Histórico del mensaje
					{
						"date": "2024-05-03 12:20:10+02:00", // (date) Fecha de la acción del historial en formato ISO 8601
						"sender": "Juan José Ortiz", // (str) Nombre del emisor de la acción
						"action": "LO RECOGE", // (str) Nombre de la acción
						"recipient": "Julián Perez", // (str) Nombre del destinatario de la acción		    			
					},
					// ... más elementos
				]
			}
		},
		// ... más elementos
	],
	// Tipo de resolución de la notificación
	"resolution": {
		"type": "AUTO", // (str) Tipo de resolución de la notificación
		"subtype": "Inhibición", // (str) Subtipo de resolución de la notificación
		"attribute_1": {
			"label": "CUANTIA", // (str) Tipo 1 de atributo de la notificación
			"value": "Liquidación de intereses" // (str) Valor 1 de atributo de la notificación
		},
		"attribute_2": {
			"label": "REQUERIMIENTO", // (str) Tipo 2 de atributo de la notificación
			"value": "Subsanación" // (str) Valor 2 de atributo de la notificación
		},
		"recipient": "Carlos Orange", // (str) Nombre del receptor de la notificación
		"special": {
			"costs_payer": "Claimnt / Respondent",
			"ruling": "costs payer",
		}
	},
	// Resúmenes de las distintas partes del documento
	"summarization": {
		"summarization_title": "Requerimiento a beneficiarios para designar cuenta...", // (str) Frase resumen de la notificación
		"summarization": [ // (array) Puntos clave de la notificación
			"Se requiere a los beneficiarios para que aporten ...",
			"Se les informa de la posibilidad de impugnación mediante...",
			// ... más elementos
		]
	},
	// Señalamientos expuestos en la notificación (array)
	"trial_schedule": [
		{
			"date": "2024-05-06 12:20:10+02:00", // (date) Fecha del señalamiento en formato ISO 8601
			"telematic": true, // (bool) Si el señalamiento es en formato telemático
			"in_person": true, // (bool) Si el plazo es para la parte actora
			"type": "Audiencia previa", // (str) Motivo del señalamiento
			"participation": "ID: 8031106961, aplicación ZOOM", // (str) Detalles de cómo participar
			"court": {
				"cteaje_code": "42512342", // (int) Código oficial del CTEAJE
				"name": "Juzgado Nº5 de Primera Instancia de Santander", // (str) Nombre completo del juzgado
				"address": "C/ Cibeles 12, s/n", // (str) Dirección del juzgado
				"city": "Madrid", // (str) Ciudad del juzgado
				"postal_code": 28012, // (int) Código postal del juzgado
				"phone": "9761245425", // (str) Teléfono del juzgado
				"fax": "975614344", // (str) Fax del juzgado
				"email": "juzgado_n8@santander.es", // (str) Email del juzgado
				"coordenates": {
					"latitude": 42.131344, // (float) Latitud del juzgado
					"longitude": 0.850314 // (float) Longitud del juzgado 
				}
			},
		},
		// ... más elementos
	],
	"key_dates": { //(str) Fechas importantes de la notificación
		"notification": "2025/02/18 00:00:00", //(datetime) Fecha de la notificación en formato YYY/MM/DD H:i:s
		"document": "2025/02/17 00:00:00", //(datetime) Fecha del documento en formato YYY/MM/DD H:i:s
		"send": "2025/02/17 14:13:18", //(datetime) Fecha de envío en formato YYY/MM/DD H:i:s
		"pickup": "2025/02/17 14:26:41", //(datetime) Fecha de recogida en formato YYY/MM/DD H:i:s
		"ack": null, //(datetime) Fecha de ack en formato YYY/MM/DD H:i:s
		"deliver": "2025/02/17 14:23:29", //(datetime) Fecha de entrega en formato YYY/MM/DD H:i:s
		"reception": "2025/02/17" //(datetime) Fecha de recepción en formato YYY/MM/DD H:i:s
	},
	// Vencimientos de los plazos expuestos en la notificación que no sean señalamientos (array)
	"deadlines": [
		{
			"id": "7430e61d1764e324e5703e6826285179e047089034de7d1456081d...", // (str) ID del vencimiento (en formato hash) de 64 bytes
			"days": 4, // (int) Días restantes para que se cumpla el plazo
			"detail": "Para la presentación del documento solicitado...", // (str) Texto en detalle del motivo del plazo
			"favourite_concept": "Recurso: Reposición", // (str) Nombre amigable si está vinculado a un recurso
			"involved": {
				"claimant": false, // (bool) Si el plazo es para la parte actora
				"respondent": true // (bool) Si el plazo es para la parte contraria
			},
			"date_expiration": "2024-05-06T12:20:10+02:00", // (date) Fecha límite del vencimiento en formato ISO 8601
			"date_expiration_doc": "2024-05-07T15:00:00+02:00", // (date) Fecha del vencimiento con periodo de gracia
			"date_expiration_alert": "2024-05-05T08:00:00+02:00", // (date) Fecha para generar alerta previa al vencimiento
			"inc_non_working_days": false, // (bool) Si el plazo incluye días no laborables en su cálculo
			"last_assign_message": true, // (bool) Si hay mensaje o datos relevantes en la última asignación
			"automated": false, // (bool) Indica si fue generado automáticamente
			"approved": true, // (bool) Si la notificación fue aprobada por la empresa
			"color_tag": "#FF9900", // (str) Color visual asociado a la notificación
			"calendar_title": "Entrega de documentación", // (str) Título breve para calendario
			"calendar_description": "Entrega de documentación<i class='fal fa-fw fa-folder-bookmark me-1'></i>EXP-2024-0912 · Empresa S.A.<span class='ms-1'><i class='fal fa-fw fa-memo-circle-info me-1'></i>Notificación #A1234</span>" // (str) Descripción extendida para vista en calendario
		}
		// ... más elementos
	],
	// Cantidades existentes en la notificación (array)
	"quantities": [
		{
			"quantity": 234.23, // (float) Cantidad en euros
			"concept": "Ingreso en la cuenta del actor", // (str) Concepto expuesto en la notificación
			"type": 5, // (id) Identificador del tipo de cuantía (ver tabla)
			"beauty_type": "Derechos del procurador (impuestos inc.)" // (str) Descripción del tipo
		}
		// ... más elementos
	],
	// Números de cuenta en la notificación (array)
	"accounts": [
		{
			"iban": "20860234103420452511", // (str) Números de la cuenta IBAN
			"purpose": "Devolución de la fianza", // (str) Texto que expresa el propósito de la cuenta
			"instructions": "Enviar justificante tras el depósito" // (str) Texto con instrucciones adicionales
		},
		// ... más elementos
	],
	// Las partes involucradas en la notificación
	"parties": {
		"claimant": {
			"roles": [
				{
					"role": "Parte de Actora", // Parte principal actora (anteriormente: partes.actora.claimant)
					"name": "Alejandro García", // Nombre del contacto
					"identifications": [
						{
							"type": "CIF", // Tipo de identificación
							"value": "G93295517" // Valor de identificación
						}
					],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...", // ID de Sherwood
					"url": "https://sherwood.littlejohn.ai/crm/..." // URL en Sherwood
				},
				{
					"role": "Abogado de Actora", // Representante legal actora (anteriormente: partes.actora.abogado)
					"name": "Alejandro García",
					"identifications": [],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...",
					"url": "https://sherwood.littlejohn.ai/crm/..."
				},
				{
					"role": "Procurador de Actora", // Procurador actora (anteriormente: partes.actora.procurador)
					"name": "Alejandro García",
					"identifications": [],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...",
					"url": "https://sherwood.littlejohn.ai/crm/..."
				}
			],
			"represented": true // Indica si la parte está representada (anteriormente: partes.actora.representada)
		},
		"respondent": {
			"roles": [
				{
					"role": "Parte de Contraria", // Parte principal contraria (anteriormente: partes.respondent.nombre)
					"name": "Alejandro García",
					"identifications": [
						{
							"type": "DNI", // Tipo de identificación DNI, CIF, etc
							"value": "60843028R" // Valor de la identificación
						}
					],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...",
					"url": "https://sherwood.littlejohn.ai/crm/..."
				},
				{
					"role": "Abogado de Contraria", // Representante legal contraria (anteriormente: partes.respondent.abogado)
					"name": "Alejandro García",
					"identifications": [],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...",
					"url": "https://sherwood.littlejohn.ai/crm/..."
				},
				{
					"role": "Procurador de Contraria", // Procurador contraria (anteriormente: partes.respondent.procurador)
					"name": "Alejandro García",
					"identifications": [],
					"id": "7430e61d1764e324e5703e6826285179e0470890081d...",
					"url": "https://sherwood.littlejohn.ai/crm/..."
				}
			],
			"represented": false // Indica si la parte está representada (anteriormente: partes.respondent.representada)
		},
		"part_types": {
			"claimant": "demandante", // Tipo de parte actora
			"respondent": "demandado" // Tipo de parte contraria
		}
	}
	// Información completa del procedimiento de la notificación
	"procedure": {
		"nig": "350867360245254", // (str) Número de identificación general del procedimiento judicial
		"number": "21/2024", // (str) Número de procedimiento
		"code": "AJN", // (str|null) Código oficial del tipo de procedimiento (CTEAJE)
		"type": "Despacha la ejecución de títulos judiciales", // (str|null) Tipo de procedimiento
		"start_date": "2024-05-07 15:00:00+02:00", // (str|null) Fecha de inicio del procedimiento
		"court": {
			"cteaje_code": "42512342", // (str) Código del juzgado según CTEAJE
			"name": "Juzgado Nº5 de Primera Instancia de Santander", // (str) Nombre oficial del juzgado
			"address": "C/ Cibeles 12, s/n", // (str) Dirección del juzgado
			"city": "Madrid", // (str) Ciudad donde se ubica el juzgado
			"postal_code": "28012", // (str) Código postal del juzgado
			"phone": "9761245425", // (str) Teléfono del juzgado
			"fax": "975614344", // (str) Fax del juzgado
			"email": "juzgado_n8@santander.es", // (str) Email de contacto del juzgado
			"coordenates": { // (obj) Coordenadas de ubicación del juzgado
				"latitude": "42.131344", // (str|float) Latitud
				"longitude": "0.850314" // (str|float) Longitud
			}
		},
		"professionals": {
			"judge": [
				"Jose Hierro" // (str_array|null) Lista de jueces involucrados
			],
			"counsel": [
				"Manuel López", // (str_array|null) Letrados involucrados (antes: "letrado")
				"Alicia Perez"
			],
			"magistrate": [
				"Rosa Paredes" // (str_array|null) Magistrados involucrados
			],
			"president": [
				"Alex Asín" // (str_array|null) Presidentes involucrados
			]
		}
	}
	// Si lo hubiere, información completa del procedimiento de origen
	"procedure_source": {
		"nig": "350867360245254", // (str) El NIG del procedimiento 
		"number": "21/2024", // (str) Número de procedimiento
		"code": "AJN", // (str) Código oficial del tipo de procedimiento del CTEAJE
		"type": "Despacha la ejecución de títulos judiciales", // (str) Tipo de notificación
		"start_date": "2024-05-07 15:00:00+02:00", // (date) Fecha inicio del procedimiento en LittleJohn
		"court": {
			"cteaje_code": "42512342", // (str) Código del juzgado según CTEAJE
			"name": "Juzgado Nº5 de Primera Instancia de Santander", // (str) Nombre oficial del juzgado
			"address": "C/ Cibeles 12, s/n", // (str) Dirección del juzgado
			"city": "Madrid", // (str) Ciudad donde se ubica el juzgado
			"postal_code": "28012", // (str) Código postal del juzgado
			"phone": "9761245425", // (str) Teléfono del juzgado
			"fax": "975614344", // (str) Fax del juzgado
			"email": "juzgado_n8@santander.es", // (str) Email de contacto del juzgado
			"coordenates": { // (obj) Coordenadas de ubicación del juzgado
				"latitude": "42.131344", // (str|float) Latitud
				"longitude": "0.850314" // (str|float) Longitud
			}
		},
		"professionals": {
			"judge": [
				"Jose Hierro" // (str_array|null) Lista de jueces involucrados
			],
			"counsel": [
				"Manuel López", // (str_array|null) Letrados involucrados (antes: "letrado")
				"Alicia Perez"
			],
			"magistrate": [
				"Rosa Paredes" // (str_array|null) Magistrados involucrados
			],
			"president": [
				"Alex Asín" // (str_array|null) Presidentes involucrados
			]
		}
	},
	// Información del recurso de la notificación (si lo hay)
	"appeal": {
		"days": 5, // (int) Número de días disponibles para presentar el recurso
		"type": "reposición", // (str) Tipo de recurso (antes un ID, ahora nombre legible)
		"deposit": 50, // (int|null) Cantidad del depósito requerido para el recurso
		"iban": "20841023050202023145", // (str|null) Número de cuenta IBAN para realizar el depósito
		"instructions": "Deposítese en la cuenta citada la ..." // (str|null) Instrucciones detalladas para realizar el depósito
	},
	// Estado y clasificación de la notificación
	"status": "APPROVED", // (str) Estado de la notificación: "PENDING", "APPROVED", "ARCHIVED", etc.
	"jurisdiction": "CIVIL", // (str) Jurisdicción: "CIVIL", "PENAL", "CONTENCIOSO-ADMINISTRATIVO", "SOCIAL"
	"company_id": "7430e61d1764e324e5703e6826285179e047089034de7d1456081d...", // (str|null) ID de la empresa (hash)
	"has_alerts": true, // (bool) Si tiene alertas activas
	"notification_type_suggestion": { // (obj) Sugerencias del tipo de notificación por IA
		"suggestion_1": { // (obj|null) Primera sugerencia
			"group": "AUTO", // (str) Grupo de la sugerencia: "AUTO", "SENTENCIA", "DECRETO", etc.
			"name": "Subsanación" // (str) Nombre del tipo de notificación
		},
		"suggestion_2": { // (obj|null) Segunda sugerencia
			"group": "DECRETO", // (str) Grupo de la sugerencia
			"name": "Subsanación" // (str) Nombre del tipo de notificación
		},
		"suggestion_3": null // (obj|null) Tercera sugerencia
	},
	// Información sobre la parte representada
	"party_representation": {
		"party": "claimant", // (str|null) Parte representada: "claimant" (actora), "respondent" (contraria) o "indeterminate" si no se pudo determinar
		"actionable_info": { // (obj) Información sobre qué roles de la parte representada requieren acción
			"name": true, // (bool) Si el nombre de la parte representada requiere acción
			"name_reason": "Debe comparecer personalmente ante el juzgado el 15/06/2024", // (str) Razón o descripción de por qué requiere acción
			"procurator": true, // (bool) Si el procurador de la parte representada requiere acción
			"procurator_reason": "Debe presentar escrito de contestación a la demanda", // (str) Razón o descripción
			"lawyer": false, // (bool) Si el abogado de la parte representada requiere acción
			"lawyer_reason": "" // (str) Razón o descripción
		}
	},
	// Información sobre las costas del procedimiento
	"costs": {
		"payer": "claimant" // (str|null) Quién debe pagar las costas: "claimant" (actora), "respondent" (contraria) o null
	},
	// Información de la plataforma judicial de origen
	"platform_info": {
		"platform": "LEXNET", // (str|null) Plataforma de origen: "LEXNET", "AVANTIUS", "EJUSTICIA.CAT", etc.
		"platform_id": "2024000123456", // (str|null) ID interno de la notificación en la plataforma
		"recipient": "Juan García Martín" // (str|null) Nombre del destinatario en la plataforma
	},
	// IDs relacionados con la notificación (en formato hash)
	"related_ids": {
		"user_id": "7430e61d1764e324e5703e6826285179e047089034de7d1456081d...", // (str|null) ID del usuario asignado
		"submission_id": "8541f72e2875f435f6814f7937396280f158190145ef8e2567192e...", // (str|null) ID del escrito relacionado
		"approved_user_id": "9652g83f3986g546g7925g8048407391g269201256fg9f3678203f...", // (str|null) ID del usuario que aprobó
		"case_procedure_id": "a763h94g4a97h657h8a36h9159518402h37a312367gh0g4789314g..." // (str|null) ID del procedimiento/caso
	},
	// Timestamps del ciclo de vida de la notificación
	"timestamps": {
		"created_at": "2024-05-03 12:20:10", // (datetime) Fecha de creación en Sherwood
		"updated_at": "2024-05-03 15:45:22", // (datetime) Fecha de última modificación
		"deleted_at": null // (datetime|null) Fecha de borrado (soft delete)
	},
	// Discrepancias detectadas en los datos de la notificación
	"mismatches": [
		{
			"type": "COURT_MISMATCH", // (str) Tipo de discrepancia detectada
			"description": "El juzgado indicado no coincide con el NIG", // (str) Descripción de la discrepancia
			"field": "court_entity_id", // (str) Campo afectado
			"expected": "28079005", // (mixed) Valor esperado
			"actual": "28079002" // (mixed) Valor actual
		}
		// ... más elementos
	],
	// Alertas de datos críticos o incompletos
	"data_alerts": [
		{
			"severity": "HIGH", // (str) Nivel de severidad: "HIGH", "MEDIUM", "LOW"
			"type": "MISSING_DEADLINE", // (str) Tipo de alerta
			"message": "No se ha podido extraer la fecha de vencimiento del recurso", // (str) Mensaje descriptivo
			"field": "deadline_date" // (str|null) Campo relacionado
		}
		// ... más elementos
	],
	// Tareas pendientes asociadas a la notificación
	"tasks": [
		{
			"id": 1234, // (int) ID de la tarea
			"title": "Revisar documentación adjunta", // (str) Título de la tarea
			"description": "Verificar que todos los anexos estén completos", // (str|null) Descripción detallada
			"due_date": "2024-05-10 18:00:00", // (datetime|null) Fecha de vencimiento
			"status": "PENDING", // (str) Estado: "PENDING", "IN_PROGRESS", "COMPLETED"
			"assigned_to": "7430e61d1764e324e5703e6826285179e047089034de7d1456081d..." // (str|null) ID del usuario asignado
		}
		// ... más elementos
	],
	// Campos específicos para notificaciones tipo ACK (acuses de recibo) - Solo presente si type === 'ACK'
	"ack": {
		"dates": {
			"received": "2024-05-03 12:20:10", // (datetime|null) Fecha cuando se recibió el acuse
			"accepted": "2024-05-03 14:30:15", // (datetime|null) Fecha cuando se aceptó
			"rejected": null, // (datetime|null) Fecha cuando se rechazó
			"delivered": "2024-05-03 15:45:22" // (datetime|null) Fecha cuando se entregó
		},
		"ack_id": "ACK2024001234", // (str|null) ID del acuse en la plataforma
		"deliver": {
			"number": "2024/001234", // (str|null) Número de entrega
			"type": "Escritos" // (str|null) Tipo de entrega
		},
		"details": {
			"rejected": null, // (str|null) Detalles del rechazo si aplica
			"deliver": "Entrega realizada correctamente" // (str|null) Detalles de la entrega
		}
	},
	// Campos específicos para notificaciones tipo COPIES (traslado de copias) - Solo presente si type === 'COPIES'
	"copies": {
		"date_copy": "2024-05-03 12:20:10", // (datetime|null) Fecha de la copia
		"date_copy_start": "2024-05-03 09:00:00", // (datetime|null) Fecha de inicio del traslado
		"date_copy_college": "2024-05-02 16:30:00" // (datetime|null) Fecha de copia en colegio profesional
	}
}
{
    "status": 400
}
{
    "status": 403
}
POST
https://api.sherwood.littlejohn.ai
/api/v2/notification/search
requires authentication

Realiza una búsqueda de notificaciones aplicando filtros específicos. Las respuestas devolverán hasta 100 notificaciones o sus IDs. Para obtener el siguiente bloque de 100, deberás incluir el parámetro offset con un valor de 100, y así sucesivamente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
quae
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Debe incluir el ID de la compañía (hash). Este campo es necesario para identificar correctamente la entidad asociada.

Example:
adipisci
extra_info
boolean

Si se ha acordado en el contrato, puedes establecer este campo en true para que la respuesta incluya los datos completos de la notificación y no solo el ID.

Example:
false
offset
integer

Si se establece el valor 100 en este campo, se devolverán las notificaciones o IDs de notificaciones que se encuentren posteriores a la número 100 en los resultados de la búsqueda. Además la respuesta incluye "total" con el número total de elementos tras la búsqueda, clave para que el integrador itere la paginación tantas veces como sea necesario.

Example:
19
extra_info_notifications
string[]

Solo disponible si extra_info está activo. Array que debe contener todos los IDs de notificación (no hasheados) para los que se desea la información completa.

Example:
["iusto"]
filter_simple_range
string

Puede contener uno de estos valores: ['last_7_days', 'last_15_days', 'last_30_days', 'last_90_days', 'last_6_months', 'last_year', 'last_two_years']

Example:
accusantium
approval
integer

Puede contener uno de estos valores [1 (aprobadas), 2 (pendientes de aprobación), 3 (no aprobadas)]

Example:
4
type
string[]

String separado por comas que incluya los tipos de notificación que quieres recuperar. Ejemplo: "RESOLUCION,AUTO"

Example:
["doloribus"]
filter_case
integer

Busca por un ID del expediente específico (Buscar por ID de expediente)

Example:
2
filter_nig
string

Busca por un NIG específico (ej: 28.079.00.1-2023/0000001)

Example:
hic
filter_proc_number
string

Busca por un número de procedimiento específico (ej: 12/2023)

Example:
cum
filter_court_entity_id
integer

Busca notificaciones por el ID del juzgado específico

Example:
16
filter_case_procedure_id
integer

Busca notificaciones por ID de CaseProcedure específico

Example:
6
filter_notification_type_id
integer

Busca notificaciones por el ID del tipo específico

Example:
11
sort
string

Puede contener uno de estos valores: [create, name, notification_date]. Valor por defecto: notification_date

Example:
reprehenderit
sort_direction
string

Puede contener uno de estos valores: [asc, desc]. Valor por defecto: desc

Example:
et
search
string

Realiza una búsqueda de texto libre

Example:
cupiditate
filter_date_notification_since
string

date Busca notificaciones desde una fecha específica (formato Y-m-d)

Example:
et
filter_date_notification_until
string

date Busca notificaciones hasta una fecha específica (formato Y-m-d)

Example:
necessitatibus
filter_date_document_since
string

date Busca notificaciones desde una fecha de documento específica (formato Y-m-d)

Example:
necessitatibus
filter_date_document_until
string

date Busca notificaciones hasta una fecha de documento específica (formato Y-m-d)

Example:
sit
filter_date_added_since
string

date Busca notificaciones añadidas desde una fecha específica (formato Y-m-d)

Example:
et
filter_date_added_until
string

date Busca notificaciones añadidas hasta una fecha específica (formato Y-m-d)

Example:
aut

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/notification/search?client_id=adipisci&extra_info=&offset=19&extra_info_notifications[]=iusto&filter_simple_range=accusantium&approval=4&type[]=doloribus&filter_case=2&filter_nig=hic&filter_proc_number=cum&filter_court_entity_id=16&filter_case_procedure_id=6&filter_notification_type_id=11&sort=reprehenderit&sort_direction=et&search=cupiditate&filter_date_notification_since=et&filter_date_notification_until=necessitatibus&filter_date_document_since=necessitatibus&filter_date_document_until=sit&filter_date_added_since=et&filter_date_added_until=aut" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: quae" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:

Crear notificación

POST
https://api.sherwood.littlejohn.ai
/api/v2/notification/create
requires authentication

Recibe los ficheros de una única notificación para procesar los datos con IA y crear la notificación en el sistema. Cuando se envían ficheros/urls a este servicio, la llamada HTTP se quedará en espera por un máximo de 5 minutos, si no ha sido posible procesar los ficheros en ese tiempo, se devuelve un código 201 indicando que se están procesando y aparecerá posteriormente en el servicio de búsqueda (api/v2/notification/search)

  • Body-Signature: IMPORTANTE. En este caso Body-Signature no se genera con el contenido de la petición ya que, al ser archivos, podría ser muy grande la comprobación. En este caso, la comprobación se hace con la suma de los tamaños de los ficheros que se mandan (no importa que sean por "files" o por "urls". Se cogerá la suma del tamaño de todos, añadida al "salt" de la empresa)

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
dolorem
Content-Type
Example:
multipart/form-data

Parámetros de consulta

client_id
string

Debe contener el ID de la compañía (hash)

Example:
dolorem
judcom_type
string

Debe contener alguno de estos valores 'RESOLUTION', 'ACK_RECEIVED', 'ACK_REJECTED', 'ACK_ACCEPTED', 'ACK_DELIVERED', 'COPIES'

Example:
occaecati
files
string[]

Opcional. Ficheros zip y/o PDF. Importante: los archivos deben conservar el mismo nombre con el que fueron emitidos. Ejemplo: "2025_0002525_RPL_20252525252525252525252525256_000_RESUMEN.pdf"

Example:
["a"]
urls
string[]

Opcional. URLs de zip y/o PDF a descargar. Importante: los archivos en la URL deben mantener el nombre original con el que fueron emitidos. Además, la URL debe estar registrada como una URL autorizada por el equipo de Little John. Ejemplo: "https://azure.com/cloud/NOTI_2341212312132.pdf"

Example:
["quos"]

Parámetros del cuerpo

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/notification/create?client_id=dolorem&judcom_type=occaecati&files[]=a&urls[]=quos" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: dolorem" \
    --header "Content-Type: multipart/form-data" \
    --form "client_id=iure"\
    --form "judcom_type=RESOLUTION"\
    --form "urls[]=https://farrell.com/rerum-qui-aspernatur-corrupti.html"\
    --form "certificate_id=officia"\
    --form "files[]=@/tmp/php5so2kehklqtl73EvfHH" 
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Procesando los ficheros"
}
{
    "status": "Error",
    "error": "Unauthorized"
}
{
    "status": "Error",
    "error": "No existe webhook o módulo no autorizado"
}
{
    "status": "Error",
    "error": "URL no autorizada o archivo no válido"
}

Señalamientos


Crear nuevo señalamiento

POST
https://api.sherwood.littlejohn.ai
/api/v2/trial-schedules
requires authentication

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/trial-schedules" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"case_id\": 12345,
    \"case_procedure_id\": 67890,
    \"notification_id\": 12345,
    \"status\": \"\\\"CA\\\"\",
    \"date\": \"\\\"2024-07-15 10:30:00\\\"\",
    \"digital\": false,
    \"onsite\": true
}"

Listar señalamientos

GET
https://api.sherwood.littlejohn.ai
/api/v2/trial-schedules
requires authentication

Obtiene una lista paginada de todos los señalamientos judiciales de la empresa. Los señalamientos son citas y audiencias programadas en los tribunales.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
notification_id
string

ID hasheado de la notificación para filtrar.

Example:
abc123
status
string

Estado del señalamiento para filtrar (CA/CE/NC/PC/SU).

Example:
CA
date_from
string

Fecha de señalamiento desde (Y-m-d H:i:s).

Example:
2024-01-01 00:00:00
date_to
string

Fecha de señalamiento hasta (Y-m-d H:i:s).

Example:
2024-12-31 23:59:59
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/trial-schedules?page=1&per_page=20&notification_id=abc123&status=CA&date_from=2024-01-01+00%3A00%3A00&date_to=2024-12-31+23%3A59%3A59" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "notification_id": "def456",
                "date": "2024-06-15 10:30:00",
                "digital": false,
                "onsite": true,
                "status": "PENDING",
                "onsite_desc": "Sala 3, Planta 2",
                "digital_desc": null,
                "digital_desc_url": null,
                "subtype_id": 5,
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 15,
        "per_page": 20
    }
}

Obtener señalamiento específico

GET
https://api.sherwood.littlejohn.ai
/api/v2/trial-schedules/{hashId}
requires authentication

Obtiene los detalles completos de un señalamiento judicial específico.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
voluptatibus
id
string
required

ID hasheado del señalamiento.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/trial-schedules/voluptatibus" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "notification_id": "def456",
        "date": "2024-06-15 10:30:00",
        "digital": false,
        "onsite": true,
        "status": "PENDING",
        "onsite_desc": "Sala 3, Planta 2",
        "digital_desc": null,
        "digital_desc_url": null,
        "subtype_id": 5,
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}
{
    "status": "Error",
    "message": "Señalamiento no encontrado"
}

Actualizar señalamiento

PUT
https://api.sherwood.littlejohn.ai
/api/v2/trial-schedules/{hashId}
requires authentication

Actualiza los datos de un señalamiento judicial existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
hic
id
string
required

ID hasheado del señalamiento.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/trial-schedules/hic" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"case_id\": 12,
    \"case_procedure_id\": 10,
    \"status\": \"CONFIRMED\",
    \"date\": \"2024-06-15 10:30:00\",
    \"all_day\": true,
    \"subtype_id\": 1,
    \"onsite\": true,
    \"digital\": false,
    \"same_entity\": false,
    \"court_entity_id\": 16,
    \"digital_desc\": \"Teams\",
    \"digital_desc_url\": \"https:\\/\\/teams.microsoft.com\\/...\",
    \"onsite_desc\": \"Sala 3, Planta 2\",
    \"event_desc\": \"lqdsxsjhtlafv\",
    \"additional_instructions\": \"oclq\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Señalamiento actualizado correctamente",
    "data": {
        "id": "abc123",
        "date": "2024-06-15 10:30:00",
        "status": "CONFIRMED"
    }
}

Eliminar señalamiento

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/trial-schedules/{hashId}
requires authentication

Elimina un señalamiento judicial del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
praesentium
id
string
required

ID hasheado del señalamiento.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/trial-schedules/praesentium" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Señalamiento eliminado correctamente"
}
{
    "status": "Error",
    "message": "Señalamiento no encontrado"
}

Vencimientos


Crear nuevo vencimiento

POST
https://api.sherwood.littlejohn.ai
/api/v2/deadlines
requires authentication

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/deadlines" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"notification_id\": 12345,
    \"appeal_type_id\": 1,
    \"days\": 30,
    \"concept\": \"\\\"Presentar recurso de apelación\\\"\",
    \"date_expiration\": \"\\\"2024-07-15 23:59:59\\\"\",
    \"affect_from\": true,
    \"affect_to\": false
}"

Listar vencimientos

GET
https://api.sherwood.littlejohn.ai
/api/v2/deadlines
requires authentication

Obtiene una lista paginada de todos los vencimientos y plazos procesales de la empresa. Los vencimientos son fechas límite para realizar acciones legales.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
notification_id
string

ID hasheado de la notificación para filtrar.

Example:
abc123
affect_from
boolean

Filtrar vencimientos que afectan a la parte representada.

Example:
true
affect_to
boolean

Filtrar vencimientos que afectan a la parte contraria.

Example:
false
date_from
string

Fecha de vencimiento desde (Y-m-d).

Example:
2024-01-01
date_to
string

Fecha de vencimiento hasta (Y-m-d).

Example:
2024-12-31
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/deadlines?page=1&per_page=20&notification_id=abc123&affect_from=1&affect_to=&date_from=2024-01-01&date_to=2024-12-31" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "notification_id": "def456",
                "concept": "Recurso de apelación",
                "date_expiration": "2024-06-30",
                "affect_from": true,
                "affect_to": false,
                "appeal_type_id": 1,
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 25,
        "per_page": 20
    }
}

Obtener vencimiento específico

GET
https://api.sherwood.littlejohn.ai
/api/v2/deadlines/{hashId}
requires authentication

Obtiene los detalles completos de un vencimiento procesal específico.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
maxime
id
string
required

ID hasheado del vencimiento.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/deadlines/maxime" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "notification_id": "def456",
        "concept": "Recurso de apelación",
        "date_expiration": "2024-06-30",
        "affect_from": true,
        "affect_to": false,
        "appeal_type_id": 1,
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar vencimiento

PUT
https://api.sherwood.littlejohn.ai
/api/v2/deadlines/{hashId}
requires authentication

Actualiza los datos de un vencimiento procesal existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
accusantium
id
string
required

ID hasheado del vencimiento.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/deadlines/accusantium" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"appeal_type_id\": 1,
    \"days\": 6,
    \"concept\": \"Recurso de apelación\",
    \"title\": \"lqdxswptshuynuiiul\",
    \"affect\": \"to\",
    \"affect_from\": true,
    \"affect_to\": false,
    \"quantity\": 934095900.046,
    \"iban\": \"fkwwzoewjnnxypsyfpadfqjg\",
    \"instructions\": \"ptqcwmdwafcivpqqaxvlhzrh\",
    \"inc_non_working_days\": false,
    \"base_date_type\": 10,
    \"base_date_from\": \"2025-11-28T22:26:59\",
    \"base_date_concept\": \"xswvnxfokgqljtitccupiwya\",
    \"date_expiration\": \"2024-06-30\",
    \"date_expiration_doc\": \"2025-11-28 22:26:59\",
    \"date_expiration_alert\": 80
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Vencimiento actualizado correctamente"
}

Eliminar vencimiento

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/deadlines/{hashId}
requires authentication

Elimina un vencimiento procesal del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
iste
id
string
required

ID hasheado del vencimiento.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/deadlines/iste" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Vencimiento eliminado correctamente"
}

Cantidades


Crear nueva cantidad

POST
https://api.sherwood.littlejohn.ai
/api/v2/quantities
requires authentication

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/quantities" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"notification_id\": 12345,
    \"quantity\": \"1500.75\",
    \"type\": 1,
    \"prop_costs_principal_undetermined\": false,
    \"concept\": \"\\\"Principal\\\"\"
}"

Listar cantidades

GET
https://api.sherwood.littlejohn.ai
/api/v2/quantities
requires authentication

Obtiene una lista paginada de todas las cantidades económicas asociadas a notificaciones. Las cantidades incluyen importes, costas, y otros valores monetarios del procedimiento.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
notification_id
string

ID hasheado de la notificación para filtrar.

Example:
abc123
type
integer

Filtrar por tipo de cantidad.

Example:
1
amount_from
string

decimal Cantidad mínima para filtrar.

Example:
100.00
amount_to
string

decimal Cantidad máxima para filtrar.

Example:
10000.00
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/quantities?page=1&per_page=20&notification_id=abc123&type=1&amount_from=100.00&amount_to=10000.00" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "notification_id": "def456",
                "concept": "Principal",
                "amount": "5000.00",
                "type": 1,
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 15,
        "per_page": 20
    }
}

Obtener cantidad específica

GET
https://api.sherwood.littlejohn.ai
/api/v2/quantities/{id}
requires authentication

Obtiene los detalles completos de una cantidad económica específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cantidad.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/quantities/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "notification_id": "def456",
        "concept": "Principal",
        "amount": "5000.00",
        "type": 1,
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar cantidad

PUT
https://api.sherwood.littlejohn.ai
/api/v2/quantities/{id}
requires authentication

Actualiza los datos de una cantidad económica existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cantidad.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/quantities/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"quantity\": 0.78,
    \"type\": 1,
    \"prop_costs_principal_undetermined\": false,
    \"concept\": \"Principal\",
    \"iban\": \"qt\",
    \"instructions\": \"kajqzl\",
    \"amount\": \"5000.00\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Cantidad actualizada correctamente"
}

Eliminar cantidad

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/quantities/{id}
requires authentication

Elimina una cantidad económica del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cantidad.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/quantities/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Cantidad eliminada correctamente"
}

Cuentas


Crear nueva cuenta

POST
https://api.sherwood.littlejohn.ai
/api/v2/accounts
requires authentication

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/accounts" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"notification_id\": 12345,
    \"iban\": \"\\\"ES1234567890123456789012\\\"\",
    \"purpose\": \"\\\"Depósito para garantía\\\"\",
    \"instructions\": \"\\\"Transferir antes del 15 de marzo\\\"\"
}"

Listar cuentas

GET
https://api.sherwood.littlejohn.ai
/api/v2/accounts
requires authentication

Obtiene una lista paginada de todas las cuentas bancarias asociadas a notificaciones. Las cuentas incluyen información sobre embargos, consignaciones y datos bancarios.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
notification_id
string

ID hasheado de la notificación para filtrar.

Example:
abc123
bank_name
string

Filtrar por nombre del banco.

Example:
Santander
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/accounts?page=1&per_page=20&notification_id=abc123&bank_name=Santander" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "notification_id": "def456",
                "account_number": "ES9021000418401234567891",
                "bank_name": "Banco Santander",
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 10,
        "per_page": 20
    }
}

Obtener cuenta específica

GET
https://api.sherwood.littlejohn.ai
/api/v2/accounts/{id}
requires authentication

Obtiene los detalles completos de una cuenta bancaria específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cuenta.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/accounts/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "notification_id": "def456",
        "account_number": "ES9021000418401234567891",
        "bank_name": "Banco Santander",
        "purpose": "Depósito para garantía",
        "instructions": "Transferir antes del 15 de marzo",
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar cuenta

PUT
https://api.sherwood.littlejohn.ai
/api/v2/accounts/{id}
requires authentication

Actualiza los datos de una cuenta bancaria existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cuenta.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/accounts/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"account_number\": \"ES9021000418401234567891\",
    \"bank_name\": \"Banco Santander\",
    \"purpose\": \"Depósito para garantía\",
    \"instructions\": \"Transferir antes del 15 de marzo\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Cuenta actualizada correctamente"
}

Eliminar cuenta

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/accounts/{id}
requires authentication

Elimina una cuenta bancaria del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la cuenta.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/accounts/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Cuenta eliminada correctamente"
}

Contactos

POST
https://api.sherwood.littlejohn.ai
/api/v2/contacts/search
requires authentication

Realiza una búsqueda avanzada de contactos con todos los filtros disponibles en la interfaz.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/contacts/search" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"client_id\": \"eum\",
    \"query\": \"qui\",
    \"name\": \"en\",
    \"contact_type\": [
        \"enim\"
    ],
    \"contact_role\": [
        \"laborum\"
    ],
    \"contact_name\": \"optio\",
    \"contact_email\": \"marlee.brakus@example.net\",
    \"contact_phone\": \"error\",
    \"contact_nif\": \"qui\",
    \"labels\": [
        \"nemo\"
    ],
    \"actora\": [
        \"ipsa\"
    ],
    \"contraria\": [
        \"quaerat\"
    ],
    \"nullParty\": [
        \"voluptas\"
    ],
    \"case_type\": [
        \"sed\"
    ],
    \"jurisdiction\": [
        \"exercitationem\"
    ],
    \"procedure_type\": [
        \"est\"
    ],
    \"caseStateParent\": [
        \"reprehenderit\"
    ],
    \"caseState\": [
        \"sit\"
    ],
    \"filter_last_status_range\": \"consequuntur\",
    \"filter_company\": [
        \"temporibus\"
    ],
    \"filter_company_role\": [
        \"recusandae\"
    ],
    \"filter_date_notification_range\": \"optio\",
    \"filter_expiration_date_range\": \"neque\",
    \"filter_trial_date_range\": \"in\",
    \"court_provinces\": [
        \"facilis\"
    ],
    \"court_entity_id\": \"sed\",
    \"users_assigned\": [
        \"quo\"
    ],
    \"filter_assignment_range\": \"ex\",
    \"archived\": \"deserunt\",
    \"sort\": \"doloribus\",
    \"sort_direction\": \"quia\",
    \"offset\": 14,
    \"limit\": 6,
    \"page\": 1
}"
Respuesta de ejemplo:

Listar contactos

GET
https://api.sherwood.littlejohn.ai
/api/v2/crm
requires authentication

Obtiene una lista paginada de contactos con filtros básicos

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

search
string

optional Búsqueda por nombre, email o NIF

Example:
velit
type
string

optional Tipo de contacto (PERSONA_FISICA, PERSONA_JURIDICA, ADMINISTRACION, OTROS)

Example:
suscipit
limit
integer

optional Límite de resultados (default: 50, max: 200)

Example:
1
offset
integer

optional Desplazamiento para paginación

Example:
2
page
integer

optional Número de página (alternativa a offset)

Example:
5

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/crm?search=velit&type=suscipit&limit=1&offset=2&page=5" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"search\": \"qflyabvcjcho\",
    \"type\": \"PERSONA_FISICA\",
    \"limit\": 1,
    \"offset\": 37,
    \"page\": 52
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "data": [
            {
                "id": "hash_id",
                "type": "PERSONA_FISICA",
                "name": "Juan",
                "last_name": "Pérez",
                "full_name": "Juan Pérez",
                "business_name": null,
                "nif": "12345678A",
                "email": "juan@example.com",
                "phone": "600123456",
                "phone2": null,
                "address": "Calle Principal 123",
                "city": "Madrid",
                "postal_code": "28001",
                "created_at": "2024-01-15 10:30:00",
                "archived": false
            }
        ],
        "total": 150,
        "offset": 0,
        "limit": 50
    }
}

Mostrar contacto

GET
https://api.sherwood.littlejohn.ai
/api/v2/crm/{id}
requires authentication

Obtiene los datos completos de un contacto específico

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID del contacto (hash).

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/crm/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "hash_id",
        "type": "PERSONA_FISICA",
        "name": "Juan",
        "last_name": "Pérez",
        "full_name": "Juan Pérez",
        "business_name": null,
        "nif": "12345678A",
        "email": "juan@example.com",
        "phone": "600123456",
        "phone2": null,
        "address": "Calle Principal 123",
        "city": "Madrid",
        "postal_code": "28001",
        "province": "Madrid",
        "notes": "Notas adicionales del contacto",
        "roles": [
            "ABOGADO",
            "PROCURADOR"
        ],
        "labels": [
            "VIP",
            "Cliente habitual"
        ],
        "cases_as_actora": 5,
        "cases_as_contraria": 2,
        "cases_as_other": 1,
        "total_cases": 8,
        "created_at": "2024-01-15 10:30:00",
        "updated_at": "2024-01-20 14:15:00",
        "archived": false
    }
}
{
    "status": "Error",
    "message": "Contacto no encontrado"
}

Crear contacto

POST
https://api.sherwood.littlejohn.ai
/api/v2/crm
requires authentication

Crea un nuevo contacto con los datos proporcionados

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/crm" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"type\": \"PERSONA_FISICA\",
    \"name\": \"Juan\",
    \"last_name\": \"Pérez García\",
    \"business_name\": \"Empresa SL\",
    \"nif\": \"12345678A\",
    \"email\": \"juan@example.com\",
    \"phone\": \"600123456\",
    \"phone2\": \"911234567\",
    \"address\": \"Calle Principal 123\",
    \"city\": \"Madrid\",
    \"postal_code\": \"28001\",
    \"province\": \"Madrid\",
    \"notes\": \"Cliente VIP\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Contacto creado correctamente",
    "data": {
        "id": "hash_id",
        "type": "PERSONA_FISICA",
        "name": "Juan",
        "full_name": "Juan Pérez García"
    }
}
{
    "errors": {
        "type": [
            "El campo tipo es obligatorio."
        ],
        "name": [
            "El campo nombre es obligatorio para personas físicas."
        ]
    }
}

Actualizar contacto

PUT
https://api.sherwood.littlejohn.ai
/api/v2/crm/{id}
requires authentication

Actualiza los datos de un contacto existente

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID del contacto (hash).

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/crm/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"type\": \"PERSONA_FISICA\",
    \"name\": \"Juan\",
    \"last_name\": \"Pérez García\",
    \"business_name\": \"Empresa SL\",
    \"nif\": \"12345678A\",
    \"email\": \"juan@example.com\",
    \"phone\": \"600123456\",
    \"phone2\": \"911234567\",
    \"address\": \"Calle Principal 123\",
    \"city\": \"Madrid\",
    \"postal_code\": \"28001\",
    \"province\": \"Madrid\",
    \"notes\": \"Cliente VIP\",
    \"archived\": false
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Contacto actualizado correctamente",
    "data": {
        "id": "hash_id",
        "type": "PERSONA_FISICA",
        "name": "Juan",
        "full_name": "Juan Pérez García"
    }
}
{
    "status": "Error",
    "message": "Contacto no encontrado"
}
{
    "errors": {
        "email": [
            "El formato del email no es válido."
        ]
    }
}

Eliminar contacto

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/crm/{id}
requires authentication

Elimina permanentemente un contacto del sistema

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID del contacto (hash).

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/crm/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Contacto eliminado correctamente"
}
{
    "status": "Error",
    "message": "Contacto no encontrado"
}
{
    "status": "Error",
    "message": "No se puede eliminar el contacto porque está vinculado a expedientes activos"
}

Escritos

Crear o actualizar Escrito

POST
https://api.sherwood.littlejohn.ai
/api/v2/submissions
requires authentication

Crea un nuevo escrito judicial o actualiza uno existente según se proporcione hash_id. El parámetro platform, tipo de escrito y ordenamiento juridico determina qué campos son requeridos en extra_data.

IMPORTANTE: Para subir un archivo adjunto a un escrito se debe hacer desde el endpoint api/v2/files/upload. Por lo que primero se crea el escrito, luego se suben los documentos, al subir el documento este se asocia al escrito creado previamente.

COMPORTAMIENTO:

  • Sin 'id': Crea un nuevo escrito
  • Con 'id': Actualiza un escrito existente (solo si status=CREATED o ERROR y can_edit=true)

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/submissions" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"id\": \"abc123\",
    \"client_id\": \"xyz789\",
    \"platform\": \"LEXNET\",
    \"case_id\": \"def456\",
    \"type\": \"TRAMITE\",
    \"sub_type_id\": \"ghi789\",
    \"summarization_title\": \"Escrito de alegaciones previas\",
    \"summarization\": \"Escrito en el que se presentan alegaciones previas al juicio\\n\\n=== DESTINATARIO ===\",
    \"addressed_entity_id\": 12345,
    \"addressed_jurisdiction\": \"CIVIL\",
    \"prosecutor_inform\": true,
    \"principal_signatory\": \"jkl012\",
    \"principal_is_generic\": false,
    \"secondary_signatory\": \"mno345\",
    \"secondary_is_generic\": true,
    \"case_procedure_id\": \"pqr678\",
    \"procedure_jurisdiction\": \"CIVIL\",
    \"procedure_entity_id\": 12345,
    \"procedure_number\": \"123\\/2024\",
    \"nig\": \"28.079.00.2-2024\\/0505683\",
    \"procedure_type_id\": 5,
    \"source_procedure_id\": \"stu901\",
    \"procedure_source_entity_id\": 12345,
    \"procedure_source_number\": \"456\\/2023\",
    \"procedure_source_nig\": \"28.079.00.2-2023\\/0123456\",
    \"procedure_source_type_id\": 3,
    \"notification_id\": 789,
    \"notification_type\": \"SENTENCIA\",
    \"notification_date\": \"2024-01-15\",
    \"notification_number\": \"NOT-2024-001\",
    \"notification_bis\": true,
    \"parties\": [
        {
            \"crm_id\": \"abc123\",
            \"type\": \"DEMANDANTE\"
        }
    ],
    \"copies\": [
        {
            \"crm_id\": \"xyz789\",
            \"type\": \"NOTIFICACION\"
        }
    ],
    \"extra_data\": {
        \"asunto\": \"Presentación de demanda\",
        \"observaciones\": \"Se adjunta documentación\",
        \"urgente\": false,
        \"materia\": \"10\",
        \"clase_registro\": \"100\",
        \"organismo\": \"Ministerio de Hacienda\",
        \"fecha_acuerdo\": \"2024-01-10\",
        \"objeto_recurso\": \"Recurso contra resolución administrativa\",
        \"cuantias\": {
            \"quantity\": 10000,
            \"undetermined\": false
        },
        \"extraexpediente_numero\": \"EXP-2024-001\",
        \"extraexpediente_anyos\": \"2024\\n\\n--- extra_data: LEXNET + PENAL + INICIADOR ---\",
        \"fecha_delito\": \"2023-12-15\",
        \"localidad_delito\": \"Madrid\\n\\n--- extra_data: LEXNET + (CIVIL o SOCIAL) ---\",
        \"articulo_88_2_a\": true,
        \"articulo_88_2_b\": false,
        \"articulo_88_2_c\": false,
        \"articulo_88_2_d\": false,
        \"articulo_88_2_e\": false,
        \"articulo_88_2_f\": false,
        \"articulo_88_2_g\": false,
        \"articulo_88_2_h\": false,
        \"articulo_88_2_i\": false,
        \"articulo_88_3_a\": true,
        \"articulo_88_3_b\": false,
        \"articulo_88_3_c\": false,
        \"articulo_88_3_d\": false,
        \"articulo_88_3_e\": true,
        \"es_preso\": false,
        \"es_detenido\": true,
        \"cautelarisima\": true,
        \"especialitat_escrit\": 1,
        \"materia_repartiment\": 10,
        \"classe_procediment\": 5,
        \"unitat_registre\": 3
    }
}"
Respuesta de ejemplo:
{"status": "Success", "message": "Escrito actualizado correctamente", "data": {...}}
{"status": "Success", "message": "Escrito creado correctamente", "data": {...}}
{
    "status": "Error",
    "message": "Datos de entrada inválidos"
}
{
    "status": "Error",
    "message": "No autorizado (no editable o sin permisos)"
}
{"status": "Error", "message": "Errores de validación", "validation_errors": [...]}

Listar escritos

GET
https://api.sherwood.littlejohn.ai
/api/v2/submissions
requires authentication

Obtiene una lista paginada de todos los escritos de la empresa con filtros.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
case_id
string

ID hasheado del expediente para filtrar.

Example:
abc123
status
string

Filtrar por estado (CREATED, WAITING, PRESENTED, ACCEPTED, REJECTED, DELIVERED, ERROR).

Example:
CREATED
type
string

Filtrar por tipo de escrito (INICIADOR, TRAMITE).

Example:
TRAMITE
platform
string

Filtrar por plataforma (LEXNET, EJUSTICIA).

Example:
LEXNET
sub_type_id
integer

Filtrar por subtipo de escrito.

Example:
123
created_from
string

Fecha de inicio para filtrar por fecha de creación (Y-m-d).

Example:
2024-01-01
created_to
string

Fecha de fin para filtrar por fecha de creación (Y-m-d).

Example:
2024-12-31
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/submissions?page=1&per_page=20&case_id=abc123&status=CREATED&type=TRAMITE&platform=LEXNET&sub_type_id=123&created_from=2024-01-01&created_to=2024-12-31" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
Headers
cache-control: no-cache, private
location: https://api.sherwood.littlejohn.ai/auth/login
content-type: text/html; charset=utf-8
access-control-allow-origin: *
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://api.sherwood.littlejohn.ai/auth/login'" />

        <title>Redirecting to https://api.sherwood.littlejohn.ai/auth/login</title>
    </head>
    <body>
        Redirecting to <a href="https://api.sherwood.littlejohn.ai/auth/login">https://api.sherwood.littlejohn.ai/auth/login</a>.
    </body>
</html>

Obtener estado del escrito

GET
https://api.sherwood.littlejohn.ai
/api/v2/submissions/{hashId}/status
requires authentication

Endpoint ligero para consultar únicamente el estado actual de un escrito, ideal para polling desde aplicaciones externas o móviles.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required

ID hasheado del escrito.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/submissions/abc123/status" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Estado del escrito obtenido correctamente",
    "data": {
        "id": "abc123",
        "status": "WAITING",
        "status_label": "Presentación en curso...",
        "last_status": "PENDIENTE",
        "last_status_label": "Pendiente"
    }
}
{
    "status": "Error",
    "message": "Escrito no encontrado o no tiene permisos para acceder"
}

Obtener escrito específico

GET
https://api.sherwood.littlejohn.ai
/api/v2/submissions/{hashId}
requires authentication

Obtiene los detalles completos de un escrito específico con todas sus relaciones.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required

ID hasheado del escrito.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/submissions/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
Headers
cache-control: no-cache, private
location: https://api.sherwood.littlejohn.ai/auth/login
content-type: text/html; charset=utf-8
access-control-allow-origin: *
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://api.sherwood.littlejohn.ai/auth/login'" />

        <title>Redirecting to https://api.sherwood.littlejohn.ai/auth/login</title>
    </head>
    <body>
        Redirecting to <a href="https://api.sherwood.littlejohn.ai/auth/login">https://api.sherwood.littlejohn.ai/auth/login</a>.
    </body>
</html>

Validar escrito para aprobación

POST
https://api.sherwood.littlejohn.ai
/api/v2/submissions/{hashId}/validate
requires authentication

Valida un escrito sin aprobarlo ni enviarlo. Útil para mostrar errores antes de aprobar. Ejecuta las mismas validaciones que el proceso de aprobación, incluyendo validación de archivos obligatorios y archivo principal.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required

ID hasheado del escrito.

Example:
abc123
Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/submissions/abc123/validate" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"

Aprobar y enviar escrito

POST
https://api.sherwood.littlejohn.ai
/api/v2/submissions/{hashId}/approve
requires authentication

Aprueba un escrito y opcionalmente lo envía a la plataforma judicial (Bridge). Ejecuta validación completa antes de aprobar.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required

ID hasheado del escrito.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/submissions/abc123/approve" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"signature\": true,
    \"send_to_platform\": true
}"

Expedientes

Expedientes


POST
https://api.sherwood.littlejohn.ai
/api/v2/case/search
requires authentication

Extrae los identificadores de expedientes a partir del NIG.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
laboriosam
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Debe contener el ID de la compañía (hash)

Example:
35181546d...4603427e23
nig
string

NIG del expediente a buscar.

Example:
300304...0000844

Parámetros del cuerpo

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/search?client_id=35181546d...4603427e23&nig=300304...0000844" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: laboriosam" \
    --header "Content-Type: application/json" \
    --data "{
    \"nig\": \"tempore\"
}"
Respuesta de ejemplo:

Obtener expediente

POST
https://api.sherwood.littlejohn.ai
/api/v2/case/get
requires authentication

Extrae toda la información de un expediente específico usando su ID.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
perferendis
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Debe contener el ID de la compañía (hash)

Example:
35181546d...4603427e23
case_id
string

ID del expediente a obtener (hash).

Example:
65d52ed35...10468470e

Parámetros del cuerpo

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/get?client_id=35181546d...4603427e23&case_id=65d52ed35...10468470e" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: perferendis" \
    --header "Content-Type: application/json" \
    --data "{
    \"case_id\": \"inventore\"
}"
Respuesta de ejemplo:
{"status": "Success", "data": {...}}
{
    "status": "Error",
    "error": "Unauthorized"
}
{
    "status": "Error",
    "error": "Expediente no encontrado"
}

Actualizar datos externos de expediente

POST
https://api.sherwood.littlejohn.ai
/api/v2/case/update/external
requires authentication

Actualiza los datos externos (id externo y url externa) de un expediente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
est
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Debe contener el ID de la compañía (hash).

Example:
35181546d...603427e23
case_id
string

Debe contener el ID del expediente a actualizar.

Example:
65d52ed35...10468470e
external_id
string

Debe contener el ID externo a colocar en el expediente.

Example:
ExampleID
external_url
string

Debe contener la URL externa a colocar en el expediente.

Example:
https://www.example.com

Parámetros del cuerpo

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/update/external?client_id=35181546d...603427e23&case_id=65d52ed35...10468470e&external_id=ExampleID&external_url=https%3A%2F%2Fwww.example.com" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: est" \
    --header "Content-Type: application/json" \
    --data "{
    \"case_id\": \"ut\",
    \"external_id\": \"voluptas\",
    \"external_url\": \"dolorem\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Expediente actualizado"
}
{
    "status": "Error",
    "error": "Unauthorized"
}

Actualizar datos de expediente

POST
https://api.sherwood.littlejohn.ai
/api/v2/case/update
requires authentication

Actualiza los datos externos (ID externo, URL externa, estado o tipo) de un expediente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
string La firma HMAC del cuerpo de la petición.
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Requerido. ID de la compañía (hash).

Example:
35181546d...603427e23
case_id
string

Requerido. ID del expediente a actualizar (hash).

Example:
65d52ed35...10468470e

Parámetros del cuerpo

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/update?client_id=35181546d...603427e23&case_id=65d52ed35...10468470e" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: string La firma HMAC del cuerpo de la petición." \
    --header "Content-Type: application/json" \
    --data "{
    \"external_id\": \"EXT-123456\",
    \"external_url\": \"https:\\/\\/www.example.com\",
    \"status_id\": \"3adf6e...abc127\",
    \"type_id\": \"6f8a3b...de0142\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Expediente actualizado"
}
{
    "status": "Error",
    "error": "Unauthorized"
}
{
    "status": "Error",
    "error": "El ID del expediente no es válido"
}

Obtener estados de expedientes

POST
https://api.sherwood.littlejohn.ai
/api/v2/case/getStatuses
requires authentication

Devuelve los estados configurados para los expedientes de la compañía autenticada.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
string Requerido. Firma HMAC del cuerpo de la solicitud.
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Requerido. ID de la compañía (hash).

Example:
35181546d...603427e23

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/getStatuses?client_id=35181546d...603427e23" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: string Requerido. Firma HMAC del cuerpo de la solicitud." \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": [
        {
            "id": "3a5f9d...a124f",
            "name": "En revisión",
            "fase": "Inicial"
        },
        {
            "id": "9b3f7c...d931b",
            "name": "Aprobado",
            "fase": "Final"
        }
    ]
}
{
    "status": "Error",
    "error": "Compañía no válida"
}

Obtener tipos de expedientes

POST
https://api.sherwood.littlejohn.ai
/api/v2/case/getTypes
requires authentication

Devuelve los tipos de expediente configurados para la compañía autenticada.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Body-Signature
Example:
string Requerido. Firma HMAC del cuerpo de la solicitud.
Content-Type
Example:
application/json

Parámetros de consulta

client_id
string

Requerido. ID de la compañía (hash).

Example:
35181546d...603427e23

Campos de respuesta

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/case/getTypes?client_id=35181546d...603427e23" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Body-Signature: string Requerido. Firma HMAC del cuerpo de la solicitud." \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": [
        {
            "id": "6f8a3b...de0142",
            "name": "Legal"
        },
        {
            "id": "3cfa1b...c812f3",
            "name": "Comercial"
        }
    ]
}
{
    "status": "Error",
    "message": "Compañía no válida"
}
POST
https://api.sherwood.littlejohn.ai
/api/v2/cases/search
requires authentication

Realiza una búsqueda avanzada de expedientes con todos los filtros disponibles en la interfaz.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/cases/search" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"query\": \"iste\",
    \"actora\": [
        \"dolor\"
    ],
    \"contraria\": [
        \"occaecati\"
    ],
    \"nullParty\": [
        \"provident\"
    ],
    \"case_type\": [
        \"voluptas\"
    ],
    \"jurisdiction\": [
        \"vel\"
    ],
    \"procedure_type\": [
        \"recusandae\"
    ],
    \"caseStateParent\": [
        \"ab\"
    ],
    \"caseState\": [
        \"eum\"
    ],
    \"filter_last_status_range\": \"odio\",
    \"filter_company\": [
        \"rerum\"
    ],
    \"filter_company_role\": [
        \"est\"
    ],
    \"filter_date_notification_range\": \"rerum\",
    \"filter_expiration_date_range\": \"libero\",
    \"filter_trial_date_range\": \"unde\",
    \"pending_tasks\": \"ad\",
    \"task_linked_to\": [
        \"quasi\"
    ],
    \"court_provinces\": [
        \"praesentium\"
    ],
    \"court_entity_id\": \"veritatis\",
    \"labels\": [
        \"quo\"
    ],
    \"users_assigned\": [
        \"sunt\"
    ],
    \"filter_assignment_range\": \"accusantium\",
    \"archived\": \"deserunt\",
    \"sort\": \"fuga\",
    \"sort_direction\": \"est\",
    \"offset\": 20,
    \"limit\": 6,
    \"page\": 19
}"
Respuesta de ejemplo:

Procedimientos


Listar procedimientos de expediente

GET
https://api.sherwood.littlejohn.ai
/api/v2/case-procedures
requires authentication

Obtiene una lista paginada de todos los procedimientos asociados a expedientes de la empresa. Los procedimientos contienen información judicial como NIG, número de procedimiento y tribunal.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
case_id
string

ID hasheado del expediente para filtrar.

Example:
abc123
nig
string

Filtrar por NIG.

Example:
28.079.00.2-2024/0505683
procedure_number
string

Filtrar por número de procedimiento.

Example:
123/2024
court_entity_id
integer

Filtrar por ID de entidad judicial.

Example:
1
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/case-procedures?page=1&per_page=20&case_id=abc123&nig=28.079.00.2-2024%2F0505683&procedure_number=123%2F2024&court_entity_id=1" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "case_id": "def456",
                "nig": "28.079.00.2-2024/0505683",
                "procedure_number": "123/2024",
                "court_entity_id": 1,
                "procedure_entity_id": 1,
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 35,
        "per_page": 20
    }
}

Obtener procedimiento específico

GET
https://api.sherwood.littlejohn.ai
/api/v2/case-procedures/{hashId}
requires authentication

Obtiene los detalles completos de un procedimiento judicial específico.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000004
id
string
required

ID hasheado del procedimiento.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/case-procedures/10000004" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "case_id": "def456",
        "nig": "28.079.00.2-2024/0505683",
        "procedure_number": "123/2024",
        "court_entity_id": 1,
        "procedure_entity_id": 1,
        "costs_payer": "FROM",
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar procedimiento

PUT
https://api.sherwood.littlejohn.ai
/api/v2/case-procedures/{hashId}
requires authentication

Actualiza los datos de un procedimiento judicial existente.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000004
id
string
required

ID hasheado del procedimiento.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/case-procedures/10000004" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"nig\": \"28.079.00.2-2024\\/0505683\",
    \"procedure_number\": \"123\\/2024\",
    \"court_entity_id\": 1,
    \"procedure_entity_id\": 1,
    \"costs_payer\": \"FROM\"
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Procedimiento actualizado correctamente"
}

Eliminar procedimiento

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/case-procedures/{hashId}
requires authentication

Elimina un procedimiento judicial del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
integer
required
Example:
10000004
id
string
required

ID hasheado del procedimiento.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/case-procedures/10000004" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Procedimiento eliminado correctamente"
}

Historial

Listar

GET
https://api.sherwood.littlejohn.ai
/api/v2/activity
requires authentication

Obtiene una lista paginada de entradas del historial de actividad del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
action_type
string

Filtrar por tipo de acción (NOTIFICACION, EXPEDIENTE, TAREA, etc.).

Example:
NOTIFICACION
date_from
string

Filtrar desde fecha (YYYY-MM-DD).

Example:
2024-01-01
date_to
string

Filtrar hasta fecha (YYYY-MM-DD).

Example:
2024-12-31
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/activity?page=1&per_page=20&action_type=NOTIFICACION&date_from=2024-01-01&date_to=2024-12-31" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "hist123",
                "action": "Notificación procesada",
                "action_type": "NOTIFICACION",
                "user": "Juan Pérez",
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 500,
        "per_page": 20
    }
}

Mostrar

GET
https://api.sherwood.littlejohn.ai
/api/v2/activity/{id}
requires authentication

Obtiene los detalles completos de una entrada específica del historial.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la entrada de historial.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/activity/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "hist123",
        "action": "Notificación procesada",
        "action_type": "NOTIFICACION",
        "user": "Juan Pérez",
        "json_data": "{\"notification_id\": 123}",
        "created_at": "2024-01-15T10:30:00.000000Z"
    }
}
POST
https://api.sherwood.littlejohn.ai
/api/v2/activity/search
requires authentication

Realiza una búsqueda avanzada en el historial de actividades con todos los filtros disponibles.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/activity/search" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"query\": \"quasi\",
    \"group\": [
        \"voluptates\"
    ],
    \"group_type\": [
        \"fuga\"
    ],
    \"action_id\": [
        \"a\"
    ],
    \"filter_simple_range\": \"inventore\",
    \"filter_activity_date_range\": \"tenetur\",
    \"by_user\": [
        \"sed\"
    ],
    \"is_automated\": \"voluptatum\",
    \"actora\": [
        \"quia\"
    ],
    \"contraria\": [
        \"quae\"
    ],
    \"nullParty\": [
        \"ut\"
    ],
    \"case_type\": [
        \"qui\"
    ],
    \"jurisdiction\": [
        \"non\"
    ],
    \"procedure_type\": [
        \"rerum\"
    ],
    \"caseStateParent\": [
        \"est\"
    ],
    \"caseState\": [
        \"minima\"
    ],
    \"filter_last_status_range\": \"fugiat\",
    \"filter_company\": [
        \"illum\"
    ],
    \"filter_company_role\": [
        \"at\"
    ],
    \"court_provinces\": [
        \"velit\"
    ],
    \"court_entity_id\": \"id\",
    \"sort\": \"pariatur\",
    \"sort_direction\": \"omnis\",
    \"offset\": 9,
    \"limit\": 5,
    \"page\": 7
}"
Respuesta de ejemplo:

Operaciones

Status de la API

GET
https://api.sherwood.littlejohn.ai
/api/v2/status

Confirma el estado de la API. Útil para verificar que el sistema está funcionando correctamente.

Encabezados

Content-Type
Example:
application/json
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/status" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "200",
    "response": "ok"
}

Asignaciones


Crear asignación

POST
https://api.sherwood.littlejohn.ai
/api/v2/assigns
requires authentication

Crea una nueva asignación en el sistema vinculando usuarios con elementos específicos. Soporta asignaciones individuales (scope_id) o masivas (scope_ids). El cascade automático a deadlines y señalamientos depende de la configuración de la empresa.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/assigns" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"scope\": \"\\\"NOTIFICATION\\\"\",
    \"scope_id\": 12345,
    \"scope_ids\": [
        12345,
        67890
    ],
    \"message\": \"\\\"Revisar urgentemente\\\"\",
    \"moonback_data\": \"\\\"{\\\\\\\"priority\\\\\\\": \\\\\\\"high\\\\\\\"}\\\"\",
    \"current\": true,
    \"user_ids\": null
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Asignaciones creadas correctamente",
    "data": {
        "items_assigned": 2,
        "users_assigned": 2,
        "cascade_active": true,
        "assignments": [
            {
                "id": "assign123",
                "scope": "NOTIFICATION",
                "scope_id": "notif456"
            }
        ]
    }
}

Listar asignaciones

GET
https://api.sherwood.littlejohn.ai
/api/v2/assigns
requires authentication

Obtiene una lista paginada de asignaciones del sistema. Las asignaciones vinculan usuarios con expedientes, notificaciones, tareas, etc.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
scope
string

Filtrar por ámbito (CASE, NOTIFICATION, TASK, etc.).

Example:
NOTIFICATION
scope_id
string

ID hasheado del elemento asignado.

Example:
abc123
current
boolean

Filtrar asignaciones actuales.

Example:
true
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/assigns?page=1&per_page=20&scope=NOTIFICATION&scope_id=abc123&current=1" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "abc123",
                "scope": "NOTIFICATION",
                "scope_id": "def456",
                "current": true,
                "users": [
                    {
                        "id": "user123",
                        "name": "Juan Pérez",
                        "email": "juan@example.com"
                    }
                ],
                "created_at": "2024-01-15T10:30:00.000000Z"
            }
        ],
        "total": 120,
        "per_page": 20
    }
}

Mostrar asignación específica

GET
https://api.sherwood.littlejohn.ai
/api/v2/assigns/{id}
requires authentication

Obtiene los detalles completos de una asignación específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la asignación.

Example:
abc123
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/assigns/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "abc123",
        "scope": "NOTIFICATION",
        "scope_id": "def456",
        "current": true,
        "message": "Asignación automática",
        "users": [
            {
                "id": "user123",
                "name": "Juan Pérez",
                "email": "juan@example.com"
            }
        ],
        "created_at": "2024-01-15T10:30:00.000000Z",
        "updated_at": "2024-01-15T10:30:00.000000Z"
    }
}

Actualizar asignación

PUT
https://api.sherwood.littlejohn.ai
/api/v2/assigns/{id}
requires authentication

Actualiza los usuarios asignados a una asignación específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la asignación.

Example:
abc123

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request PUT \
    "https://api.sherwood.littlejohn.ai/api/v2/assigns/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"user_ids\": [
        \"user123\",
        \"user456\"
    ],
    \"current\": true
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Asignación actualizada correctamente",
    "data": {
        "id": "abc123",
        "users_assigned": 2
    }
}

Eliminar asignación

DELETE
https://api.sherwood.littlejohn.ai
/api/v2/assigns/{id}
requires authentication

Elimina una asignación específica del sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
string
required

ID hasheado de la asignación.

Example:
abc123
Solicitud de ejemplo:
curl --request DELETE \
    "https://api.sherwood.littlejohn.ai/api/v2/assigns/abc123" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "message": "Asignación eliminada correctamente"
}

Obtener asignaciones de usuario

POST
https://api.sherwood.littlejohn.ai
/api/v2/assigns/user
requires authentication

Obtiene las asignaciones de un usuario específico con filtros opcionales.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros del cuerpo

Solicitud de ejemplo:
curl --request POST \
    "https://api.sherwood.littlejohn.ai/api/v2/assigns/user" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json" \
    --data "{
    \"user_id\": 0,
    \"scope\": \"NOTIFICATION\",
    \"current\": true
}"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": [
        {
            "id": "assign123",
            "scope": "NOTIFICATION",
            "scope_id": "notif456",
            "current": true,
            "created_at": "2024-01-15T10:30:00.000000Z"
        }
    ]
}

Catálogos


Entidades Judiciales: listar

GET
https://api.sherwood.littlejohn.ai
/api/v2/court-entities
requires authentication

Obtiene una lista paginada de juzgados y entidades judiciales disponibles en el sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
search
string

Buscar por nombre o código.

Example:
Madrid
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/court-entities?page=1&per_page=20&search=Madrid" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "court123",
                "name": "Juzgado de Primera Instancia nº 1 de Madrid",
                "code": "28079001",
                "city": "Madrid",
                "province": "Madrid"
            }
        ],
        "total": 150,
        "per_page": 20
    }
}

Entidad Judicial: mostrar

GET
https://api.sherwood.littlejohn.ai
/api/v2/court-entities/{hashId}
requires authentication

Obtiene los detalles completos de una entidad judicial específica.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
a
id
integer
required

ID de la entidad judicial.

Example:
1
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/court-entities/a" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "court123",
        "name": "Juzgado de Primera Instancia nº 1 de Madrid",
        "code": "28079001",
        "city": "Madrid",
        "province": "Madrid"
    }
}

Tipos de notificación: listar

GET
https://api.sherwood.littlejohn.ai
/api/v2/notification-types
requires authentication

Obtiene una lista paginada de tipos de notificación disponibles en el sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
search
string

Buscar por nombre o grupo.

Example:
Sentencia
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/notification-types?page=1&per_page=20&search=Sentencia" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": "type123",
                "name": "Sentencia",
                "group": "Resoluciones",
                "description": "Resolución judicial que pone fin al proceso"
            }
        ],
        "total": 50,
        "per_page": 20
    }
}

Tipo de notificación: mostrar

GET
https://api.sherwood.littlejohn.ai
/api/v2/notification-types/{hashId}
requires authentication

Obtiene los detalles completos de un tipo de notificación específico.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

hashId
string
required
Example:
aut
id
integer
required

ID del tipo de notificación.

Example:
1
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/notification-types/aut" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": "type123",
        "name": "Sentencia",
        "group": "Resoluciones",
        "description": "Resolución judicial que pone fin al proceso"
    }
}

Tipos de procedimiento: listar

GET
https://api.sherwood.littlejohn.ai
/api/v2/procedure-types
requires authentication

Obtiene una lista paginada de tipos de procedimiento disponibles en el sistema.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de consulta

page
integer

Número de página para la paginación.

Example:
1
per_page
integer

Elementos por página (máximo 100).

Example:
20
search
string

Buscar por nombre.

Example:
Ordinario
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/procedure-types?page=1&per_page=20&search=Ordinario" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "current_page": 1,
        "data": [
            {
                "id": 1,
                "name": "Procedimiento Ordinario",
                "code": "ORDI",
                "jurisdiction": "CIVIL"
            }
        ],
        "total": 30,
        "per_page": 20
    }
}

Tipos de procedimiento: mostrar

GET
https://api.sherwood.littlejohn.ai
/api/v2/procedure-types/{id}
requires authentication

Obtiene los detalles completos de un tipo de procedimiento específico.

Encabezados

Authorization
Example:
Bearer ACCESS_TOKEN
Content-Type
Example:
application/json

Parámetros de URL

id
integer
required

ID del tipo de procedimiento.

Example:
1
Solicitud de ejemplo:
curl --request GET \
    --get "https://api.sherwood.littlejohn.ai/api/v2/procedure-types/1" \
    --header "Authorization: Bearer ACCESS_TOKEN" \
    --header "Content-Type: application/json"
Respuesta de ejemplo:
{
    "status": "Success",
    "data": {
        "id": 1,
        "name": "Procedimiento Ordinario",
        "code": "ORDI",
        "jurisdiction": "CIVIL"
    }
}