Ir al contenido

Integra Prealerto con tu sistema.

Una API REST con credenciales por courier, webhooks firmados y CSV. Todo documentado en público, sin iniciar sesión. Un integrador externo usa exactamente las mismas vías que cualquier courier.

Qué puedes hacer

  • Consultar prealertas confirmadas con filtros por fecha y estado, paginadas.
  • Crear, actualizar, listar y eliminar clientes finales; los cambios aplican al bot de inmediato.
  • Recibir cada prealerta confirmada o actualizada por webhook, con identificador único por evento.
  • Pedir un enlace temporal a la factura de una prealerta.
  • Importar y exportar clientes y prealertas por CSV, con las mismas trece columnas.

Cómo empezar

  1. 1

    Crea una credencial

    En Integraciones, un administrador crea una credencial con nombre. El secreto se muestra una sola vez; se puede revocar cuando quieras.

    curl https://app.prealerto.com/api/v1/me \
      -H "Authorization: Bearer pk_live_…"
  2. 2

    Registra tu webhook

    Una URL HTTPS y los eventos que te interesan. Recibes el secreto de firma (whsec_…) una sola vez.

    curl -X POST https://app.prealerto.com/api/v1/webhooks \
      -H "Authorization: Bearer pk_live_…" \
      -d '{ "url": "https://tu-sistema.com/prealerto", "events": ["prealert.confirmed", "prealert.updated"] }'
  3. 3

    Dispara un evento de prueba

    Llega un prealert.confirmed con test: true, firmado igual que los reales. El panel muestra el resultado de la entrega.

    curl -X POST https://app.prealerto.com/api/v1/webhooks/{id}/test \
      -H "Authorization: Bearer pk_live_…"

El evento que recibes

  • API con credencial por courier

    Consulta prealertas confirmadas con filtros por fecha y estado, y administra clientes. Cada credencial ve solo los datos de su courier.

  • Webhook firmado

    Cada prealerta confirmada o actualizada llega a tu URL con firma HMAC-SHA256, identificador único y reintentos con espera creciente durante 24 horas.

  • CSV cuando no hay desarrollador

    Descarga con filtros o recibe el archivo por correo diario o mensual. Mismas trece columnas que la API.

Evento prealert.confirmed, tal como llega a tu URL
{
  "id": "evt_01J9W3Z8P4Q6R7S8T9U0V1W2X3",
  "type": "prealert.confirmed",
  "created_at": "2026-11-03T15:04:05Z",
  "test": false,
  "organization_id": "7d4f1c2e-…",
  "data": {
    "id": "f3a1c2d4-…",
    "status": "confirmed",
    "tracking": "1Z999AA10123456784",
    "box_code": "SJO-20431",
    "store": "Amazon",
    "price": "89.99",
    "currency": "USD",
    "documents": [{ "kind": "pdf", "url": "https://…", "url_expires_at": "…" }]
  }
}

Verifica la firma

Cada entrega lleva Prealerto-Signature: t=…,v1=…. Calcula HMAC-SHA256 del cuerpo crudo precedido por el timestamp, compara en tiempo constante y rechaza lo que tenga más de cinco minutos.

Reintentos
7 intentos: inmediato, 1 min, 5 min, 30 min, 2 h, 8 h, 24 h. Después, reenvío manual desde el panel o por API.
Límite
600 solicitudes por minuto por credencial, con Retry-After.
Aislamiento
Un identificador de otro courier responde 404, igual que uno inexistente.
import { createHmac, timingSafeEqual } from "node:crypto";

export function verifyPrealertoSignature(rawBody, header, secret) {
  const parts = Object.fromEntries(header.split(",").map((part) => part.split("=")));
  const expected = createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex");
  return timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}
Crear cuentaLas credenciales se crean desde el panel, en Integraciones.