const aramac = new AramacClient({ apiKey: process.env.ARAMAC_API_KEY, environment: 'production' }); // Crear una cotización const quote = await aramac.quotes.create({ client: { name: "Juan Pérez", email: "juan@ejemplo.cl" }, items: [ { concept: "Instalación domiciliaria", price: 150000 } ] }); // Configurar webhook aramac.webhooks.subscribe({ url: 'https://tuapp.com/webhooks/aramac', events: ['quote.accepted', 'project.completed'] }); // Calcular sección de conductor const calculation = await aramac.calculators.voltageDrop({ distance: 50, power: 3000, voltage: 220, material: 'copper' }); console.log('Sección recomendada:', calculation.section, 'mm²');
Para Desarrolladores

Documentación Técnica

Todo lo que necesitas para integrarte con ΛRΛMΛC. API REST, webhooks, SDKs y guías paso a paso.

Tu Primera Integración

Empezar es Simple

Sigue estos 4 pasos para integrar ΛRΛMΛC en tu aplicación.

01

Obtén API Keys

Registra tu aplicación en el Developer Dashboard y genera tu API Key de prueba.

02

Prueba la API

Haz tu primera llamada a la API usando tu key de sandbox.

curl -X GET https://api.aramac.dev/v1/quotes \ -H "Authorization: Bearer YOUR_API_KEY"
03

Implementa tu Integración

Elige tu stack y comienza a integrar. Tenemos SDKs para los lenguajes más populares.

JavaScript/TypeScriptPythonPHPGoRuby
04

Ve a Producción

Solicita acceso a producción, completa la verificación de seguridad y obtén tu API Key de producción.

Explora por Tema

Encuentra la documentación que necesitas según tu caso de uso.

Guías de Integración

12 guías

Tutoriales paso a paso para casos de uso comunes.

  • Integración con ERPs
  • Sincronización de inventario
  • Automatización de cotizaciones
  • Dashboards personalizados

Referencia API

45 endpoints

Documentación completa de endpoints.

  • Autenticación
  • Cotizaciones
  • Proyectos
  • Clientes
  • Calculadoras
  • Webhooks

SDKs Oficiales

4 SDKs

Librerías mantenidas por el equipo ΛRΛMΛC.

  • JavaScript/TypeScript (npm)
  • Python (pip)
  • PHP (composer)
  • Go (go get)

Webhooks

8 eventos

Recibe eventos en tiempo real.

  • Configuración
  • Eventos disponibles
  • Verificación de firmas
  • Reintentos y manejo de errores

Autenticación & Seguridad

Guía completa

OAuth 2.0, API Keys, y mejores prácticas.

  • Flujos de OAuth
  • Scopes y permisos
  • Rotación de keys
  • Rate limiting
  • Auditoría de acceso

Casos de Uso

10 ejemplos

Ejemplos reales de integraciones.

  • Integración con SAP
  • Conector para Salesforce
  • Dashboard de Power BI
  • App móvil personalizada

Prueba la API

Explora nuestros endpoints directamente desde el navegador.

Endpoints

