Referencia de la API
En esta página encontrarás la referencia técnica de los endpoints de el dashboard integrado. Está publicada para que puedas evaluar el alcance de la integración antes de implementarla.
Estos endpoints solo responden a claves de integrador emitidas por Lawwwing tras el proceso de onboarding. Solicita acceso para obtener las tuyas.
URL base
| Entorno | URL base |
|---|---|
| Producción | https://api.lawwwing.com/ |
| Staging | https://api.staging.lawwwing.com/ |
Autenticación
Todas las solicitudes se autentican mediante la cabecera Authorization con tu clave de integrador.
| Cabecera | Valor |
|---|---|
Authorization | Integrator-Key {your_api_key} |
Content-Type | application/json |
La clave de integrador identifica a tu organización y permite crear y cancelar suscripciones. Utilízala exclusivamente desde tu backend y nunca desde el navegador. Si falta o no es válida, la API responde 401 Unauthorized.
Endpoints
Verificar conectividad
GET /api/integrator/ping/
Comprueba que la API es accesible y que tus credenciales son válidas.
Ejemplo
curl -X GET "https://api.lawwwing.com/api/integrator/ping/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"message": "pong"
}
1. Dar de alta una web
POST /api/integrators/sites/
Da de alta el dominio de tu cliente en Lawwwing.
Parámetros
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
url | string (URL) | ✅ | URL de la web a crear |
Ejemplo
curl -X POST "https://api.lawwwing.com/api/integrators/sites/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"url": "client.example.com"
}'
Respuesta
{
"site": "fa514048-ac51-4677-b16d-9e849c5406c5",
"scheme": "https",
"fqdn": "client.example.com",
"subdomain": "client",
"domain": "example",
"suffix": "com",
"registered_domain": "example.com",
"path": ""
}
El campo site es el identificador único de la web (site_id). Guárdalo junto al registro de tu cliente: lo necesitarás en el resto de operaciones.
2. Consultar una web
GET /api/integrators/sites/{site_id}/
Recupera los detalles de una web a partir de su identificador.
Ejemplo
curl -X GET "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"site": "fa514048-ac51-4677-b16d-9e849c5406c5",
"scheme": "https",
"fqdn": "client.example.com",
"subdomain": "client",
"domain": "example",
"suffix": "com",
"registered_domain": "example.com",
"path": ""
}
3. Crear una suscripción
POST /api/integrators/sites/{site_id}/subscription/
Activa el servicio en la web con el plan y los módulos indicados.
Parámetros
| Campo | Tipo | Requerido | Valor por defecto | Descripción |
|---|---|---|---|---|
tier | string | ✅ | Sin valor por defecto | Plan a activar: starter, growth, professional o comfort |
interval | string | ❌ | monthly | Periodicidad de facturación: monthly o annually |
modules | array | ❌ | [] | Módulos adicionales, en formato { "name": string, "quantity": number } |
Planes disponibles (tier)
| Plan | Perfil de cliente |
|---|---|
starter | Webs sencillas con necesidades básicas de cumplimiento. |
growth | Webs corporativas y tiendas online en crecimiento. |
professional | Proyectos exigentes o multiidioma. Incluye todos los idiomas disponibles. |
comfort | Plan gestionado de gama alta. Incluye todos los módulos y una bolsa mensual de créditos de AI Sentinel. |
Puedes consultar el detalle funcional y de precios de cada plan en lawwwing.com/precios.
Módulos disponibles (modules)
Los módulos son capacidades opcionales que se añaden a la suscripción de la web como líneas adicionales. Cada elemento del array requiere dos campos:
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | ✅ | Identificador del módulo, según la tabla siguiente. |
quantity | entero ≥ 1 | ✅ | Número de unidades del módulo a contratar. |
name | Módulo | Qué habilita | Significado de quantity |
|---|---|---|---|
extra_language | Idioma adicional | Añade un idioma más al banner de consentimiento y a los documentos legales, y activa el selector de idioma en el panel. | Número de idiomas adicionales sobre los incluidos en el plan. Por ejemplo, 2 añade dos idiomas. |
accessibility_plugin | Plugin de accesibilidad | Activa el widget de accesibilidad en la web del cliente. | Siempre 1, ya que es un módulo de activación. |
ai_sentinel_module | AI Sentinel | Activa AI Sentinel y añade una bolsa mensual de créditos de análisis. | Número de módulos contratados. Por ejemplo, 2 añade dos paquetes mensuales de créditos. |
- Envía únicamente los módulos que el cliente ha contratado. Si no hay ninguno, omite el campo
moduleso envía[]. - El plan
professionalya incluye todos los idiomas, por lo que no debes añadirextra_language. - El plan
comfortya incluye todos los módulos, por lo que normalmente no necesitas enviarmodules. - Los módulos se facturan con el mismo
intervalque el plan. No es posible combinar un plan anual con módulos mensuales. - Un mismo
namedebe aparecer una sola vez en el array. Para contratar varias unidades, utilizaquantity.
Si envías un name que no está en la tabla, un quantity menor que 1 o un tier o interval no admitidos, la API responde 400 Bad Request indicando el campo afectado.
¿Tienes dudas sobre qué combinación ofrecer a tus clientes? Agenda una llamada con nuestro equipo.
Ejemplo
curl -X POST "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/subscription/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"tier": "growth",
"interval": "monthly",
"modules": [
{"name": "extra_language", "quantity": 2},
{"name": "accessibility_plugin", "quantity": 1}
]
}'
Respuesta
{
"message": "Subscription created"
}
La web no puede tener una suscripción activa para poder crear una nueva.
4. Consultar la suscripción
GET /api/integrators/sites/{site_id}/subscription/
Recupera el estado y las condiciones de la suscripción de la web.
Ejemplo
curl -X GET "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/subscription/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"status": "active",
"tier": "growth",
"interval": "annually",
"modules": [
{"name": "extra_language", "quantity": 2},
{"name": "accessibility_plugin", "quantity": 1}
],
"valid_until": "2027-01-01T14:38:11Z",
"will_be_renewed": true
}
| Campo | Descripción |
|---|---|
status | Estado de la suscripción, por ejemplo active o canceled. |
tier | Plan actualmente contratado. |
interval | Periodicidad de facturación. |
modules | Módulos activos, con la misma estructura name y quantity utilizada al crear la suscripción. |
valid_until | Fecha hasta la que el servicio está garantizado. |
will_be_renewed | false si la renovación automática está cancelada. |
5. Cancelar la suscripción
POST /api/integrators/sites/{site_id}/subscription/cancel/
Cancela la renovación de la suscripción activa.
Ejemplo
curl -X POST "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/subscription/cancel/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"message": "Subscription canceled"
}
La suscripción permanece activa hasta el final del periodo de facturación en curso. Hasta ese momento puedes reactivarla.
6. Reactivar la suscripción
POST /api/integrators/sites/{site_id}/subscription/reactivate/
Revierte una cancelación y restablece la renovación automática.
Ejemplo
curl -X POST "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/subscription/reactivate/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"message": "Subscription reactivated"
}
7. Terminar la suscripción
DELETE /api/integrators/sites/{site_id}/subscription/
Elimina la suscripción de la web de forma definitiva.
Ejemplo
curl -X DELETE "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/subscription/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"message": "Subscription terminated"
}
La web dejará de estar activa de forma inmediata. Para volver a prestar el servicio será necesario crear una nueva suscripción.
8. Obtener la sesión del panel embebido
GET /api/integrators/sites/{site_id}/embed/
Genera la URL de sesión con la que cargar el panel de Lawwwing dentro de un iframe.
Ejemplo
curl -X GET "https://api.lawwwing.com/api/integrators/sites/fa514048-ac51-4677-b16d-9e849c5406c5/embed/" \
-H "Authorization: Integrator-Key {your_api_key}" \
-H "Content-Type: application/json"
Respuesta
{
"site": "61e21ed7-2770-4fa8-baad-53564ee7651d",
"embed_url": "https://app.lawwwing.com/d/61e21ed7-2770-4fa8-baad-53564ee7651d/?embed=1&token=cd99d2156453544a7c9b6eae13bff3380d4a35ae6a891632a4ff29bc7c2efd83",
"embed_token": "cd99d2156453544a7c9b6eae13bff3380d4a35ae6a891632a4ff29bc7c2efd83"
}
Los tokens caducan por motivos de seguridad. Solicita una embed_url nueva en cada carga del panel y no almacenes ni reutilices el token.
embed_urlEl campo embed_url es el valor que debes asignar al atributo src del iframe. Consulta la guía de integración para ver el marcado recomendado.
Códigos de respuesta
| Código | Significado |
|---|---|
200 / 201 | La operación se ha completado correctamente. |
400 | Los datos enviados no son válidos. Revisa los parámetros. |
401 | Falta la cabecera Authorization o la clave no es válida. |
404 | La web o la suscripción no existen para tu cuenta de integrador. |