Desenvolvedores

Conecte o BeeRoutes a tudo o que você usa

Uma API REST simples, com leitura e escrita, webhooks assinados para cada atualização de entrega e conexões prontas com Shopify e Zapier.

API REST

Crie pedidos e clientes, consulte produtos, estoque e status de entrega — JSON via HTTPS.

Webhooks

Receba um POST assinado assim que um pedido é confirmado, sai para entrega, é entregue ou falha.

Shopify

Novos pedidos do Shopify viram entregas automaticamente; os cancelamentos também são refletidos.

Zapier

Conecte o BeeRoutes ao Google Sheets, Slack, sistemas contábeis e mais de 7.000 apps — sem código.

Autenticação

Crie uma chave de API no BeeRoutes em Integrações → Chaves de API (somente contas do escritório). Envie-a no cabeçalho Authorization de cada requisição. As chaves pertencem à sua empresa: só enxergam os seus próprios dados.

curl https://app.beeroutes.com/api/v1/orders?status=delivered \
  -H "Authorization: Bearer br_live_…"

Limite: 300 requisições por minuto por chave. As listas retornam até 200 itens (limit, offset).

Endpoints

https://app.beeroutes.com/api/v1

MétodoCaminho
GET/me

Verifica a chave: retorna a sua empresa

GET/products

Lista produtos (filtros: sku, q, active)

GET/products/{id}

Um produto com preço, imposto e estoque

GET/customers

Lista clientes (filtros: email, q, active)

POST/customers

Cria um cliente — sem lat/lng, o endereço é localizado no mapa

GET/customers/{id}

Um cliente

PATCH/customers/{id}

Altera um cliente (apenas os campos enviados)

GET/orders

Lista pedidos (filtros: status, date, from, to, customer_id, external_ref)

POST/orders

Cria um pedido — produtos por product_id ou sku, cliente por id, e-mail ou dados

GET/orders/{id}

Um pedido com itens, motorista, previsão de chegada e comprovante de entrega

POST/orders/{id}/confirm

Confirma um pedido pendente (emite a fatura)

POST/orders/{id}/cancel

Cancela um pedido antes da saída (o estoque é devolvido)

GET/webhooks

Lista webhooks

POST/webhooks

Inscreve uma URL em eventos (retorna o segredo de assinatura uma única vez)

DELETE/webhooks/{id}

Cancela a inscrição

Criar um pedido

Envie external_ref com o id do pedido no seu sistema: enviar o mesmo pedido duas vezes retorna o existente em vez de criar uma duplicata. Adicione "confirm": true para confirmá-lo na hora.

curl -X POST https://app.beeroutes.com/api/v1/orders \
  -H "Authorization: Bearer br_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "PO-10442",
    "customer_email": "orders@cafe-central.com",
    "delivery_date": "2026-11-03",
    "slot_from": "08:00",
    "slot_to": "11:00",
    "items": [
      { "sku": "WAT-05", "quantity": 20 },
      { "sku": "JUI-01", "quantity": 6 }
    ]
  }'

Webhooks

O BeeRoutes envia um evento JSON por POST para a sua URL quando um pedido é criado, confirmado, atribuído, sai para entrega, é entregue, falha ou é cancelado. Adicione webhooks em Integrações ou pela API.

Eventos

order.createdorder.confirmedorder.assignedorder.in_transitorder.deliveredorder.failedorder.cancelled
{
  "id": "evt_5f2c…",
  "event": "order.delivered",
  "created_at": "2026-11-03T09:42:10.000Z",
  "data": {
    "id": 1842,
    "number": "ORD-2026-01842",
    "external_ref": "PO-10442",
    "status": "delivered",
    "delivery_date": "2026-11-03",
    "customer": { "id": 77, "business_name": "Café Central", … },
    "items": [ { "sku": "WAT-05", "quantity": 20, "delivered_qty": 20, … } ],
    "total": 182.4,
    "proof": { "receiver_name": "Maria", "has_signature": true, "has_photo": false },
    "delivered_at": "2026-11-03T09:42:08.000Z"
  }
}

Verifique a assinatura

Cada requisição tem um cabeçalho BeeRoutes-Signature: t (unix time) e v1, o HMAC-SHA256 de “t.body” com o segredo do seu webhook. Responda com qualquer 2xx em até 10 segundos; entregas com falha são reenviadas uma vez, e o webhook é desativado após 25 falhas seguidas. Responda 410 para cancelar a inscrição.

import crypto from "node:crypto";

// header: "t=1762162930,v1=5d41…"
function verify(rawBody, header, secret) {
  const { t, v1 } = Object.fromEntries(header.split(",").map((p) => p.split("=")));
  const expected = crypto.createHmac("sha256", secret).update(`${t}.${rawBody}`).digest("hex");
  const fresh = Math.abs(Date.now() / 1000 - Number(t)) < 300;
  return fresh && crypto.timingSafeEqual(Buffer.from(v1), Buffer.from(expected));
}

Erros

Os erros usam códigos de status HTTP e um corpo JSON com um code e uma message:

{ "error": { "code": "product_not_found", "message": "Unknown or inactive products: sku JUI-09" } }

401 chave ausente ou inválida · 404 não encontrado · 409 não permitido no status atual do pedido · 422 campos inválidos, SKU desconhecido ou endereço não encontrado · 429 requisições demais

Shopify

Nenhum app para instalar. No BeeRoutes, abra Integrações → Shopify, copie a sua URL de webhook privada para o Shopify (Configurações → Notificações → Webhooks, “Order creation” e “Order cancellation”) e cole de volta o segredo de assinatura do Shopify. Os produtos são associados pelo SKU; novos clientes são criados a partir do endereço de entrega.

Zapier

Use o “Webhooks by Zapier”: Catch Hook como webhook do BeeRoutes para iniciar Zaps quando pedidos mudam, e POST para a API com a sua chave para criar pedidos ou clientes a partir de qualquer app.

Abrir Integrações →

Planeje hoje as rotas de amanhã

Comece seu teste grátis de 14 dias e planeje o seu primeiro dia em uma tarde.