Centro tecnico

Documentación

Referencia practica para integrar APIs y librerias de Lucqa sin perder tiempo en pasos innecesarios.

Introducción

Esta documentación cubre los flujos mas comunes de integracion: autenticacion, envio de mensajes y manejo de errores. La idea es que puedas implementar rapido y con criterio.

Instalación

Instala el paquete y configura tu clave de API.

# PowerShell (Windows)
npm install @lucqa/sdk

# Variables de entorno
$env:LUCQA_API_KEY="your_api_key_here"

API de Mensajería

Envia mensajes, consulta estados y gestiona plantillas con un flujo simple.

Enviar mensaje

// JavaScript (fetch)
async function sendMessage() {
  const res = await fetch("https://api.lucqa.dev/v1/messages", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "Authorization": `Bearer ${process.env.LUCQA_API_KEY}`,
    },
    body: JSON.stringify({
      to: "+1234567890",
      channel: "whatsapp",
      templateId: "welcome-template",
      parameters: { name: "Sam" },
    }),
  })
  if (!res.ok) throw new Error("Failed to send message")
  return res.json()
}

Typescript: tipado de respuesta

type MessageResponse = {
  id: string
  status: "queued" | "sent" | "delivered" | "failed"
  channel: "whatsapp" | "email" | "sms"
  createdAt: string
}

Ejemplos

Flujo básico con reintentos y registro de actividad.

async function sendWithRetry(payload, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      const res = await fetch("https://api.lucqa.dev/v1/messages", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
          "Authorization": `Bearer ${process.env.LUCQA_API_KEY}`,
        },
        body: JSON.stringify(payload),
      })
      if (!res.ok) throw new Error("Request failed")
      const data = await res.json()
      console.log("[ok]", data.id)
      return data
    } catch (err) {
      console.warn("[retry]", i + 1, err)
      await new Promise((r) => setTimeout(r, 1000 * (i + 1)))
    }
  }
  throw new Error("Max retries reached")
}

Diagrama (Mermaid)

Si cargas Mermaid globalmente, este bloque se renderizará automáticamente.

graph TD
A[Cliente] -->|HTTP| B[API Lucqa]
B --> C{Autenticación}
C -->|válido| D[Procesa Mensaje]
C -->|inválido| E[Error 401]
D --> F[Cola de Entrega]
F --> G[Canal: WhatsApp/Email/SMS]
G --> H[Estado: delivered/failed]

Tip: añade Mermaid en app/layout.tsx para inicializar renderizado.

Imágenes y gráficos

Usa recursos estáticos para ilustrar flujos y métricas.

Diagrama de flujo de automatización
Gráfico de métricas de rendimiento

¿Necesitas ayuda para integrar?

Si quieres, revisamos tu caso y te proponemos una ruta de implementacion segun tu stack actual.