Hablar con el equipo →

Risposta API

Conectá tu ERP, sistema de facturación o planillas con Risposta. Leé los pedidos que el bot toma por WhatsApp, mantené precios y stock sincronizados desde tu sistema, y recibí cada pedido confirmado en tiempo real con webhooks firmados.

REST · JSON API keys por cliente Webhooks HMAC-SHA256 120 req/min

Autenticación

Toda request lleva una API key en el header Authorization. Las keys se generan desde el panel de Risposta (Integraciones → Crear key), se muestran una sola vez y se pueden revocar cuando quieras.

curl https://crm.risposta.com.py/api/v1/productos \
  -H "Authorization: Bearer rsp_live_xxxxxxxxxxxx"

Límite: 120 requests por minuto por key. Si te pasás, recibís 429 con header Retry-After.

Endpoints

Base URL: https://crm.risposta.com.py/api/v1 — todos los datos quedan aislados al cliente dueño de la key.

MétodoRutaDescripción
GET/productosLista el catálogo completo (nombre, SKU, marca, unidad, precio, estado de stock).
PATCH/productos/{id}Actualiza precio, stock_estado (disponible | limitado | sin_stock), activo, nombre o descripcion. Ideal para sincronizar desde tu ERP: el bot cotiza siempre al día.
GET/pedidosLista los últimos pedidos con sus ítems. Filtro opcional ?estado=confirmado_cliente.
GET/pedidos/{id}Un pedido puntual con ítems, zona y datos del comercio.
PATCH/pedidos/{id}Cambia el estado respetando el flujo (confirmado_cliente → validado → entregado, o cancelado) y/o la nota.

Ejemplo: actualizar precio y stock desde tu sistema

curl -X PATCH https://crm.risposta.com.py/api/v1/productos/42 \
  -H "Authorization: Bearer rsp_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "precio": 185000, "stock_estado": "disponible" }'

Webhooks

Registrá una URL https desde el panel (Integraciones → Agregar webhook) y Risposta le hace POST con cada evento, en menos de un minuto:

EventoCuándo
pedido.confirmadoEl cliente confirmó el pedido con el bot por WhatsApp.
pedido.validadoEl negocio validó el pedido (panel o API).
pedido.entregadoEl pedido se marcó como entregado.
pedido.canceladoEl pedido se canceló.
lead.nuevoUn contacto nuevo le escribió al negocio.

Payload de ejemplo (pedido.confirmado)

{
  "evento": "pedido.confirmado",
  "pedido": {
    "id": 118, "codigo": "P-0118", "estado": "confirmado_cliente",
    "telefono": "5959XXXXXXXX", "subtotal": 1450000,
    "fecha_entrega_estimada": "2026-08-21",
    "items": [
      { "nombre": "Pollo entero congelado", "unidad": "caja", "cantidad": 5, "subtotal": 900000 }
    ]
  },
  "delivery_id": 301,
  "emitido_at": "2026-08-19T12:30:00.000Z"
}

Verificación de firma

Cada entrega viene firmada con HMAC-SHA256 del body usando el secreto del webhook (whsec_…), en el header X-Risposta-Signature. Verificala antes de procesar:

// Node.js
const crypto = require("crypto");
function verificar(req, secreto) {
  const esperada = "sha256=" + crypto
    .createHmac("sha256", secreto)
    .update(req.rawBody, "utf8")
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(esperada), Buffer.from(req.headers["x-risposta-signature"] || "")
  );
}

Respondé 2xx rápido (procesá async si hace falta). Si tu endpoint falla, reintentamos 3 veces con backoff (1, 10 y 60 minutos). Todo queda en el log de entregas del panel, donde también podés disparar un evento de prueba.

Errores

CódigoSignificado
401Key ausente, inválida o revocada.
403La key no tiene el scope necesario.
404El recurso no existe o no pertenece a tu cuenta.
429Rate limit — mirá el header Retry-After.

¿Integramos tu sistema?

Si usás un ERP, sistema de facturación o planillas y querés que hable con tu WhatsApp, escribinos: armamos la integración con vos.

Hablar por WhatsApp