Saltar al contenido principal
Version: v1.15.0

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/integrators/ping/

Comprueba que la API es accesible y que tus credenciales son válidas.

Ejemplo​

curl -X GET "https://api.lawwwing.com/api/integrators/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
tierstring✅Sin valor por defectoPlan a activar: starter, growth, professional o comfort
intervalstring❌monthlyPeriodicidad 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
namestring✅Identificador del módulo, según la tabla siguiente.
quantityentero ≥ 1✅Nú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