const response = await fetch('https://api.aramac.dev/v1/quotes', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
SDKs Oficiales

Librerías Oficiales

Desarrolla más rápido con nuestros SDKs mantenidos por el equipo ΛRΛMΛC.

JavaScript / TypeScript

TypeScript nativoPromises/async-awaitTipado completoManejo de errores
# npm install @aramac/sdk
# yarn add @aramac/sdk

Python

Python 3.8+Type hintsAsync supportDecorators útiles
# pip install aramac-sdk
# pipenv install aramac-sdk

PHP

PHP 8.0+PSR-4 autoloadingComposerLaravel integration
# composer require aramac/sdk
Webhooks

Recibe Eventos en Tiempo Real

Configura webhooks para recibir notificaciones instantáneas cuando ocurran eventos en tu cuenta.

Eventos Disponibles

Payload de Ejemplo

{
  "id": "evt_123456789",
  "type": "quote.accepted",
  "created_at": "2025-02-15T10:30:00Z",
  "data": {
    "quote": {
      "id": "quo_abc123",
      "client_id": "cli_xyz789",
      "client_name": "María González",
      "total": 245000,
      "currency": "CLP",
      "accepted_at": "2025-02-15T10:30:00Z"
    }
  }
}

Verificación de Firma

Verifica que los webhooks provienen de ΛRΛMΛC:

import { verifyWebhook } from '@aramac/sdk';

app.post('/webhooks/aramac', (req, res) => {
  const signature = req.headers['x-aramac-signature'];
  const payload = req.body;
  
  const isValid = verifyWebhook({
    payload,
    signature,
    secret: process.env.WEBHOOK_SECRET
  });
  
  if (!isValid) {
    return res.status(401).send('Invalid signature');
  }
  
  // Procesar evento
  handleEvent(payload);
  
  res.status(200).send('OK');
});

Verificación de Firma

Cada webhook incluye una firma HMAC para verificar su autenticidad.

Reintentos Automáticos

Si tu endpoint falla, reintentamos hasta 3 veces con backoff exponencial.

Entrega en Tiempo Real

Los webhooks se envían inmediatamente después de que ocurre el evento.

Ejemplos

Ejemplos Completos

Patrones de integración reales usados por nuestros partners.

Integración con ERP

Sincroniza cotizaciones aceptadas con tu ERP automáticamente.

IntegraciónAutomatizaciónSAP
// Sincronizar cotizaciones a SAP cada hora
import { AramacClient } from '@aramac/sdk';
import { SAPClient } from './sap-client';

async function syncQuotesToSAP() {
  const aramac = new AramacClient({ 
    apiKey: process.env.ARAMAC_KEY 
  });
  const sap = new SAPClient({ /* config */ });
  
  // Obtener cotizaciones aceptadas desde última sincronización
  const quotes = await aramac.quotes.list({
    status: 'accepted',
    from: lastSyncTime
  });
  
  for (const quote of quotes.data) {
    // Crear orden de venta en SAP
    await sap.createSalesOrder({
      customerId: quote.clientId,
      items: quote.items.map(item => ({
        material: item.sku,
        quantity: item.quantity,
        price: item.price
      }))
    });
    
    // Marcar como sincronizado
    await markAsSynced(quote.id);
  }
}

Dashboard Personalizado

Crea métricas de negocio para electricistas.

DashboardMétricasAnalytics
// Dashboard de métricas para electricista
async function getDashboardMetrics(electricianId: string) {
  const aramac = new AramacClient({ 
    apiKey: process.env.ARAMAC_KEY 
  });
  
  const [quotes, projects, clients] = await Promise.all([
    aramac.quotes.list({ limit: 100 }),
    aramac.projects.list({ status: 'active' }),
    aramac.clients.list()
  ]);
  
  return {
    totalQuotes: quotes.pagination.total,
    acceptedRate: calculateAcceptanceRate(quotes.data),
    activeProjects: projects.data.length,
    totalClients: clients.pagination.total,
    revenueThisMonth: calculateRevenue(quotes.data),
    avgQuoteValue: calculateAverage(quotes.data),
    pendingQuotes: quotes.data.filter(q => q.status === 'sent').length
  };
}

function calculateAcceptanceRate(quotes: Quote[]) {
  const accepted = quotes.filter(q => q.status === 'accepted').length;
  return (accepted / quotes.length * 100).toFixed(1);
}

Bot de Slack

Recibe notificaciones de cotizaciones en Slack.

WebhookSlackNotificaciones
app.post('/webhooks/aramac', async (req, res) => {
  const { type, data } = req.body;
  
  if (type === 'quote.accepted') {
    await slack.chat.postMessage({
      channel: '#ventas',
      text: 'Nueva cotización aceptada!',
      blocks: [
        {
          type: 'section',
          text: {
            type: 'mrkdwn',
            text: [data.quote.client_name, 'aceptó una cotización de $', data.quote.total].join(' ')
          }
        }
      ]
    });
  }
  
  res.status(200).send('OK');
});

Sincronización de Inventario

Mantén materiales sincronizados con tu catálogo.

InventarioMaterialesSync
async function syncMaterialsFromSupplier() {
  const aramac = new AramacClient({ 
    apiKey: process.env.ARAMAC_KEY 
  });
  
  // Obtener catálogo del proveedor
  const supplierCatalog = await fetchSupplierCatalog();
  
  for (const item of supplierCatalog) {
    // Buscar material existente
    const existing = await aramac.materials.findBySku(item.sku);
    
    if (existing) {
      // Actualizar precio y stock
      await aramac.materials.update(existing.id, {
        price: item.price,
        stock: item.stock,
        lastUpdated: new Date()
      });
    } else {
      // Crear nuevo material
      await aramac.materials.create({
        sku: item.sku,
        name: item.name,
        description: item.description,
        price: item.price,
        category: item.category,
        supplier: item.supplier
      });
    }
  }
  
  console.log('Sincronizados ' + supplierCatalog.length + ' materiales');
}
Changelog

Historial de Cambios

Mantente al día con las últimas actualizaciones de la API.

15 de febrero de 2025
Nuevo

Nuevo: Filtro por rango de fechas en /v1/quotes

Ahora puedes filtrar cotizaciones usando from y to

Fix

Fix: Paginación en /v1/clients

Corregido error donde offset no funcionaba correctamente

1 de febrero de 2025
Nuevo

Nuevo Endpoint: POST /v1/calculators/voltage-drop

Calcula caída de tensión según RIC

Deprecado

Deprecado: campo total en quote.items

Usa subtotal + tax en su lugar. Se eliminará el 2025-06-01

20 de enero de 2025
Nuevo

Webhooks: Nuevo evento invoice.overdue

Recibe notificaciones cuando facturas vencen

Fix

Fix: Rate limiting más preciso

Mejorado el cálculo de límites por cliente

5 de enero de 2025
Breaking

Breaking: Autenticación OAuth 2.0

Ahora requerido para todos los endpoints. Ver docs de migración.

Nuevo

Nuevo: SDK de Python

Librería oficial para Python 3.8+

15 de diciembre de 2024
Nuevo

Nuevo: Exportación a Excel

Exporta cotizaciones y proyectos a Excel

Docs

Docs: Guía de mejores prácticas

Nueva sección en la documentación

1 de diciembre de 2024
Fix

Fix: Memoria de cálculo TE1

Corregido formato de fecha en memoria

Nuevo

Nuevo: Webhooks de firma digital

Eventos para firmas PAdES completadas

Comunidad

Únete a la Comunidad

Conecta con otros desarrolladores, comparte ideas y obtén soporte.

GitHub

SDKs de código abierto, ejemplos y contribuciones.

500+ starsExplorar repos

Discord

Canal de desarrolladores para soporte y discusiones.

200+ developersUnirse al server

Stack Overflow

Preguntas y respuestas técnicas sobre la API.

100+ preguntasVer tag

GitHub Discussions

Feature requests, ideas y anuncios.

50+ topicsParticipar

API Status

Monitoreo en tiempo real de nuestros servicios.

Visitar

Partner Program

Beneficios exclusivos para integradores.

Visitar

Open Source

Nuestros SDKs son open source. Contribuye, reporta bugs o solicita features. ¡La comunidad hace la API mejor!

Documentación | ΛRΛMΛC - Guías para Desarrolladores