Sviluppatori

Collega BeeRoutes a tutto ciò che usi

Una semplice API REST con accesso in lettura e scrittura, webhook firmati per ogni aggiornamento delle consegne e collegamenti pronti per Shopify e Zapier.

API REST

Crea ordini e clienti, leggi prodotti, scorte e stato delle consegne: JSON su HTTPS.

Webhook

Ricevi un POST firmato nel momento in cui un ordine viene confermato, è in viaggio, consegnato o non riuscito.

Shopify

I nuovi ordini Shopify diventano consegne in automatico; anche gli annullamenti vengono sincronizzati.

Zapier

Collega BeeRoutes a Google Sheets, Slack, software di contabilità e oltre 7.000 app, senza codice.

Autenticazione

Crea una chiave API in BeeRoutes in Integrazioni → Chiavi API (solo account dell'ufficio). Inviala nell'header Authorization di ogni richiesta. Le chiavi appartengono alla tua azienda: vedono sempre e solo i tuoi dati.

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

Limite: 300 richieste al minuto per chiave. Gli elenchi restituiscono fino a 200 elementi (limit, offset).

Endpoint

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

MetodoPercorso
GET/me

Verifica la chiave: restituisce la tua azienda

GET/products

Elenca i prodotti (filtri: sku, q, active)

GET/products/{id}

Un prodotto con prezzo, IVA e scorte

GET/customers

Elenca i clienti (filtri: email, q, active)

POST/customers

Crea un cliente: senza lat/lng l'indirizzo viene individuato sulla mappa

GET/customers/{id}

Un cliente

PATCH/customers/{id}

Modifica un cliente (solo i campi inviati)

GET/orders

Elenca gli ordini (filtri: status, date, from, to, customer_id, external_ref)

POST/orders

Crea un ordine: prodotti per product_id o sku, cliente per id, email o dati

GET/orders/{id}

Un ordine con articoli, autista, orario di arrivo previsto e prova di consegna

POST/orders/{id}/confirm

Conferma un ordine in attesa (emette la fattura)

POST/orders/{id}/cancel

Annulla un ordine prima della partenza (le scorte vengono ripristinate)

GET/webhooks

Elenca i webhook

POST/webhooks

Iscrive un URL agli eventi (restituisce il secret di firma una sola volta)

DELETE/webhooks/{id}

Annulla l'iscrizione

Crea un ordine

Invia external_ref con l'id del tuo ordine: se invii lo stesso ordine due volte, ricevi quello esistente invece di un duplicato. Aggiungi "confirm": true per confermarlo subito.

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 }
    ]
  }'

Webhook

BeeRoutes invia con POST un evento JSON al tuo URL quando un ordine viene creato, confermato, assegnato, è in viaggio, consegnato, non riuscito o annullato. Aggiungi i webhook in Integrazioni o tramite l'API.

Eventi

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"
  }
}

Verifica la firma

Ogni richiesta ha un header BeeRoutes-Signature: t (unix time) e v1, l'HMAC-SHA256 di “t.body” con il secret del tuo webhook. Rispondi con un qualsiasi 2xx entro 10 secondi; le consegne non riuscite vengono ritentate una volta e un webhook viene disattivato dopo 25 errori consecutivi. Rispondi 410 per annullare l'iscrizione.

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));
}

Errori

Gli errori usano i codici di stato HTTP e un corpo JSON con un codice e un messaggio:

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

401 chiave mancante o non valida · 404 non trovato · 409 non consentito nello stato attuale dell'ordine · 422 campi non validi, SKU sconosciuto o indirizzo non trovato · 429 troppe richieste

Shopify

Nessuna app da installare. In BeeRoutes apri Integrazioni → Shopify, copia il tuo URL webhook privato in Shopify (Impostazioni → Notifiche → Webhook, “Creazione ordine” e “Annullamento ordine”) e incolla in BeeRoutes il secret di firma di Shopify. I prodotti vengono abbinati tramite SKU; i nuovi clienti vengono creati dall'indirizzo di spedizione.

Zapier

Usa “Webhooks by Zapier”: Catch Hook come webhook di BeeRoutes per avviare gli Zap quando cambiano gli ordini, e POST verso l'API con la tua chiave per creare ordini o clienti da qualsiasi app.

Apri Integrazioni →

Pianifica oggi i percorsi di domani

Inizia la prova gratuita di 14 giorni e pianifica la tua prima giornata in un pomeriggio.