La API de Claria permite que cualquier ERP, sistema de compras o aplicacion integre el motor de procurement de Claria directamente. Cotiza en segundos, emite OCs y recibe eventos en tiempo real.
https://baiyers-production.up.railway.app/api/v1REST · JSONX-Claria-Key headerTodas las requests requieren el header X-Claria-Key con tu API key. Genera tus keys en /developers.
# Produccion
curl -H "X-Claria-Key: claria_live_xxxxxxxxxxxx" \
https://baiyers-production.up.railway.app/api/v1/ping
# Sandbox (datos de prueba)
curl -H "X-Claria-Key: claria_test_xxxxxxxxxxxx" \
https://baiyers-production.up.railway.app/api/v1/pingLas keys se almacenan solo como hash SHA-256. Si pierdes una key debes generar una nueva. Las keys de test (claria_test_) usan datos de sandbox separados.
Busca precios para un item en multiples proveedores chilenos e internacionales. Retorna lista ordenada por precio.
POST /api/v1/cotizar
X-Claria-Key: claria_live_xxx
Content-Type: application/json
{
"item": "válvula de paso 2" acero",
"cantidad": 10,
"unidad": "unidad",
"numero_parte": "VP-2IN-SS",
"marca": "Nibco",
"urgente": false
}{
"cotizacion_id": "cot_abc123",
"item_identificado": {
"nombre_tecnico": "Válvula de bola 2"",
"categoria": "hidraulico",
"confianza": "alto"
},
"proveedores": [
{
"nombre": "Hidráulica SpA",
"precio_unitario": 45000,
"precio_total": 450000,
"moneda": "CLP",
"plazo_entrega_dias": 5,
"disponibilidad": "en_stock",
"score_claria": 87
}
],
"total_proveedores": 8,
"tiempo_busqueda_ms": 2340,
"creado_en": "2025-09-15T14:23:00Z"
}Cotiza hasta 100 items en paralelo. Ideal para cubicaciones y listas de materiales. Solo en plan Business y Enterprise.
POST /api/v1/cotizar/batch
{
"items": [
{ "item": "cable HDMI 10m", "cantidad": 5 },
{ "item": "switch 24 puertos", "cantidad": 2 },
{ "item": "rack 42U", "cantidad": 1 }
],
"proyecto_nombre": "Data Center Norte 2025"
}{
"cotizacion_id": "cot_abc123",
"proveedor_id": "prov_xyz",
"cantidad": 10,
"precio_unitario": 45000,
"condiciones_pago": "30_dias",
"referencia_erp": "PO-2025-1234",
"notas": "Entregar en bodega"
}{
"oc_id": "oc_def456",
"numero_oc": "OC-2025-0089",
"estado": "enviada",
"pdf_url": "https://storage...",
"referencia_erp": "PO-2025-1234",
"total": 450000,
"moneda": "CLP",
"creado_en": "2025-09-15T14:25Z"
}/oc/{oc_id}Estado de una OC especifica/oc?estado=enviada&referencia_erp=PO-2025-1234Listar OCs con filtros/proveedores?categoria=hidraulico&score_min=60Listar con filtros/proveedores/{id}Detalle de proveedor/proveedoresAgregar proveedor/proveedores/importImportar hasta 500 proveedores/estadisticas/gastos?periodo=ultimo_trimestreGasto total, por mes, por categoria/estadisticas/proveedores?limit=10Top proveedores por score/estadisticas/uso_apiUso de la API este mesRecibe eventos en tu ERP en tiempo real cuando ocurren acciones en Claria. Soporta firma HMAC-SHA256 para verificar autenticidad.
POST /api/v1/webhooks/configurar
{
"url": "https://erp.empresa.cl/webhook/claria",
"eventos": ["oc.confirmada", "factura.recibida"],
"secret": "mi_secret_privado"
}POST https://erp.empresa.cl/webhook/claria
X-Claria-Event: oc.confirmada
X-Claria-Timestamp: 1694781900
X-Claria-Signature: sha256=abc123...
{
"evento": "oc.confirmada",
"oc_id": "oc_def456",
"numero_oc": "OC-2025-0089",
"referencia_erp": "PO-2025-1234",
"confirmada_en": "2025-09-15T16:00:00Z",
"proveedor": "Hidráulica Industrial SpA"
}import hmac, hashlib, json
def verificar_firma(payload_bytes, timestamp, firma, secret):
msg = f"{timestamp}.{payload_bytes.decode()}"
esperada = hmac.new(secret.encode(), msg.encode(), hashlib.sha256).hexdigest()
return hmac.compare_digest(f"sha256={esperada}", firma)
# En tu endpoint Flask/FastAPI:
firma = request.headers["X-Claria-Signature"]
ts = request.headers["X-Claria-Timestamp"]
ok = verificar_firma(request.data, ts, firma, "mi_secret_privado"){
"error": {
"codigo": "PLAN_LIMIT_EXCEEDED",
"mensaje": "Excediste el límite de 100 cotizaciones/mes del plan Pro",
"plan_actual": "pro",
"limite": 100,
"usadas": 100,
"reinicia_en": "2025-10-01T00:00:00Z",
"upgrade_url": "https://claria.cc/pricing"
}
}# 1. Recibir requisicion de Defontana
@app.post("/webhook/defontana")
def requisicion(data: dict):
resp = requests.post(
"https://baiyers-production.up.railway.app/api/v1/cotizar",
headers={"X-Claria-Key": CLARIA_KEY},
json={"item": data["descripcion"], "cantidad": data["cantidad"]}
)
return resp.json() # Devolver a Defontana# Automatico para items < $500k CLP
if precio_estimado < 500_000:
oc = requests.post("https://baiyers-production.up.railway.app/api/v1/oc/emitir", ...)
else:
# Enviar a aprobacion manual
notificar_comprador(item, cotizaciones)// SAP B1 Service Layer + Claria
const sap_token = await getSAPToken();
const req = await getSAPPurchaseRequest(prId);
const precios = await fetch('https://baiyers-production.up.railway.app/api/v1/cotizar', {
method: 'POST',
headers: {'X-Claria-Key': CLARIA_KEY},
body: JSON.stringify({item: req.ItemDescription, cantidad: req.Quantity})
});# /addons/claria_procurement/models/purchase.py
class PurchaseOrder(models.Model):
def action_claria_quote(self):
for line in self.order_line:
resp = requests.post(
'https://baiyers-production.up.railway.app/api/v1/cotizar',
headers={'X-Claria-Key': self.env.company.claria_api_key},
json={'item': line.product_id.name, 'cantidad': line.product_qty}
)
line.claria_best_price = resp.json()['proveedores'][0]['precio_unitario']Claria API v1 · hola@claria.cc · Obtener API key