Plataforma
API abierta
API REST sobre https://api.azter.ai/v1. JSON en ambas direcciones, paginación por cursor, idempotencia en escrituras y los mismos permisos que rigen a los agentes. No existe una capa privada: lo que ves aquí es lo que usa la propia consola de Azter.
Convenciones
- Autenticación con
Authorization: Bearer sk_live_…y scopes por credencial. - Escrituras idempotentes con la cabecera
Idempotency-Key. - Paginación con
limitystarting_after; la respuesta traehas_more. - Versionado por path (
/v1); los cambios incompatibles solo llegan en una versión nueva. - Todas las fechas en ISO 8601 UTC y todos los montos como enteros en la moneda menor cuando aplica.
1curl https://api.azter.ai/v1/quotes \2 -H "Authorization: Bearer $AZTER_API_KEY" \3 -H "Idempotency-Key: qte-oc-99120" \4 -H "Content-Type: application/json" \5 -d '{ "contact_id": "cnt_4412", "lines": [{ "sku": "NIT-M-100", "quantity": 240 }] }'Referencia
Agrupada por recurso. Cada endpoint indica el scope necesario y su estado de madurez.
Conversaciones
Todo lo que ocurre en WhatsApp, Instagram, web, email o Telegram es un hilo con contexto unificado.
Listar conversaciones
Filtra por canal, estado, agente asignado o contacto.
scope conversations:read · stable
{ "data": [ { "id": "cnv_8f21", "channel": "whatsapp", "status": "open", "contact_id": "cnt_4412" } ], "has_more": false}Enviar un mensaje
Publica un mensaje como agente o como humano en el canal original.
scope conversations:write · stable
{ "message": "Tenemos stock inmediato.", "as_agent": "ventas" }{ "message_id": "msg_01J9", "delivered_at": "2026-08-13T14:02:11Z" }Catálogo e inventario
Productos, precios por lista y disponibilidad real, expuestos en formato entendible por agentes (UCP).
Buscar en el catálogo
Búsqueda semántica con precios y stock resueltos para el cliente indicado.
scope catalog:read · stable
{ "items": [ { "sku": "NIT-M-100", "price": 8990, "currency": "CLP", "available": 1840 } ]}Consultar stock
Stock por bodega, reservas activas y tiempo de reposición.
scope inventory:read · stable
{ "sku": "NIT-M-100", "on_hand": 1840, "reserved": 120, "lead_time_days": 0 }Cotizaciones y órdenes
El núcleo transaccional: precio, condiciones, aprobación y sincronización con tu ERP.
Crear cotización
Aplica reglas de precio, descuentos por volumen y condiciones de pago del cliente.
scope quotes:write · stable
{ "contact_id": "cnt_4412", "lines": [{ "sku": "NIT-M-100", "quantity": 240 }], "payment_terms": "30d"}{ "id": "qte_7781", "total": 2157600, "currency": "CLP", "requires_approval": false }Emitir orden
Confirma la venta y escribe en el sistema de registro (ERP, Shopify, CRM).
scope orders:write · stable
{ "quote_id": "qte_7781", "purchase_order": "OC-99120" }{ "id": "ord_3320", "status": "confirmed", "erp_ref": "SO-88231" }Solicitar pago
Link de pago o cobro bajo mandato AP2 con límites verificables.
scope payments:write · beta
{ "order_id": "ord_3320", "amount": 2157600, "currency": "CLP" }{ "id": "pay_5510", "status": "pending", "url": "https://pay.azter.ai/pay_5510" }Agentes y gobernanza
Los agentes, sus políticas y su traza también son recursos del API. Nada queda dentro de una caja negra.
Listar agentes
Agentes desplegados, sus herramientas habilitadas y su nivel de autonomía.
scope agents:read · stable
{ "data": [ { "id": "agt_ventas", "autonomy": "supervised", "tools": ["catalog.search", "quote.create"] } ]}Invocar un agente
Ejecuta al agente sobre una tarea concreta desde tu propio sistema o desde otro agente.
scope agents:invoke · stable
{ "input": "Cotiza 240 cajas de NIT-M-100 a 30 días", "contact_id": "cnt_4412" }{ "run_id": "run_9021", "status": "completed", "artifacts": ["qte_7781"] }Traza de decisiones
Cada llamada a herramienta, política aplicada y dato consultado, con timestamp.
scope audit:read · stable
{ "data": [ { "at": "2026-08-13T14:02:04Z", "tool": "inventory.check", "policy": "credito_30d", "result": "ok" } ]}Errores
Errores con forma estable, tipados y accionables. Nunca devolvemos un 500 genérico si el problema es tuyo.
{ "error": { "type": "policy_violation", "code": "discount_above_limit", "message": "El descuento solicitado (9%) supera el máximo permitido (5%).", "policy": "descuento_max_5", "suggested_action": "task.handoff" }}Política, no excepción