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étodo | Caminho | O que faz |
|---|---|---|
| GET | /meVerifica a chave: retorna a sua empresa | Verifica a chave: retorna a sua empresa |
| GET | /productsLista produtos (filtros: sku, q, active) | Lista produtos (filtros: sku, q, active) |
| GET | /products/{id}Um produto com preço, imposto e estoque | Um produto com preço, imposto e estoque |
| GET | /customersLista clientes (filtros: email, q, active) | Lista clientes (filtros: email, q, active) |
| POST | /customersCria um cliente — sem lat/lng, o endereço é localizado no mapa | Cria um cliente — sem lat/lng, o endereço é localizado no mapa |
| GET | /customers/{id}Um cliente | Um cliente |
| PATCH | /customers/{id}Altera um cliente (apenas os campos enviados) | Altera um cliente (apenas os campos enviados) |
| GET | /ordersLista pedidos (filtros: status, date, from, to, customer_id, external_ref) | Lista pedidos (filtros: status, date, from, to, customer_id, external_ref) |
| POST | /ordersCria um pedido — produtos por product_id ou sku, cliente por id, e-mail ou dados | 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 | Um pedido com itens, motorista, previsão de chegada e comprovante de entrega |
| POST | /orders/{id}/confirmConfirma um pedido pendente (emite a fatura) | Confirma um pedido pendente (emite a fatura) |
| POST | /orders/{id}/cancelCancela um pedido antes da saída (o estoque é devolvido) | Cancela um pedido antes da saída (o estoque é devolvido) |
| GET | /webhooksLista webhooks | Lista webhooks |
| POST | /webhooksInscreve uma URL em eventos (retorna o segredo de assinatura uma única vez) | Inscreve uma URL em eventos (retorna o segredo de assinatura uma única vez) |
| DELETE | /webhooks/{id}Cancela a inscrição | 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.