AzterDocs

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 limit y starting_after; la respuesta trae has_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.
terminal
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.

GET/v1/conversations

Listar conversaciones

Filtra por canal, estado, agente asignado o contacto.

scope conversations:read · stable

response
{
"data": [
{ "id": "cnv_8f21", "channel": "whatsapp", "status": "open", "contact_id": "cnt_4412" }
],
"has_more": false
}
POST/v1/conversations/{id}/messages

Enviar un mensaje

Publica un mensaje como agente o como humano en el canal original.

scope conversations:write · stable

request
{ "message": "Tenemos stock inmediato.", "as_agent": "ventas" }
response
{ "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).

GET/v1/catalog/search

Buscar en el catálogo

Búsqueda semántica con precios y stock resueltos para el cliente indicado.

scope catalog:read · stable

response
{
"items": [
{ "sku": "NIT-M-100", "price": 8990, "currency": "CLP", "available": 1840 }
]
}
GET/v1/inventory/{sku}

Consultar stock

Stock por bodega, reservas activas y tiempo de reposición.

scope inventory:read · stable

response
{ "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.

POST/v1/quotes

Crear cotización

Aplica reglas de precio, descuentos por volumen y condiciones de pago del cliente.

scope quotes:write · stable

request
{
"contact_id": "cnt_4412",
"lines": [{ "sku": "NIT-M-100", "quantity": 240 }],
"payment_terms": "30d"
}
response
{ "id": "qte_7781", "total": 2157600, "currency": "CLP", "requires_approval": false }
POST/v1/orders

Emitir orden

Confirma la venta y escribe en el sistema de registro (ERP, Shopify, CRM).

scope orders:write · stable

request
{ "quote_id": "qte_7781", "purchase_order": "OC-99120" }
response
{ "id": "ord_3320", "status": "confirmed", "erp_ref": "SO-88231" }
POST/v1/payments

Solicitar pago

Link de pago o cobro bajo mandato AP2 con límites verificables.

scope payments:write · beta

request
{ "order_id": "ord_3320", "amount": 2157600, "currency": "CLP" }
response
{ "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.

GET/v1/agents

Listar agentes

Agentes desplegados, sus herramientas habilitadas y su nivel de autonomía.

scope agents:read · stable

response
{
"data": [
{ "id": "agt_ventas", "autonomy": "supervised", "tools": ["catalog.search", "quote.create"] }
]
}
POST/v1/agents/{id}/invoke

Invocar un agente

Ejecuta al agente sobre una tarea concreta desde tu propio sistema o desde otro agente.

scope agents:invoke · stable

request
{ "input": "Cotiza 240 cajas de NIT-M-100 a 30 días", "contact_id": "cnt_4412" }
response
{ "run_id": "run_9021", "status": "completed", "artifacts": ["qte_7781"] }
GET/v1/audit/events

Traza de decisiones

Cada llamada a herramienta, política aplicada y dato consultado, con timestamp.

scope audit:read · stable

response
{
"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.

422 Unprocessable
{
"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

Cuando una acción se bloquea por regla de negocio, el API dice qué política la bloqueó y qué camino tomar. El agente puede derivar a una persona sin perder el contexto.