REST API JSON + webhook firmati HMAC per sincronizzare prodotti, stock e ordini in tempo reale tra Structora e il tuo ERP, CRM o e-commerce. Nessun limite di chiamate per i partner attivi.
Genera una API key dal pannello Structora. Si mostra una sola volta — salvala subito in modo sicuro.
sk_str_xxxxxxxxxxxxxxxx compare una sola volta. Conservala in un password manager o variabile d'ambiente.Authorization: Bearer sk_str_...# Esempio: ottieni i tuoi prodotti
curl -H "Authorization: Bearer sk_str_xxxxxxxxxxxxxxxx" \
"https://api.structora.it/api/reseller/products"Tutto JSON. Date in ISO 8601. Importi in EUR con 2 decimali. Errori in formato RFC 7807.
/api/productsPubblicoCatalogo pubblico con filtri (categoria, prezzo, marca, provincia).
curl "https://api.structora.it/api/products?category=materiali&limit=20"
/api/products API keyCrea un nuovo prodotto nel proprio catalogo (richiede ruolo reseller).
curl -X POST "https://api.structora.it/api/products" \
-H "Authorization: Bearer sk_str_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Cemento Portland 32.5R sacco 25kg",
"description": "Cemento per usi strutturali.",
"price": 4.20,
"category": "materiali",
"brand": "Italcementi",
"stock": 500,
"unit": "sacco"
}'/api/products/{product_id} API keyAggiorna prezzo, stock o disponibilità del proprio prodotto.
curl -X PATCH "https://api.structora.it/api/products/prod_abc123" \
-H "Authorization: Bearer sk_str_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"price": 4.50, "stock": 320}'/api/reseller/orders API keyLista degli ordini ricevuti, filtrabili per stato e cliente.
curl "https://api.structora.it/api/reseller/orders?status=paid" \ -H "Authorization: Bearer sk_str_xxxxxxxxxxxxxxxx"
/api/reseller/orders/{order_id}/status API keyAvanza lo stato di un ordine (confirmed → preparing → shipped → delivered).
curl -X PATCH "https://api.structora.it/api/reseller/orders/ord_xxx/status" \
-H "Authorization: Bearer sk_str_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"status": "shipped", "tracking_number": "BRT123456", "courier": "BRT"}'Structora chiama il tuo endpoint HTTPS quando succede qualcosa. Ogni richiesta è firmata HMAC-SHA256 con un secret personale.
order.paidorder.shippedorder.deliveredorder.cancelledorder.refundedquote.receivedquote.respondedOgni POST in arrivo include l'header X-Structora-Signature. Calcola HMAC-SHA256 del body usando il tuo whsec_ e confronta.
import hmac, hashlib
def verify_signature(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)
# In FastAPI / Flask:
sig = request.headers["X-Structora-Signature"]
if not verify_signature(request.body, sig, "whsec_xxxxxxxx"):
abort(401)
event = request.json
# event = {"event": "order.paid", "order_id": "...", "at": "..."}400 Validazione401 Chiave invalida/revocata403 Permessi insufficienti404 Risorsa inesistente429 Rate limit superato5xx Errore lato StructoraDefault: 600 richieste/minuto per API key. Upgrade automatico per partner con volume elevato — scrivi adev@structora.it.
Se il tuo endpoint risponde con codice ≥500 o timeout (10s), Structora ritenta 5 volte con backoff esponenziale (1m, 5m, 30m, 2h, 6h). Dopo l'ultimo tentativo il webhook viene marcato failed.
Domande tecniche o richiesta di integrazione custom? Scrivici a dev@structora.it.
Usiamo cookie strettamente necessari per il funzionamento del sito e, con il tuo consenso, cookie statistici per migliorare l'esperienza. Cookie Policy · Privacy