Saltar al contenido principal
Version: v1.11.3

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.

Se necesitan credenciales de integrador

Estos endpoints solo responden a claves de integrador emitidas por Lawwwing tras el proceso de onboarding. Solicita acceso para obtener las tuyas.

URL base

EntornoURL base
Producciónhttps://api.lawwwing.com/
Staginghttps://api.staging.lawwwing.com/

Autenticación

Todas las solicitudes se autentican mediante la cabecera Authorization con tu clave de integrador.

CabeceraValor
AuthorizationIntegrator-Key {your_api_key}
Content-Typeapplication/json
Protege tu clave

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

CampoTipoRequeridoDescripción
urlstring (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": ""
}
Identificador de la web

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

CampoTipoRequeridoValor por defectoDescripción
tierstringSin valor por defectoPlan a activar: starter, growth, professional o comfort
intervalstringmonthlyPeriodicidad de facturación: monthly o annually
modulesarray[]Módulos adicionales, en formato { "name": string, "quantity": number }

Planes disponibles (tier)

PlanPerfil de cliente
starterWebs sencillas con necesidades básicas de cumplimiento.
growthWebs corporativas y tiendas online en crecimiento.
professionalProyectos exigentes o multiidioma. Incluye todos los idiomas disponibles.
comfortPlan 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:

CampoTipoRequeridoDescripción
namestringIdentificador del módulo, según la tabla siguiente.
quantityentero ≥ 1Número de unidades del módulo a contratar.
nameMóduloQué habilitaSignificado de quantity
extra_languageIdioma adicionalAñ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_pluginPlugin de accesibilidadActiva el widget de accesibilidad en la web del cliente.Siempre 1, ya que es un módulo de activación.
ai_sentinel_moduleAI SentinelActiva 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.
Cómo combinar el plan y los módulos
  • Envía únicamente los módulos que el cliente ha contratado. Si no hay ninguno, omite el campo modules o envía [].
  • El plan professional ya incluye todos los idiomas, por lo que no debes añadir extra_language.
  • El plan comfort ya incluye todos los módulos, por lo que normalmente no necesitas enviar modules.
  • Los módulos se facturan con el mismo interval que el plan. No es posible combinar un plan anual con módulos mensuales.
  • Un mismo name debe aparecer una sola vez en el array. Para contratar varias unidades, utiliza quantity.
Validación de los datos

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"
}
info

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
}
CampoDescripción
statusEstado de la suscripción, por ejemplo active o canceled.
tierPlan actualmente contratado.
intervalPeriodicidad de facturación.
modulesMódulos activos, con la misma estructura name y quantity utilizada al crear la suscripción.
valid_untilFecha hasta la que el servicio está garantizado.
will_be_renewedfalse 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 cancelación no es inmediata

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"
}
Acción irreversible

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 tienen validez limitada

Los tokens caducan por motivos de seguridad. Solicita una embed_url nueva en cada carga del panel y no almacenes ni reutilices el token.

Uso del embed_url

El 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ódigoSignificado
200 / 201La operación se ha completado correctamente.
400Los datos enviados no son válidos. Revisa los parámetros.
401Falta la cabecera Authorization o la clave no es válida.
404La web o la suscripción no existen para tu cuenta de integrador.

¿Listo para integrar?

🔑 Solicitar credenciales de integrador